2012-12-30 1 views
0

Laravel frameworkOrchestra platform을 사용하려고합니다.오케스트라 (Laravel)의 독립 실행 형 리소스 확장에 대한 응답

플랫폼에 대한 Authorize, Robotix, 및 Cello CMS 개의 확장 기능을 설치했습니다.

필자는 Authorize, Robotix 및 Cello CMS 확장이 모두 Resources 아래에 표시되는 것을 보았습니다. Melody Theme Manager는 Extensions 옆에 최상위 항목으로 표시됩니다.

내가 원하는 것은 멜로디 테마 관리자가 /orchestra/manages/melody.themes을 통해 액세스 할 수있는 것과 동일한 방식으로 /orchestra/manages/pages을 통해 Cello CMS 확장자에 액세스 할 수있게하려는 것입니다.

내가 뭔가를 사용할 수 있습니다 상단 메뉴 항목을 추가 할 것을 일한 :

// Attach a menu only if user has the authorization to manage Pages 
$acl = Orchestra\Acl::make('cello'); 
$menu = Orchestra::menu(); 

if ($acl->can('manage-pages')) { 
    $menu->add('Cello', 'after:themes') 
     ->title('Pages') 
     ->link(handles('orchestra::resources/cello')); 
} 

의 내부 일 연결, 과정의 문제를 추가 Event::listen('orchestra.started: backend', function()

는 아직이다 resources/cello을 가리 킵니다. 어떻게하면 manages/pages에 대신 응답 할 수 있습니까?

답변

4

첼로 CMS 복잡한 CRUD에 대한 더 나은 API를 제공 Orchestra\Resources를 사용하는 디자인입니다, manages/pages 당신이 그것을 컨트롤러로 라우팅에 추가 코드를 추가 할 필요가 단순한 이벤트 리스너입니다. 이제 Cello는 페이지 내용을 처리 할 것입니다. 그러나 나중에 우리는 manages/pages을 따르는 경우 Posts (블로그의 일종)를 추가하려고합니다. API는 유지하기 어렵습니다 (개인적 선호도).

"Melody Theme Manager"및 "Authorize"의 두 가지 유스 케이스를 사용하십시오. 멜로디는 단순히 하나의 ACL로만 테마 선택을 요구하기 때문에 을 사용하고 있으며 권한 부여는 resources을 사용합니다. 두 가지 유형의 ACL 인 "manage-acl"과 "manage-role"과 두 가지 유형의 자원을 가지고 있기 때문입니다. 역할에 대한 CRUD 및 ACL 메트릭 구성이 있습니다.

리소스를 표시할지 여부를 선택할 수는 있지만 해당 방법에 대한 찬성과 반대가 있습니다 (리소스를 가리키는 것이지만 manages/pages이 아님). .