/** * Run the database seeds. * * @return void */ public function run() { DB::table('permissions')->truncate(); DB::table('permission_role')->truncate(); // Create superadmin permissions $permissions = $this->getSuperadminPermissionsList(); $role = Role::whereName('SUPERADMIN')->first(); foreach ($permissions as $permission) { Permission::create(['name' => $permission]); $role->givePermissionTo($permission); } // Create admin permissions $permissions = $this->getAdminPermissionsList(); $role = Role::whereName('ADMINISTRATOR')->first(); foreach ($permissions as $permission) { Permission::create(['name' => $permission]); $role->givePermissionTo($permission); } // Associate editor permissions $permissions = $this->getEditorPermissionsList(); $role = Role::whereName('EDITOR')->first(); foreach ($permissions as $permission) { Permission::create(['name' => $permission]); $role->givePermissionTo($permission); } }
/** * Creates a form for adding permissions * * @param int $id * @param Model $model * @param string $resourceMultiple * @return \Kris\LaravelFormBuilder\Form */ protected function getAddPermissionForm($id, Model $model, $resourceMultiple) { $form = $this->form('Reactor\\Html\\Forms\\Permissions\\AddPermissionForm', ['url' => route('reactor.' . $resourceMultiple . '.permissions.add', $id)]); $choices = Permission::all()->diff($model->permissions)->pluck('name', 'id')->toArray(); $form->modify('permission', 'select', ['choices' => $choices]); return [$form, count($choices)]; }
/** * @param Request $request * @param Permission $permission */ protected function validateEditForm(Request $request, Permission $permission) { $this->validateForm('Reactor\\Html\\Forms\\Permissions\\CreateEditForm', $request, ['name' => ['required', 'max:255', 'unique:permissions,name,' . $permission->getKey(), 'regex:/^(ACCESS|EDIT|SITE|REACTOR)(_([A-Z]+))+$/']]); }
/** * Helper for retrieving permissions * * @return Collection */ protected function getPermissions() { return Permission::with('roles')->get(); }