User Groups and Rights, Fewo
This commit is contained in:
parent
c0c2a1822c
commit
26ecb09cdc
22 changed files with 1316 additions and 787 deletions
38
app/User.php
38
app/User.php
|
|
@ -74,6 +74,10 @@ class User extends Authenticatable
|
|||
|
||||
use SoftDeletes;
|
||||
|
||||
|
||||
|
||||
protected $permissionData = [];
|
||||
|
||||
protected $dates = ['deleted_at'];
|
||||
protected $table = 'users';
|
||||
|
||||
|
|
@ -96,6 +100,11 @@ class User extends Authenticatable
|
|||
'password', 'remember_token', 'token',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'permissions' => 'array',
|
||||
];
|
||||
|
||||
|
||||
|
||||
public function account()
|
||||
{
|
||||
|
|
@ -142,6 +151,35 @@ class User extends Authenticatable
|
|||
return false;
|
||||
}
|
||||
|
||||
|
||||
private function setPermissionsDefault(){
|
||||
$groups = config('permissions.groups');
|
||||
$permissions = [];
|
||||
foreach ($groups as $role_id => $perms){
|
||||
if($role_id <= $this->admin){
|
||||
foreach ($perms as $key => $val){
|
||||
$permissions[$key] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->permissions = $permissions;
|
||||
|
||||
}
|
||||
public function isPermission($key){
|
||||
|
||||
//default by role
|
||||
if(!is_array($this->permissions)){
|
||||
$this->setPermissionsDefault();
|
||||
}
|
||||
|
||||
if($key == strtolower($key)){
|
||||
if(isset($this->permissions[$key]) && $this->permissions[$key] == 1){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue