<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
radiatecode / laravel-permission-name-generator example snippets
use App\Http\Controllers\Controller;
use RadiateCode\LaravelRoutePermission\Contracts\WithPermissionGenerator;
use RadiateCode\LaravelRoutePermission\Traits\PermissionGenerator;
class DepartmentController extends Controller implements WithPermissionGenerator
{
use PermissionGenerator;
public function __construct()
{
$this->permissionsTitle('Department Crud Permissions')
->permissionsExclude('index');// index associate route won't be generated as permission names
}
}
use App\Http\Controllers\Controller;
use App\Http\Controllers\Controller\DepartmentController;
use RadiateCode\LaravelRoutePermission\Contracts\WithPermissionGenerator;
use RadiateCode\LaravelRoutePermission\Traits\PermissionGenerator;
class DesignationController extends Controller implements WithPermissionGenerator
{
use PermissionGenerator;
public function __construct()
{
$this->permissionsAppendTo(DepartmentController::class);
}
}
> $request->get('permissions'); // array of permissions
>
use RadiateCode\PermissionNameGenerator\Permissions;
use RadiateCode\PermissionNameGenerator\Facades\PermissionsView;
use App\Models\Role;
class RoleController extends Controller
{
public function permissionsShow($id)
{
$role = Role::query()->findOrFail($id);
// generate permissions from routes
$permissions = Permissions::make()->fromRoutes()->get();
return PermissionsView::make('app.role.permissions')
->withPermissions($permissions)
->markRolePermissions( // helps to mark the stored role's permissions in the view
$role->role_name,
json_decode($role->role_permissions), // assume role permissions stored as json encoded
route('create-role-permission', $role->id) // permission save url for a role
)->render();
}
}
use \Illuminate\Http\Request;
class RoleController extends Controller
{
public function permissionStore(Request $request,$id)
{
$role = Role::find($id);
$role->role_permissions = json_encode($request->get('permissions')); // get the submitted permissions
$role->save();
return response()->json('success',201);
}
}
> /**
> * These actions used to generate permissions on given resources
> *
> * [Ex: If resource is posts, then permission will be ('create-posts','edit-posts','view-posts') etc]
> */
> 'resource-actions' => [
> 'create',
> 'edit',
> 'show',
> 'delete',
> 'view',
>]
**we can also add resource wise extra actions, which will generate extra permission names.**
use RadiateCode\PermissionNameGenerator\Permissions;
use RadiateCode\PermissionNameGenerator\Facades\PermissionsView;
use App\Models\Role;
class RoleController extends Controller
{
public function permissionsShow($id)
{
$role = Role::query()->findOrFail($id);
$permissions = Permissions::make()->fromResources([
'users',
'posts',
'comments'
])->get();
return PermissionsView::make('app.role.permissions')
->withPermissions($permissions)
->markRolePermissions(
$role->role_name,
json_decode($role->role_permissions), // assume role permissions stored as json encoded
route('create-role-permission', $role->id) // permission save url for a role
)->render();
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.