Code Duplication    Length = 16-16 lines in 2 locations

src/Traits/HasRoles.php 2 locations

@@ 49-64 (lines=16) @@
46
     *
47
     * @return \Illuminate\Database\Eloquent\Builder
48
     */
49
    public function scopeRole(Builder $query, $roles, $guard = null): Builder
50
    {
51
        if ($roles instanceof Collection) {
52
            $roles = $roles->all();
53
        }
54
55
        if (!is_array($roles)) {
56
            $roles = [$roles];
57
        }
58
59
        $roles = $this->getArgumentRoles($roles, $guard);
60
61
        return $query->whereHas('roles', function (Builder $subQuery) use ($roles) {
62
            $subQuery->whereIn(config('permission.table_names.roles').'.id', \array_column($roles, 'id'));
63
        });
64
    }
65
66
    /**
67
     * Scope the model query without certain roles.
@@ 75-90 (lines=16) @@
72
     *
73
     * @return \Illuminate\Database\Eloquent\Builder
74
     */
75
    public function scopeWithoutRole(Builder $query, $roles, $guard = null): Builder
76
    {
77
        if ($roles instanceof Collection) {
78
            $roles = $roles->all();
79
        }
80
81
        if (!is_array($roles)) {
82
            $roles = [$roles];
83
        }
84
85
        $roles = $this->getArgumentRoles($roles, $guard);
86
87
        return $query->whereDoesntHave('roles', function (Builder $subQuery) use ($roles) {
88
            $subQuery->whereIn(config('permission.table_names.roles').'.id', \array_column($roles, 'id'));
89
        });
90
    }
91
92
    /**
93
     * Assign the given role to the model.