@@ 7-50 (lines=44) @@ | ||
4 | ||
5 | use Illuminate\Database\Eloquent\Model; |
|
6 | ||
7 | abstract class BasePermission extends Model |
|
8 | { |
|
9 | public $table = 'multi_tenant_permissions'; |
|
10 | ||
11 | /** |
|
12 | * The attributes that are mass assignable. |
|
13 | * |
|
14 | * @var array |
|
15 | */ |
|
16 | protected $fillable = [ |
|
17 | 'name', 'label', 'feature_id', 'description', |
|
18 | ]; |
|
19 | ||
20 | /** |
|
21 | * The permissions relationship |
|
22 | */ |
|
23 | public function roles() |
|
24 | { |
|
25 | return $this->belongsToMany( |
|
26 | config('multi-tenant.role_class'), |
|
27 | 'multi_tenant_permission_multi_tenant_role', |
|
28 | 'multi_tenant_permission_id', |
|
29 | 'multi_tenant_role_id' |
|
30 | ); |
|
31 | } |
|
32 | ||
33 | /** |
|
34 | * Assign a given permission to the Role |
|
35 | */ |
|
36 | public function giveToRole(BaseRole $role) |
|
37 | { |
|
38 | $this->roles()->syncWithoutDetaching([$role->id]); |
|
39 | ||
40 | return $this; |
|
41 | } |
|
42 | ||
43 | /** |
|
44 | * Check if the role has a given permission |
|
45 | */ |
|
46 | public function hasRole(BaseRole $role) |
|
47 | { |
|
48 | return $this->roles()->where('multi_tenant_role_id', $role->id)->exists(); |
|
49 | } |
|
50 | } |
|
51 |
@@ 7-50 (lines=44) @@ | ||
4 | ||
5 | use Illuminate\Database\Eloquent\Model; |
|
6 | ||
7 | abstract class BaseRole extends Model |
|
8 | { |
|
9 | public $table = 'multi_tenant_roles'; |
|
10 | ||
11 | /** |
|
12 | * The attributes that are mass assignable. |
|
13 | * |
|
14 | * @var array |
|
15 | */ |
|
16 | protected $fillable = [ |
|
17 | 'name', 'label', 'description', |
|
18 | ]; |
|
19 | ||
20 | /** |
|
21 | * The permissions relationship |
|
22 | */ |
|
23 | public function permissions() |
|
24 | { |
|
25 | return $this->belongsToMany( |
|
26 | config('multi-tenant.permission_class'), |
|
27 | 'multi_tenant_permission_multi_tenant_role', |
|
28 | 'multi_tenant_role_id', |
|
29 | 'multi_tenant_permission_id' |
|
30 | ); |
|
31 | } |
|
32 | ||
33 | /** |
|
34 | * Assign a given permission to the Role |
|
35 | */ |
|
36 | public function assignPermission(BasePermission $permission) |
|
37 | { |
|
38 | $this->permissions()->syncWithoutDetaching([$permission->id]); |
|
39 | ||
40 | return $this; |
|
41 | } |
|
42 | ||
43 | /** |
|
44 | * Check if the role has a given permission |
|
45 | */ |
|
46 | public function hasPermission(BasePermission $permission) |
|
47 | { |
|
48 | return $this->permissions()->where('multi_tenant_permission_id', $permission->id)->exists(); |
|
49 | } |
|
50 | } |
|
51 |