add_api_key_scope 사용 예시 찾는 중

안녕하세요,

Plugin::Instance에서 이 메서드를 사용하려고 시도하고 있습니다: discourse/lib/plugin/instance.rb at 06c60b017c86ddab489fd3d30c951c10b5c4d281 · ayampenyetan/discourse · GitHub

Discourse 코드베이스/GitHub에서 이 메서드의 기존 사용 사례를 검색해 보았지만, 테스트 케이스를 제외하고는 실제로 어디에서도 사용되고 있지 않은 것 같습니다(공개적으로 접근 가능한 코드 기준).

다음 사항들을 설명해 주실 수 있나요:

  • 플러그인에서 Plugin::Instance의 인스턴스를 가져와서 해당 메서드를 호출하는 올바른 방법은 무엇인가요?
  • 위에서 링크한 메서드를 호출하는 적절한 시기는 언제인가요? 플러그인에서 새로운 엔드포인트를 생성하는 경우, 이 호출을 엔드포인트가 생성된 후에 배치해야 하나요? after_initialize 이전, 내부, 아니면 이후에 배치해야 하나요?
  • 아래 코드는 스코프를 등록하는 것처럼 보이지만, 해당 스코프가 있는 관리자 API 키로 엔드포인트를 호출할 때 액션을 찾지 못하는 것 같습니다. 모든 스코프가 있는 관리자 API 키로 호출하면 엔드포인트는 정상적으로 작동합니다. 왜 작동하지 않는 것이며, 제가 어디를 잘못하고 있는 건가요?
  • 액션에 urls 항목을 추가하려고 시도했지만, 인식되지 않는 것 같습니다. 이 구조에 스코프가 적용될 URL 목록을 성공적으로 추가하는 방법은 무엇인가요?
after_initialize do

    module ::ApiKeyScopeTest
        class Engine < ::Rails::Engine
            engine_name "api_key_scope_test"
            isolate_namespace ApiKeyScopeTest
        end
    end

    class ApiKeyScopeTest::ApiKeyScopeTestController < ::ApplicationController

        def action
            ...
        end

    end

    ApiKeyScopeTest::Engine.routes.draw do
        post "/admin/plugins/api-key-scope-test" => "api_key_scope_test#action", constraints: AdminConstraint.new
    end

    Discourse::Application.routes.append do
        mount ::ApiKeyScopeTest::Engine, at: "/"
    end

    plugin = Plugin::Instance.new # 참고: 이것이 올바른지 명확하지 않음

    plugin.add_api_key_scope(
        :test_scope,
        {
            post: {
                actions: %w[api_key_scope_test#action]
            }
        }
    )

end
1개의 좋아요