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

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