73 lines
1.8 KiB
PHP
73 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Permission;
|
|
use App\Role;
|
|
use App\Http\Resources\PermissionResource;
|
|
use App\Http\Resources\RoleResource;
|
|
|
|
class UserRolePermissionController extends Controller
|
|
{
|
|
public function permissionAttachRole($permission, $role)
|
|
{
|
|
$permission = Permission::findOrFail($permission);
|
|
$role = Role::findOrFail($role);
|
|
|
|
$permission->assignRole($role);
|
|
|
|
return new PermissionResource($permission);
|
|
}
|
|
|
|
public function permissionAttachMultiRoles(Request $roles, $permission)
|
|
{
|
|
$permission = Permission::findOrFail($permission);
|
|
$roles = Role::whereIn('id', $roles)->get();
|
|
|
|
$permission->syncRoles($roles);
|
|
|
|
return new PermissionResource($permission);
|
|
}
|
|
|
|
public function permissionRemoveRole($permission, $role)
|
|
{
|
|
$permission = Permission::findOrFail($permission);
|
|
$role = Role::findOrFail($role);
|
|
|
|
$permission->removeRole($role);
|
|
|
|
return new PermissionResource($permission);
|
|
}
|
|
|
|
public function roleAttachPermission($role, $permission)
|
|
{
|
|
$role = Role::findOrFail($role);
|
|
$permission = Permission::findOrFail($permission);
|
|
|
|
$role->givePermissionTo($permission);
|
|
|
|
return new RoleResource($role);
|
|
}
|
|
|
|
public function roleAttachMultiPermissions(Request $permissions, $role)
|
|
{
|
|
$role = Role::findOrFail($role);
|
|
$permissions = Permission::whereIn('id', $permissions)->get();
|
|
|
|
$role->syncPermissions($permissions);
|
|
|
|
return new RoleResource($role);
|
|
}
|
|
|
|
public function roleRemovePermission($role, $permission)
|
|
{
|
|
$role = Role::findOrFail($role);
|
|
$permission = Permission::findOrFail($permission);
|
|
|
|
$role->revokePermissionTo($permission);
|
|
|
|
return new RoleResource($role);
|
|
}
|
|
}
|