用户权限的工作方式和角色权限一样,除了用户权限会覆盖默认的角色权限。
为权限集合设置的别名会以 json 的形式存储在数据库中。
添加用户权限
$user = User::first();
// 创建 crud 权限
// create.user, view.user, update.user, delete.user
// 如果别名已经存在则返回 false
$user->addPermission('user');
// 在 user 别名中更新权限
// 设置它的权限为 false
$user->addPermission('update.user', false);
$user->addPermission('view.phone.user', true);
// 传入权限数组到 user 别名中
$user->addPermission('user', [
'view.phone' => true,
'view.blog' => false
]);
提醒: 如果别名或权限已经存在,会更新已有的权限的值。
移除用户权限
// 移除一个别名
$user->removePermission('user');
// 移除 user 的 update 权限
$user->removePermission('update.user');
$user->removePermission('user', [
'view.phone'
'view.blog'
]);
获取用户权限
获取用户的权限,用户权限和角色权限会以键值对数组的形式一起返回。同时用户权限会覆盖角色的权限。
$user = User::first();
$user->getPermissions();