관리자 패널에서 결국 다른 형식의 인증을 지정해야함( 유저별 또는 레벨별)
리소스의 어느 부분을 액세스 할 수 있는지 방법을 알아본다.
https://nova.laravel.com/docs/2.0/resources/authorization.html#authorization
1. 권한부여를 생성한다.
1 | php artisan make:policy PostPolicy -m Post | cs |
Policies 에 PostPolicy.php 파일이 생성되었다.
2. 상단에 모델을 임포트하고 있다.
1 2 | use App\Post; use App\User; | cs |
3. app/Providers/AuthServiceProvider.php 파일에 네모박스를 재정의 해주자 'App\Post' => 'App\Policies\PostPolicy'
4. Policies/PostPolicy.php 파일에서 정의하자
사이드바에서 보이게 하기
1 2 3 4 | public function viewAny(User $user) { return true; } | cs |
[참고사항]
id 4번 안보이게 하기
디테일뷰 보이게하기
1 2 3 4 | public function view(User $user, Post $post) { return true; } | cs |
글 작성하게 하기
1 2 3 4 | public function create(User $user) { return true; } | cs |
해당메서드에 입력해주면 활성화가 된다.
1 | return true; | cs |
5. 만약 해당글 작성 유저만 보이게 하려면 이렇게 하면 된다. Nova/Post.php
1 2 3 4 | public static function indexQuery(NovaRequest $request, $query) { return $query->where('user_id', $request->user()->id); } | cs |
부분을 소스에 넣으면 된다.
내가 작성한 글만 보이게 된다.
'라라벨 > NOVA' 카테고리의 다른 글
필터 및 렌즈 (nova Filters and Lenses) (0) | 2020.01.02 |
---|---|
수색(Searching) (0) | 2020.01.02 |
자원(resource)의 검증(vaildation) (0) | 2020.01.01 |
자원의(resource) 관계(Relationships) (0) | 2020.01.01 |
자원(resource)의 분야 field (0) | 2019.12.31 |