/** * Displays the view for the Admin control panel. * * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function index() { if (!$this->authorize('show-admin')) { redirect('home'); } $data = ['page_title' => 'Admin Dashboard', 'users' => User::getUser(), 'num_users' => User::getNumOfUsers(), 'roles' => Role::all(), 'num_admins' => User::getNumAdmins(), 'centers' => Fund::all()]; return view('admin.dashboard', $data); }
/** * Checks if user has at least one of the given permissions. * * @param array $permissions * * @return bool */ public function canAtLeast($permissions) { if ($this->auth->check()) { // return $this->auth->user()->canAtLeast($permissions); } else { $guest = Role::whereSlug('guest')->first(); if ($guest) { return $guest->canAtLeast($permissions); } } return false; }
public function run() { // Uncomment the below to wipe the table clean before populating DB::table('roles')->delete(); DB::table('role_user')->delete(); DB::table('permissions')->delete(); DB::table('permission_role')->delete(); $roles = [['id' => 1, 'name' => 'administrator', 'slug' => 'admin', 'description' => null, 'created_at' => new DateTime(), 'updated_at' => new DateTime()], ['id' => 2, 'name' => 'user', 'slug' => 'user', 'description' => null, 'created_at' => new DateTime(), 'updated_at' => new DateTime()], ['id' => 3, 'name' => 'visiteur', 'slug' => 'visiteur', 'description' => null, 'created_at' => new DateTime(), 'updated_at' => new DateTime()], ['id' => 4, 'name' => 'pending', 'slug' => 'pending', 'description' => null, 'created_at' => new DateTime(), 'updated_at' => new DateTime()], ['id' => 5, 'name' => 'ban', 'slug' => 'banned', 'description' => null, 'created_at' => new DateTime(), 'updated_at' => new DateTime()]]; DB::table('roles')->insert($roles); foreach (User::all() as $user) { if ($user->id == 1) { $user->assignRole(1); } else { if ($user->id < 25) { $user->assignRole(2); } else { $user->assignRole(4); } } } $permissions = [['id' => 1, 'name' => 'panel', 'slug' => 'access.admin', 'description' => null, 'created_at' => new DateTime(), 'updated_at' => new DateTime()], ['id' => 2, 'name' => 'search', 'slug' => 'view.search', 'description' => null, 'created_at' => new DateTime(), 'updated_at' => new DateTime()], ['id' => 3, 'name' => 'self', 'slug' => 'self', 'description' => null, 'created_at' => new DateTime(), 'updated_at' => new DateTime()]]; DB::table('permissions')->insert($permissions); foreach (Role::all() as $role) { if ($role->id == 1) { // dans la table roles, la colonne id. $role->syncPermissions([1, 2, 3]); } else { if ($role->id == 4) { $role->syncPermissions([3]); } else { if ($role->id == 5) { $role->syncPermissions([]); } else { $role->syncPermissions([2, 3]); } } } } }
/** * The deleteRole method deletes a role from the database. * * @param $role_id */ public function deleteRole($role_id) { $role = Role::find($role_id); if ($role->delete()) { return 'The role was deleted.'; } else { return 'The role was not added. Something happened.'; } }
/** * Adds a role to the database which can then be assigned to * a user. * * @param $role_name * @param $role_description * @return bool */ public static function addRole($role_name, $role_description) { $role = new Role(); $role->name = $role_name; $role->description = $role_description; $role->slug = lcfirst($role_name); return $role->save(); }