Code Duplication    Length = 44-44 lines in 2 locations

src/app/Models/BasePermission.php 1 location

@@ 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

src/app/Models/BaseRole.php 1 location

@@ 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