Code Duplication    Length = 17-17 lines in 2 locations

src/Traits/HasPermissions.php 2 locations

@@ 72-88 (lines=17) @@
69
     *
70
     * @return \Illuminate\Database\Eloquent\Builder
71
     */
72
    public function scopePermission(Builder $query, $permissions): Builder
73
    {
74
        $permissions = $this->convertToPermissionModels($permissions);
75
76
        $roleIdsWithPermission = $this->convertPermissionsToRoleIds($permissions);
77
78
        return $query->where(function (Builder $query) use ($permissions, $roleIdsWithPermission) {
79
            $query->whereHas('permissions', function (Builder $subQuery) use ($permissions) {
80
                $subQuery->whereIn(config('permission.table_names.permissions').'.id', \array_column($permissions, 'id'));
81
            });
82
            if (count($roleIdsWithPermission) > 0) {
83
                $query->orWhereHas('roles', function (Builder $subQuery) use ($roleIdsWithPermission) {
84
                    $subQuery->whereIn(config('permission.table_names.roles').'.id', $roleIdsWithPermission);
85
                });
86
            }
87
        });
88
    }
89
90
    /**
91
     * Scope the model query without certain permissions.
@@ 98-114 (lines=17) @@
95
     *
96
     * @return \Illuminate\Database\Eloquent\Builder
97
     */
98
    public function scopeWithoutPermission(Builder $query, $permissions): Builder
99
    {
100
        $permissions = $this->convertToPermissionModels($permissions);
101
102
        $roleIdsWithPermission = $this->convertPermissionsToRoleIds($permissions);
103
104
        return $query->where(function (Builder $query) use ($permissions, $roleIdsWithPermission) {
105
            $query->whereDoesntHave('permissions', function (Builder $subQuery) use ($permissions) {
106
                $subQuery->whereIn(config('permission.table_names.permissions').'.id', \array_column($permissions, 'id'));
107
            });
108
            if (count($roleIdsWithPermission) > 0) {
109
                $query->whereDoesntHave('roles', function (Builder $subQuery) use ($roleIdsWithPermission) {
110
                    $subQuery->whereIn(config('permission.table_names.roles').'.id', $roleIdsWithPermission);
111
                });
112
            }
113
        });
114
    }
115
116
    /**
117
     * @param string|array|\Spatie\Permission\Contracts\Permission|\Illuminate\Support\Collection $permissions