/** * Execute the console command. * * @return mixed */ public function handle() { $this->info('Fixing role and permissions structure.'); $permissions = array(); $roles = array(); $permissions['sysadmin'] = Permission::where('name', '=', 'sysadmin')->first(); if ($permissions['sysadmin'] == null) { $permissions['sysadmin'] = new Permission(array('name' => 'sysadmin', 'display_name' => 'System Admin', 'description' => 'Gives root access to the application.')); $permissions['sysadmin']->save(); $this->info('Added sysadmin permission.'); } $permissions['admin'] = Permission::where('name', '=', 'admin')->first(); if ($permissions['admin'] == null) { $permissions['admin'] = new Permission(array('name' => 'admin', 'display_name' => 'Admin', 'description' => 'Gives admin access to the application.')); $permissions['admin']->save(); $this->info('Added admin permission.'); } $permissions['board'] = Permission::where('name', '=', 'board')->first(); if ($permissions['board'] == null) { $permissions['board'] = new Permission(array('name' => 'board', 'display_name' => 'Board Access', 'description' => 'Gives access to the association administration.')); $permissions['board']->save(); $this->info('Added board permission.'); } $permissions['omnomcom'] = Permission::where('name', '=', 'omnomcom')->first(); if ($permissions['omnomcom'] == null) { $permissions['omnomcom'] = new Permission(array('name' => 'omnomcom', 'display_name' => 'OmNomCom Access', 'description' => 'Gives access to the OmNomCom administration.')); $permissions['omnomcom']->save(); $this->info('Added omnomcom permission.'); } $permissions['finadmin'] = Permission::where('name', '=', 'finadmin')->first(); if ($permissions['finadmin'] == null) { $permissions['finadmin'] = new Permission(array('name' => 'finadmin', 'display_name' => 'Financial Administration', 'description' => 'Gives access to the financial administration.')); $permissions['finadmin']->save(); $this->info('Added finadmin permission.'); } $permissions['pilscie'] = Permission::where('name', '=', 'pilscie')->first(); if ($permissions['pilscie'] == null) { $permissions['pilscie'] = new Permission(array('name' => 'pilscie', 'display_name' => 'PilsCie Access', 'description' => 'Gives access to the PilsCie tools.')); $permissions['pilscie']->save(); $this->info('Added pilscie permission.'); } $permissions['alfred'] = Permission::where('name', '=', 'alfred')->first(); if ($permissions['alfred'] == null) { $permissions['alfred'] = new Permission(array('name' => 'alfred', 'display_name' => 'Alfred\'s Workshop', 'description' => 'Manages access to the OmNomCom for workshop functions.')); $permissions['alfred']->save(); $this->info('Added alfred permission.'); } $roles['sysadmin'] = Role::where('name', '=', 'sysadmin')->first(); if ($roles['sysadmin'] == null) { $roles['sysadmin'] = new Role(array('name' => 'sysadmin', 'display_name' => 'System Administrator', 'description' => 'System administrator')); $roles['sysadmin']->save(); $this->info('Added sysadmin role.'); } $roles['admin'] = Role::where('name', '=', 'admin')->first(); if ($roles['admin'] == null) { $roles['admin'] = new Role(array('name' => 'admin', 'display_name' => 'Administrator', 'description' => 'Application administrator')); $roles['admin']->save(); $this->info('Added admin role.'); } $roles['board'] = Role::where('name', '=', 'board')->first(); if ($roles['board'] == null) { $roles['board'] = new Role(array('name' => 'board', 'display_name' => 'Board', 'description' => 'Association board')); $roles['board']->save(); $this->info('Added board role.'); } $roles['omnomcom'] = Role::where('name', '=', 'omnomcom')->first(); if ($roles['omnomcom'] == null) { $roles['omnomcom'] = new Role(array('name' => 'omnomcom', 'display_name' => 'OmNomCom', 'description' => 'OmNomCom member')); $roles['omnomcom']->save(); $this->info('Added omnomcom role.'); } $roles['finadmin'] = Role::where('name', '=', 'finadmin')->first(); if ($roles['finadmin'] == null) { $roles['finadmin'] = new Role(array('name' => 'finadmin', 'display_name' => 'Financial Administrator', 'description' => 'Finance responsible')); $roles['finadmin']->save(); $this->info('Added finadmin role.'); } $roles['pilscie'] = Role::where('name', '=', 'pilscie')->first(); if ($roles['pilscie'] == null) { $roles['pilscie'] = new Role(array('name' => 'pilscie', 'display_name' => 'PilsCie', 'description' => 'PilsCie member')); $roles['pilscie']->save(); $this->info('Added pilscie role.'); } $roles['pilscie'] = Role::where('name', '=', 'pilscie')->first(); if ($roles['pilscie'] == null) { $roles['pilscie'] = new Role(array('name' => 'pilscie', 'display_name' => 'PilsCie', 'description' => 'PilsCie member')); $roles['pilscie']->save(); $this->info('Added pilscie role.'); } $roles['alfred'] = Role::where('name', '=', 'alfred')->first(); if ($roles['alfred'] == null) { $roles['alfred'] = new Role(array('name' => 'alfred', 'display_name' => 'Alfred', 'description' => 'This person is Alfred')); $roles['alfred']->save(); $this->info('Added alfred role.'); } $this->info('Now all roles and permissions exist.'); $roles['sysadmin']->perms()->sync(array($permissions['sysadmin']->id, $permissions['admin']->id, $permissions['board']->id, $permissions['omnomcom']->id, $permissions['finadmin']->id, $permissions['pilscie']->id)); $this->info('Synced sysadmin role with permissions.'); $roles['admin']->perms()->sync(array($permissions['admin']->id, $permissions['board']->id, $permissions['omnomcom']->id, $permissions['finadmin']->id, $permissions['pilscie']->id)); $this->info('Synced admin role with permissions.'); $roles['board']->perms()->sync(array($permissions['board']->id, $permissions['omnomcom']->id, $permissions['pilscie']->id)); $this->info('Synced board role with permissions.'); $roles['finadmin']->perms()->sync(array($permissions['finadmin']->id)); $this->info('Synced finadmin role with permissions.'); $roles['omnomcom']->perms()->sync(array($permissions['omnomcom']->id)); $this->info('Synced omnomcom role with permissions.'); $roles['pilscie']->perms()->sync(array($permissions['pilscie']->id)); $this->info('Synced pilscie role with permissions.'); $roles['alfred']->perms()->sync(array($permissions['alfred']->id, $permissions['omnomcom']->id)); $this->info('Synced alfred role with permissions.'); $this->info('Fixed required permissions and roles.'); }
public function index() { $roles = Role::all(); $permissions = Permission::all(); return view('authorization.overview', ['roles' => $roles, 'permissions' => $permissions]); }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { if (!$this->extraVerficiation($request)) { return $this->forwardToAuth($request); } $password = PasswordEntry::findOrFail($id); if (!$password->canAccess(Auth::user())) { $request->session()->flash('flash_message', 'You are not allowed to edit this entry.'); return Redirect::route('passwordstore::index'); } $permission = Permission::findOrFail($request->get('permission_id')); if (!Auth::user()->can($permission->name)) { $request->session()->flash('flash_message', 'You are not allowed to set this permission for a password.'); return Redirect::back(); } if ($request->get('type') == 'password') { $password->fill(['permission_id' => $permission->id, 'description' => $request->get('description'), 'username' => Crypt::encrypt($request->get('username')), 'password' => Crypt::encrypt($request->get('password')), 'url' => $request->get('url') == "" ? null : $request->get('url'), 'note' => null]); $password->save(); $request->session()->flash('flash_message', 'Password saved.'); return Redirect::route('passwordstore::index'); } elseif ($request->get('type') == 'note') { $password->fill(['permission_id' => $permission->id, 'description' => $request->get('description'), 'username' => null, 'password' => null, 'url' => null, 'note' => Crypt::encrypt($request->get('note'))]); $password->save(); $request->session()->flash('flash_message', 'Note saved.'); return Redirect::route('passwordstore::index'); } $request->session()->flash('flash_message', 'Invalid input.'); return Redirect::route('passwordstore::index'); }