/** * Map routes. * * @param \Illuminate\Contracts\Routing\Registrar $router */ public function map(Registrar $router) { $this->bind('auth_role', function ($hashedId) { return Role::firstHashedOrFail($hashedId); }); $this->group(['prefix' => 'roles', 'as' => 'roles.'], function () { $this->get('/', 'RolesController@index')->name('index'); // auth::foundation.roles.index $this->get('create', 'RolesController@create')->name('create'); // auth::foundation.roles.create $this->post('store', 'RolesController@store')->name('store'); // auth::foundation.roles.store $this->group(['prefix' => '{auth_role}'], function () { $this->get('/', 'RolesController@show')->name('show'); // auth::foundation.roles.show $this->get('edit', 'RolesController@edit')->name('edit'); // auth::foundation.roles.edit $this->put('update', 'RolesController@update')->name('update'); // auth::foundation.roles.update $this->put('activate', 'RolesController@activate')->name('activate'); // auth::foundation.roles.activate $this->delete('delete', 'RolesController@delete')->name('delete'); // auth::foundation.roles.delete }); }); }
/** * 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); } }
/** * Seed the admin account. */ private function seedAdminUser() { $adminUser = new User(['username' => 'admin', 'first_name' => 'Super', 'last_name' => 'ADMIN', 'email' => env('ADMIN_EMAIL', '*****@*****.**'), 'password' => env('ADMIN_PASSWORD', 'password')]); $adminUser->is_admin = true; $adminUser->is_active = true; if (UserConfirmator::isEnabled()) { $adminUser->is_confirmed = true; $adminUser->confirmed_at = Carbon::now(); } $adminUser->save(); /** @var \Arcanesoft\Auth\Models\Role $adminRole */ $adminRole = Role::admin()->first(); $adminRole->attachUser($adminUser); }
/** * 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 roles. * * @return \Illuminate\Database\Eloquent\Collection */ public function getCachedRoles() { return $this->cacheResults('roles.all', function () { return Role::all(); }); }