Code Duplication    Length = 21-24 lines in 2 locations

src/Traits/HasRoles.php 1 location

@@ 81-104 (lines=24) @@
78
     *
79
     * @return $this
80
     */
81
    public function assignRole(...$roles)
82
    {
83
        $roles = collect($roles)
84
            ->flatten()
85
            ->map(function ($role) {
86
                if (empty($role)) {
87
                    return false;
88
                }
89
90
                return $this->getStoredRole($role);
91
            })
92
            ->filter(function ($role) {
93
                return $role instanceof Role;
94
            })
95
            ->each(function ($role) {
96
                $this->ensureModelSharesGuard($role);
97
            })
98
            ->all();
99
100
        $this->roles()->saveMany($roles);
101
102
        $this->forgetCachedPermissions();
103
104
        return $this;
105
    }
106
107
    /**

src/Traits/HasPermissions.php 1 location

@@ 245-265 (lines=21) @@
242
     *
243
     * @return $this
244
     */
245
    public function givePermissionTo(...$permissions)
246
    {
247
        $permissions = collect($permissions)
248
            ->flatten()
249
            ->map(function ($permission) {
250
                return $this->getStoredPermission($permission);
251
            })
252
            ->filter(function ($permission) {
253
                return $permission instanceof Permission;
254
            })
255
            ->each(function ($permission) {
256
                $this->ensureModelSharesGuard($permission);
257
            })
258
            ->all();
259
260
        $this->permissions()->saveMany($permissions);
261
262
        $this->forgetCachedPermissions();
263
264
        return $this;
265
    }
266
267
    /**
268
     * Remove all current permissions and set the given ones.