Code Duplication    Length = 17-17 lines in 2 locations

src/Traits/HasPermissions.php 2 locations

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