/** * Sync the roles. * * @todo: Refactor this method */ private function syncRoles() { $permissions = Permission::all(); $roles = ['blog-moderators' => 'blog.', 'blog-authors' => 'blog.posts.']; foreach ($roles as $roleSlug => $permissionSlug) { /** @var \Arcanesoft\Auth\Models\Role $role */ $role = Role::where('slug', $roleSlug)->first(); $ids = $permissions->filter(function (Permission $permission) use($permissionSlug) { return starts_with($permission->slug, $permissionSlug); })->lists('id')->toArray(); $role->permissions()->sync($ids); } }
/** * Sync the roles. * * @todo: Refactor this method */ private function syncRoles() { /** @var \Illuminate\Database\Eloquent\Collection $permissions */ $permissions = Permission::all(); $roles = ['logviewer-manager' => 'foundation.logviewer.']; foreach ($roles as $roleSlug => $permissionSlug) { /** @var \Arcanesoft\Auth\Models\Role $role */ $role = Role::where('slug', $roleSlug)->first(); $ids = $permissions->filter(function (Permission $permission) use($permissionSlug) { return Str::startsWith($permission->slug, $permissionSlug); })->pluck('id')->toArray(); $role->permissions()->sync($ids); } }
/** * Sync the admin role with all permissions. */ protected function syncAdminRole() { /** @var \Arcanesoft\Auth\Models\Role $admin */ $admin = Role::admin()->first(); $admin->permissions()->sync(Permission::all()->pluck('id')->toArray()); }
/** * Get all cached permissions. * * @return \Illuminate\Database\Eloquent\Collection */ protected function getCachedPermissions() { return $this->cacheResults('permissions.all', function () { return Permission::all(); }); }