mkinyua53 / authorization
A package to add functionality to larapacks/authorization package
v1.0.0
2020-12-14 11:42 UTC
Requires
- larapacks/authorization: ^2.3
README
This package returns all the possible routes of larapacks\authorization
package.
You need to have configured that package first in your laravel project.
Installation
Use composer
composer require mkinyua53/authorization
Insert the service provider in config\app.php providers array.
Mkinyua53\Authorization\AuthorizationServiceProvider::class,
Usage
Add the relationships functions in
\App\User
public function roles()
{
return $this->belongsToMany(Role::class);
}
public function permissions()
{
return $this->belongsToMany(Permission::class);
}
\App\Role
public function users()
{
return $this->belongsToMany(User::class);
}
public function permissions()
{
return $this->belongsToMany(Permission::class);
}
\App\Permission
public function roles()
{
return $this->belongsToMany(Role::class);
}
public function users()
{
return $this->belongsToMany(User::class);
}
Insert the routes declaration in a service provider register function
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
\Mkinyua53\Authorization\Authorization::routes();
}
}
The following routes will be added
Route::group(['namespace' => '\Mkinyua53\Authorization'], function () {
Route::resource('roles', 'RoleController', ['except' => ['create', 'edit']]);
Route::resource('permissions', 'PermissionController', ['except' => ['create', 'edit']]);
Route::post('roles/{role}/users/{user}/attach', 'RoleController@attachUser');
Route::post('roles/{role}/permissions/{permission}/attach', 'RoleController@attachPermission');
Route::post('roles/{role}/users/{user}/detach', 'RoleController@detachUser');
Route::post('roles/{role}/permissions/{permission}/detach', 'RoleController@detachPermission');
Route::post('roles/users/{user}/detach', 'RoleController@detachUserAll');
Route::post('roles/permissions/{permission}/detach', 'RoleController@detachPermissionAll');
Route::post('permissions/{permission}/users/{user}/attach', 'PermissionController@attachUser');
Route::post('permissions/{permission}/users/{user}/detach', 'PermissionController@detachUser');
Route::post('permissions/users/{user}/detach', 'PermissionController@detachUserAll');
});
NOTE
- This package is optimized to be used in an api, no views are provided
Summary
Route | Method | Parameters | Return | Extra |
---|---|---|---|---|
roles | GET | null | Collection $roles |
|
roles | POST | Request $request |
App\Role $role |
|
roles/{role} | GET | $roleId | App\Role $role |
Returns users and permissions relationships as Array |
roles/{role} | PUT / PATCH | Request $request, $roleId |
App\Role $role |
|
roles/{role} | DELETE | $roleId | App\Role $role |
|
~ | ~ | ~ | ~ | ~ |
permissions | GET | null | Collection $permissions |
|
permissions | POST | Request $request |
App\Permission $permission |
|
permissions/{permission} | GET | $permissionId | App\Permission $permission |
Returns users and roles relationships as Array |
permissions/{permission} | PUT / PATCH | Request $request, $permissionId |
App\Permission $permission |
|
permissions/{permission} | DELETE | $permissionId | App\Permission $permission |
|
~ | ~ | ~ | ~ | ~ |
roles/{role}/users/{user}/attach | POST | $roleId, $userId | string 'User granted the role' |
Grant the role to the user |
roles/{role}/permissions/{permission}/attach | POST | $roleId, $permissionId | string 'Permission granted the role' |
Grants the role to the permission |
roles/{role}/users/{user}/detach | POST | $roleId, $userId | string 'User detached of role' |
Detaches the role from the user |
roles/{role}/permissions/{permission}/detach | POST | $roleId, $permissionId | string 'Permission detached from role' |
Detaches the role from the permission |
roles/users/{user}/detach | POST | $userId | string 'User detached all role' |
Detaches all roles from a user |
roles/permissions/{permission}/detach | POST | $permissionId | string 'Permission detached of all role' |
Detaches all roles from permission |
~ | ~ | ~ | ~ | ~ |
permissions/{permission}/users/{user}/attach | POST | $permissionId, $userId | string 'Permission granted to user' |
Grants the permission to the user |
permissions/{permission}/users/{user}/detach | POST | $permissionId, $userId | string 'User detached of the permission' |
Detach permission from user |
permissions/users/{user}/detach | POST | $userId | string 'User detached of all permission' |
Detach all permission from user |