laravel-permission 시도
10166 단어 Laravellaravel-permission
개시하다
Laavel에서 역할 액세스 제어에 기반한 비교적 신뢰할 수 있는 것을 제공해야 하기 때문이다
라벨의 확장 포장에서 익숙한 스파티가 제공하는 laravel-permission를 시도했다.
매번 영어를 읽을 때마다 태만하기 때문에 남아 있어야 한다.
만약 사용 과정에서 지식을 얻게 된다면, 나는 가능한 한 이곳을 갱신할 것이다.
지금은 검사를 인정하는 각 중간부품의 테스트 코드를 써서 내용을 이해하는 수준을 옮긴다.
컨디션
PHP 7.2
Laravel 5.7
※ 동작을 확인했다
설치하다. composer require spatie/laravel-permission
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"
표를 몇 개 만들어야 하기 때문에 모형을 이해해야 한다
roles와perissions의 이중 관문name
config/auth.php로 설정된 기본 단어를 입력하십시오.
이중 언어를 여러 개 설정하고 싶은 경우길잡이가 있었지만, 이번에는 필요 없어 건너뛰었다.
model_type에 Eloquent 반이 있어요.
나는 Eloquent의 다중모드 관계를 사용해서 실현된 것 같다는 것을 발견했다.
(소스를 보니 사실은 이렇다.)
테이블 정보
roles
개요
역할 마스터 테이블
필요한 물건을 미리 등록하다
등록 예:
PHP 7.2
Laravel 5.7
※ 동작을 확인했다
설치하다. composer require spatie/laravel-permission
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"
표를 몇 개 만들어야 하기 때문에 모형을 이해해야 한다
roles와perissions의 이중 관문name
config/auth.php로 설정된 기본 단어를 입력하십시오.
이중 언어를 여러 개 설정하고 싶은 경우길잡이가 있었지만, 이번에는 필요 없어 건너뛰었다.
model_type에 Eloquent 반이 있어요.
나는 Eloquent의 다중모드 관계를 사용해서 실현된 것 같다는 것을 발견했다.
(소스를 보니 사실은 이렇다.)
테이블 정보
roles
개요
역할 마스터 테이블
필요한 물건을 미리 등록하다
등록 예:
composer require spatie/laravel-permission
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"
※ 슈퍼-admin으로 정의할 수 있으므로 이 부분에서도 신중하게 설정
등록 방법
$role = \Spatie\Permission\Models\Role::create(['name' => 'operator']);
model_has_roles
개요
작용과 모델을 연관시키다
사용자 모델을 주면 관리자나 운용자
부장, 과장 등과 직무를 연결할 수 있다고 생각합니다.
등록 방법
$user->assignRole('operator', 'customer');
'operator'이런 데가 Role입니다.아이디도 가능해요.방법에서string이나numberic를 검사해서 검색 조건을 전환합니다
해제 방법
$user->removeRole('read');
permissions
개요
설정할 수 있는 마스터 테이블
필요한 물건을 미리 등록하다
등록 예:
등록 방법
$permission = \Spatie\Permission\Models\Permission::create(['name' => 'read']);
model_has_permissions
개요
모델에 대한 라이센스 직접 설정
사용자 모델을 주면 특권 사용자 같은 걸 만들 수 있을 것 같아요.
(일반적으로 관리자 이상의 사람이 접촉하는 기능이지만, 실제로는 사무원을 가입시키는 것이기 때문에 관리자가 아니더라도 권한 같은 것을 주기를 원한다)
등록 방법
$user->givePermissionTo('read', 'write');
'read'이런 데가 퍼미션이에요.아이디도 가능해요.방법에서string이나numberic를 검사해서 검색 조건을 전환합니다
해제 방법
$user->revokePermissionTo('read');
role_has_permissions
개요
역할과 연관된 마스터 테이블을 설정할 수 있습니다.
등록 방법
다음 중 어느 것
$role->givePermissionTo($permission);
// or
$permission->assignRole($role);
합쳐서 등록하고 싶은 경우 아래 임의의 하나를 사용하면 빙빙 돌지 않을 수 있다(안에서 왔다 갔다 한다)
$role->syncPermissions($permissions);
// or
$permission->syncRoles($roles);
해제 방법
캐릭터에 대한 허가 설정을 동적으로 바꾸는 인상은 잘 생기지 않지만, 다음과 같이 하면 된다.
(잘못된 데이터로 만들면 지우려는 거겠지~)
$role->revokePermissionTo($permission);
// or
$permission->removeRole($role);
2019/01/23 보충
각 중간부품의 설치에 사용되지 않습니다.
언제 사용했는지 확인해 보세요.
"has Permission Via Role을 통해 Permission을 전달한 후 그 Permission이 Role에 존재하는지 확인하세요."
네.
모든 Role에게 작은 권한을 주고 싶다면 필요합니다.
캐릭터나 권한 검사를 쉽게 통과하고 싶을 때
이 책상 쓸 필요 없잖아.
처음에 무엇이 필요했는지
시스템의 초기 설정에는 다음 테이블이 필요합니다.
(수리 화면을 만들어 넣을 수 있지만.)
마이그레이션 수행
양식을 알았더라도 마이그레이션을 수행합니다.
php artisan migrate
이후 Seeder 같은 방법으로 데이터 데이터를 아래 표에 잘 삽입한다* roles
* permissions
* role_has_permissions
사용법
사용자 등록
(귀찮아서 사랑을 끊는다)
User:create는 반환값으로 얻은 사용자로 assignRole 또는 givePermissionTo를 진행합니다
코드 불러오기
middleware
middleware로 설정하고 싶어서 middleware를 사용합니다
게다가
App/Http/Kernel.phpprotected $routeMiddleware = [
'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,
'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,
'role_or_permission' => \Spatie\Permission\Middlewares\RoleOrPermissionMiddleware::class,
];
위의 설치를 보면 알 수 있지만 Laavel을 보면 특별한 구조를 가진 인증 사용자의 소지 방법이 있는 경우
자신의 반을 세워 교체하면 소원대로 이루어질 수 있다.
(설치 자체가 너무 간단해서 쓰지 않음)
route.php
// rolesのデータでだけチェック
Route::group(['middleware' => ['role:admin|operator']], function () {
//
});
// permissionsのデータでだけチェック
Route::group(['middleware' => ['permission:read|write']], function () {
//
});
// roles or permissionsのデータに居るかをチェック
Route::group(['middleware' => ['role_or_permission:operator|read']], function () {
//
});
role_has_permission은 어디에서 사용되나요?
blade
아니오, 하지만 남으세요@role('operator')
@endrole
@hasallroles('writer|admin')
@else
@endhasallroles
퍼미션 주변은 다른 것과 똑같이 사용한다고 합니다@can
끝말
대충 이해한 것 같습니다.
업무 시스템이 필요로 하는 곳도 이루어져서 매우 좋다.
이번 조건에 맞으면 쓰세요.
기술적인 과제로 베일을 어떻게 합치죠?
메뉴 주위는 & SPA로 쓴 것이 아닙니다. Blade에 직접 써서 vue 구성 요소를 사용하지 않도록 해야 할 것 같습니다.
Reference
이 문제에 관하여(laravel-permission 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sh-ogawa/items/09b7097b5721dcdbe566
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
protected $routeMiddleware = [
'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,
'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,
'role_or_permission' => \Spatie\Permission\Middlewares\RoleOrPermissionMiddleware::class,
];
// rolesのデータでだけチェック
Route::group(['middleware' => ['role:admin|operator']], function () {
//
});
// permissionsのデータでだけチェック
Route::group(['middleware' => ['permission:read|write']], function () {
//
});
// roles or permissionsのデータに居るかをチェック
Route::group(['middleware' => ['role_or_permission:operator|read']], function () {
//
});
@role('operator')
@endrole
@hasallroles('writer|admin')
@else
@endhasallroles
대충 이해한 것 같습니다.
업무 시스템이 필요로 하는 곳도 이루어져서 매우 좋다.
이번 조건에 맞으면 쓰세요.
기술적인 과제로 베일을 어떻게 합치죠?
메뉴 주위는 & SPA로 쓴 것이 아닙니다. Blade에 직접 써서 vue 구성 요소를 사용하지 않도록 해야 할 것 같습니다.
Reference
이 문제에 관하여(laravel-permission 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sh-ogawa/items/09b7097b5721dcdbe566텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)