improved permissions trait
This commit is contained in:
parent
f2522a4c78
commit
1cd85d446c
@ -33,17 +33,17 @@ trait Permissions
|
|||||||
|
|
||||||
public function attachPermissionsToAdminRoles($permissions)
|
public function attachPermissionsToAdminRoles($permissions)
|
||||||
{
|
{
|
||||||
$this->attachPermissionsToAllRoles($permissions, 'read-admin-panel');
|
$this->applyPermissionsToRoles($this->getDefaultAdminRoles(), 'attach', $permissions);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function attachPermissionsToPortalRoles($permissions)
|
public function attachPermissionsToPortalRoles($permissions)
|
||||||
{
|
{
|
||||||
$this->attachPermissionsToAllRoles($permissions, 'read-client-portal');
|
$this->applyPermissionsToRoles($this->getDefaultPortalRoles(), 'attach', $permissions);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function attachPermissionsToAllRoles($permissions, $require = 'read-admin-panel')
|
public function attachPermissionsToAllRoles($permissions, $require = 'read-admin-panel')
|
||||||
{
|
{
|
||||||
$this->applyPermissionsToAllRoles('attach', $permissions, $require);
|
$this->applyPermissionsToRoles($this->getRoles($require), 'attach', $permissions);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function detachPermissionsByRoleNames($roles)
|
public function detachPermissionsByRoleNames($roles)
|
||||||
@ -57,22 +57,22 @@ trait Permissions
|
|||||||
|
|
||||||
public function detachPermissionsFromAdminRoles($permissions)
|
public function detachPermissionsFromAdminRoles($permissions)
|
||||||
{
|
{
|
||||||
$this->detachPermissionsFromAllRoles($permissions, 'read-admin-panel');
|
$this->applyPermissionsToRoles($this->getDefaultAdminRoles(), 'detach', $permissions);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function detachPermissionsFromPortalRoles($permissions)
|
public function detachPermissionsFromPortalRoles($permissions)
|
||||||
{
|
{
|
||||||
$this->detachPermissionsFromAllRoles($permissions, 'read-client-portal');
|
$this->applyPermissionsToRoles($this->getDefaultPortalRoles(), 'detach', $permissions);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function detachPermissionsFromAllRoles($permissions, $require = 'read-admin-panel')
|
public function detachPermissionsFromAllRoles($permissions, $require = 'read-admin-panel')
|
||||||
{
|
{
|
||||||
$this->applyPermissionsToAllRoles('detach', $permissions, $require);
|
$this->applyPermissionsToRoles($this->getRoles($require), 'detach', $permissions, $require);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function applyPermissionsToAllRoles($apply, $permissions, $require = 'read-admin-panel')
|
public function applyPermissionsToRoles($roles, $apply, $permissions)
|
||||||
{
|
{
|
||||||
$this->getRoles($require)->each(function ($role) use ($apply, $permissions) {
|
$roles->each(function ($role) use ($apply, $permissions) {
|
||||||
$f1 = $apply . 'PermissionsByAction';
|
$f1 = $apply . 'PermissionsByAction';
|
||||||
$f2 = $apply . 'Permission';
|
$f2 = $apply . 'Permission';
|
||||||
|
|
||||||
@ -113,7 +113,7 @@ trait Permissions
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function attachDefaultModulePermissions($module, $require = 'read-admin-panel')
|
public function attachDefaultModulePermissions($module, $require = null)
|
||||||
{
|
{
|
||||||
$this->attachModuleReportPermissions($module, $require);
|
$this->attachModuleReportPermissions($module, $require);
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ trait Permissions
|
|||||||
$this->attachModuleSettingPermissions($module, $require);
|
$this->attachModuleSettingPermissions($module, $require);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function attachModuleReportPermissions($module, $require = 'read-admin-panel')
|
public function attachModuleReportPermissions($module, $require = null)
|
||||||
{
|
{
|
||||||
if (is_string($module)) {
|
if (is_string($module)) {
|
||||||
$module = module($module);
|
$module = module($module);
|
||||||
@ -142,10 +142,12 @@ trait Permissions
|
|||||||
$permissions[] = $this->createModuleReportPermission($module, $class);
|
$permissions[] = $this->createModuleReportPermission($module, $class);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->attachPermissionsToAllRoles($permissions, $require);
|
$require
|
||||||
|
? $this->attachPermissionsToAllRoles($permissions, $require)
|
||||||
|
: $this->attachPermissionsToAdminRoles($permissions);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function attachModuleWidgetPermissions($module, $require = 'read-admin-panel')
|
public function attachModuleWidgetPermissions($module, $require = null)
|
||||||
{
|
{
|
||||||
if (is_string($module)) {
|
if (is_string($module)) {
|
||||||
$module = module($module);
|
$module = module($module);
|
||||||
@ -165,10 +167,12 @@ trait Permissions
|
|||||||
$permissions[] = $this->createModuleWidgetPermission($module, $class);
|
$permissions[] = $this->createModuleWidgetPermission($module, $class);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->attachPermissionsToAllRoles($permissions, $require);
|
$require
|
||||||
|
? $this->attachPermissionsToAllRoles($permissions, $require)
|
||||||
|
: $this->attachPermissionsToAdminRoles($permissions);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function attachModuleSettingPermissions($module, $require = 'read-admin-panel')
|
public function attachModuleSettingPermissions($module, $require = null)
|
||||||
{
|
{
|
||||||
if (is_string($module)) {
|
if (is_string($module)) {
|
||||||
$module = module($module);
|
$module = module($module);
|
||||||
@ -183,7 +187,9 @@ trait Permissions
|
|||||||
$permissions[] = $this->createModuleSettingPermission($module, 'read');
|
$permissions[] = $this->createModuleSettingPermission($module, 'read');
|
||||||
$permissions[] = $this->createModuleSettingPermission($module, 'update');
|
$permissions[] = $this->createModuleSettingPermission($module, 'update');
|
||||||
|
|
||||||
$this->attachPermissionsToAllRoles($permissions, $require);
|
$require
|
||||||
|
? $this->attachPermissionsToAllRoles($permissions, $require)
|
||||||
|
: $this->attachPermissionsToAdminRoles($permissions);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createModuleReportPermission($module, $class)
|
public function createModuleReportPermission($module, $class)
|
||||||
@ -359,4 +365,26 @@ trait Permissions
|
|||||||
return $require ? $role->hasPermission($require) : true;
|
return $require ? $role->hasPermission($require) : true;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getDefaultAdminRoles($custom = null)
|
||||||
|
{
|
||||||
|
$roles = Role::whereIn('name', $custom ?? ['admin', 'manager'])->get();
|
||||||
|
|
||||||
|
if ($roles->isNotEmpty()) {
|
||||||
|
return $roles;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->getRoles('read-admin-panel');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDefaultPortalRoles($custom = null)
|
||||||
|
{
|
||||||
|
$roles = Role::whereIn('name', $custom ?? ['customer'])->get();
|
||||||
|
|
||||||
|
if ($roles->isNotEmpty()) {
|
||||||
|
return $roles;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->getRoles('read-client-portal');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user