2017-03-06 3 views
1

현재 SaaS 시공 관리 도구를 찾고 있습니다. 내가 api 토큰에 laravel 여권을 사용했다면 궁금한 것입니다. 어떻게 사용자에게 역할을 할당 할 수 있습니까? 예 :Laravel Passport

SuperAdmin : 프로젝트를 만들 수 있습니다 | 새로운 사용자를 생성하고 사용자에게 역할을 지정할 수 있습니다.

관리자 : 프로젝트를 볼 수 있습니다.

사용자 권한에 따라 프런트 엔드에서 요소를 숨길 수 있기를 바랍니다.

예를 들어 전통적인 laravel 앱을 사용하면 사용자 권한 유형을 기반으로 요소를 표시하기 위해 @role ('admin') 블레이드 지시문을 사용할 수 있습니다. 당신은 정책 및 게이츠 사용할 수 있습니다

답변

2

:

이 그 다음이 될 https://laravel.com/docs/5.4/authorization을 간단 프론트 엔드에서/쇼 물건을 숨기려면

$user = Auth::guard('api'); 
if ($user->can('create', Post::class)) { 
    // Do something 
} 

당신이 사용자를 얻을 때, 당신은 자신의 권한뿐만 아니라 수

$user = Auth::guard('api'); 
$user->isAdmin = $user->can('create', Post::class); //returns true or false 

프론트 엔드에서는 그걸로 항목을 표시하거나 숨 깁니다. 예 : 각도 사용

<li ng-if="vm.user.isAdmin">Admin</li> 
+0

와우는 매우 간단합니다. 고맙습니다! 한 가지 다른 질문. 나는 아주 새로운 여권입니다. 프런트 엔드에서 데이터베이스에 사용자 권한이 저장되어 있습니까? 사용자가 권한이있는 경우 vue에서 체크인 할 수 있습니까? –

+0

예, 여권에는 이전이 있습니다. 그래서 많은 것들을 절약 할 수 있습니다. 그러나 정책을 확인하기 만하면 사용자의 권한을 얻을 수 있습니다. 이를위한 여러 가지 방법이 있습니다. 관리자 만 게시물을 만들 수 있다고 가정하면 어떻게했는지 알 수 있습니다. – EddyTheDove

+0

그건 완벽하게 이해가됩니다. 도와 주셔서 감사합니다! 나는 프런트 엔드를위한 각도 루트를 내려 가고 있었다! 당신의 도움은 대단히 유용했고, 학위 프로젝트 덕분에 다시 한 번 도움이되었습니다! 5 * –