1. Go to this page and download the library: Download dmox/h-rbac library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
dmox / h-rbac example snippets
if (\Gate::allows('editPost', $post)) { // do something }
...
if (\Gate::denies('editPost', $post)) { abort(403); }
...
if (\Gate::forUser($user)->allows('editPost', $post)) { // do something }
if ($request->user()->can('editPost', $post)) { // do something }
...
if ($request->user()->cannot('editPost', $post)) { abort(403); }
$this->authorize('editPost', $post);
namespace App\Classes\Authorization;
use Dlnsk\HierarchicalRBAC\Authorization;
class AuthorizationClass extends Authorization
{
public function getPermissions() {
return [
'editPost' => [
'description' => 'Edit any posts', // optional property
'next' => 'editOwnPost', // used for making chain (hierarchy) of permissions
],
'editOwnPost' => [
'description' => 'Edit own post',
],
'deletePost' => [
'description' => 'Delete any posts',
],
];
}
public function getRoles() {
return [
'manager' => [
'editPost',
'deletePost',
],
'user' => [
'editOwnPost',
],
];
}
////////////// Callbacks ///////////////
public function editOwnPost($user, $post) {
$post = $this->getModel(\App\Post::class, $post); // helper method for geting model
return $user->id === $post->user_id;
}
}
php
public function editOwnPost($user, $post) {
return $user->id === $post->user_id;
}
php
if (\Gate::can('editOwnPost', $post)) {
}
php
if (\Gate::can('editPost', $post)) {
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.