我使用 romanbican / roles 包来管理我的roles/permissions
。现在,我有一个具有权限admin
,create_user
,edit_user
的特定角色(例如delete_user
)。我使用了复选框,因此,如果我unchecked
获得了权限(例如delete_user
),则此权限将来自detached
角色admin
。这是我使用的包https://github.com/romanbican/roles的链接。那里有一种称为attachRole()
或attachPermission
和detachRole
或detachPermission
的方法。需要你的帮助,我已经 2天关于这个,所以我觉得是时候问了:)
答案 0 :(得分:1)
我并不完全理解您的问题,但看起来您有一个界面,可以使用复选框将权限分配给用户。这是一种方法。
$admin = User::find(1);
$admin->detachAllPermissions();
$permission = $request->get('permissions');
// loop through all checked permission passed from view
// we are assuming $permissions array to be an array of slug of permissions
foreach($permissions as $permission_slug){
//get the permission object by slug
$permission = Bican\Roles\Models\Permission::where('slug', $permission)->get();
//attach to admin
$admin->attachPermission($permission);
}
以下是解释。
注意:请注意我没有测试过这段代码,这是基于您正在使用的插件提供的功能的更多算法。
插件还具有$user->detachPermission($permission)
方法,该方法获得单一权限,并在附加时将其与用户分离。