설명서를 읽었을 때 내가해야 할 일에 대해 많이 알게되었습니다. 이 패키지를 설치했습니다. CentaurLaravel의 센티넬 사용
본질적으로 Sentinel의 확장이므로, 동일한 방식으로 작동해야합니다. 설치 및 설정이 완료되면 사용자와 역할을 만들 수 있습니다. 이것은 괜찮습니다. 그래서 내 레이아웃보기에서 클라이언트 인덱스 페이지에 대한 링크를 제공합니다. 모든 사람들이 이것을보고 모든 체크를하지 않기를 바랍니다.
<li class="{{ Request::is('clients*') ? 'active' : '' }}"><a href="{{ route('clients.index') }}">Clients</a></li>
사용자 및 역할 컨트롤러를 보면 사용 권한을 명시한 ClientsController에 생성자가 필요하다고 가정했습니다. 이것은 내가 가진 것입니다.
public function __construct(AuthManager $authManager)
{
// Middleware
$this->middleware('sentinel.auth');
$this->middleware('sentinel.access:users.view', ['only' => ['index', 'show']]);
$this->middleware('sentinel.role:administrator');
// Dependency Injection
$this->roleRepository = app()->make('sentinel.roles');
$this->authManager = $authManager;
}
달성하려는 것은 사용자가 클라이언트 만 볼 수 있도록하는 것이며 관리자는이를 업데이트 할 수 있습니다. 내 편집 역할보기 내에서 확인란을 추가했습니다.
<div class="checkbox">
<label>
<input type="checkbox" name="permissions[clients.update]" value="1" {{ $role->hasAccess('clients.update') ? 'checked' : '' }}>
clients.update
</label>
</div>
<div class="checkbox">
<label>
<input type="checkbox" name="permissions[clients.view]" value="1" {{ $role->hasAccess('clients.view') ? 'checked' : '' }}>
clients.view
</label>
</div>
관리자가 클라이언트를보고 업데이트 할 수 있습니다. 나는 일반 사용자로 시스템에 로그인 할 때 그러나, 나는 센티넬 새로운 모델을 만들 그래서 때 내가
Error: You do not have permission to do that.
를 참조 클라이언트 링크를 클릭하면 확실히 사용자/역할 권한을 부여하는 과정은 무엇인가 행위?
감사합니다 다음
해당 부분을 이해합니다. 내 문제는 이것입니다. 나는 두 가지 역할을한다. 관리자 및 사용자. 각 역할에 사용자를 할당했습니다. 이것은 종자 파일 내에서 일을 설정할 때 수행되었습니다. 나는 이제 새로운 모델, 클라이언트를 가지고있다. 어떻게 든 관리자 만 클라이언트를 업데이트 할 수 있으며 사용자는 볼 수만 있다고 명시해야합니다. 우리는 이것을 어떻게 처리 할 것인가? –