/** * @param $request * @param Closure $next * @param $role * * @return mixed */ public function handle($request, Closure $next, $role) { $role = Sentinel::findRoleBySlug($role); if (!$request->user()->inRole($role)) { throw new AccessDeniedHttpException(trans('auth.errors.invalid_permission')); } return $next($request); }
/** * Run the database seeds. * * @return void */ public function run() { $trainer = ['first_name' => 'Michael', 'last_name' => 'Favila', 'email' => '*****@*****.**', 'password' => 'password']; try { $trainerUser = Sentinel::registerAndActivate($trainer); $trainerUser->roles()->attach(Sentinel::findRoleBySlug('customer_trainer')); } catch (\Exception $e) { // nothing to do } }
/** * Run the database seeds. * * @return void */ public function run() { Model::unguard(); // Create an admin user $user = Sentinel::create(['email' => '*****@*****.**', 'password' => 'test', 'first_name' => 'Nicolas', 'last_name' => 'Widart']); // Activate the admin directly $activation = Activation::create($user); Activation::complete($user, $activation->code); // Find the group using the group id $adminGroup = Sentinel::findRoleBySlug('admin'); // Assign the group to the user $adminGroup->users()->attach($user); }
/** * {@inheritDoc} */ public function registerAndActivate(array $data) { // Setup validation rules. $this->rules = ['email' => 'required|email|unique:users', 'password' => 'required|confirmed', 'password_confirmation' => 'required']; // Run validation. $this->validate($data); $user = Sentinel::registerAndActivate($data); if (!isset($data['role'])) { $data['role'] = config('laraflock.dashboard.defaultRole'); } if (!($role = Sentinel::findRoleBySlug($data['role']))) { throw new RolesException(trans('dashboard::dashboard.errors.role.found')); } $role->users()->attach($user); return; }
/** * Run the database seeds. * * @return void */ public function run() { Model::unguard(); $groups = Sentinel::getRoleRepository(); // Create an Admin group $groups->createModel()->create(['name' => 'Admin', 'slug' => 'admin']); // Create an Users group $groups->createModel()->create(['name' => 'User', 'slug' => 'user']); // Save the permissions $group = Sentinel::findRoleBySlug('admin'); $group->permissions = ['dashboard.index' => true, 'dashboard.grid.save' => true, 'dashboard.grid.reset' => true, 'workshop.modules.index' => true, 'workshop.modules.show' => true, 'workshop.modules.disable' => true, 'workshop.modules.enable' => true, 'workshop.themes.index' => true, 'workshop.themes.show' => true, 'user.roles.index' => true, 'user.roles.create' => true, 'user.roles.store' => true, 'user.roles.edit' => true, 'user.roles.update' => true, 'user.roles.destroy' => true, 'user.users.index' => true, 'user.users.create' => true, 'user.users.store' => true, 'user.users.edit' => true, 'user.users.update' => true, 'user.users.destroy' => true, 'menu.menus.index' => true, 'menu.menus.create' => true, 'menu.menus.store' => true, 'menu.menus.edit' => true, 'menu.menus.update' => true, 'menu.menus.destroy' => true, 'menu.menuitem.index' => true, 'menu.menuitem.create' => true, 'menu.menuitem.store' => true, 'menu.menuitem.edit' => true, 'menu.menuitem.update' => true, 'menu.menuitem.destroy' => true, 'media.media.index' => true, 'media.media.create' => true, 'media.media.store' => true, 'media.media.edit' => true, 'media.media.update' => true, 'media.media.destroy' => true, 'media.media-grid.index' => true, 'media.media-grid.ckIndex' => true, 'setting.settings.index' => true, 'setting.settings.store' => true, 'setting.settings.getModuleSettings' => true, 'page.pages.index' => true, 'page.pages.create' => true, 'page.pages.store' => true, 'page.pages.edit' => true, 'page.pages.update' => true, 'page.pages.destroy' => true, 'translation.translations.index' => true, 'translation.translations.update' => true, 'translation.translations.export' => true, 'translation.translations.import' => true]; $group->save(); $group = Sentinel::findRoleBySlug('user'); $group->permissions = ['dashboard.index' => true]; $group->save(); }
/** * 新增角色 - 业务逻辑 * * @return \Illuminate\Http\RedirectResponse */ public function add_post() { $data = $_POST; $permissions = ''; if (isset($data['permissions'])) { $permissions = $data['permissions']; } //判断表单slug是否填写 if (!isset($data['slug']) || $data['slug'] == null) { // dump('请输入角色slug'); return redirect()->route('role_add_get'); } //判断slug是否已存在 $role_check_slug = Sentinel::findRoleBySlug($data['slug']); if ($role_check_slug) { // dump('角色slug已存在'); return redirect()->route('role_add_get'); } //创建角色 $role_create = Sentinel::getRoleRepository()->createModel()->create(['name' => $data['name'], 'slug' => $data['slug']]); return $this->role_permission($role_create, $permissions); }
/** * Регистрация нового пользователя */ public function postUserCreate(Requests\UserCreate $request) { try { $user = Sentinel::create(array('email' => $request->input('email'), 'password' => $request->input('password'), 'first_name' => $request->input('first_name'), 'last_name' => $request->input('last_name'), 'activated' => true)); $user->city = $request->input('city'); $user->company = $request->input('company'); $user->phone = $request->input('phone'); $user->save(); $role = Sentinel::findRoleBySlug('user'); $role->users()->attach($user); } catch (\Exception $e) { $this->SetErrorNotifyMessage('Ошибка выполнения операции.'); return redirect()->back(); } // Добавляем оператора с таким же именем Operator::create(array('user_id' => $user->id, 'name' => $request->input('first_name') . ' ' . $request->input('last_name'))); $this->SetSuccessNotifyMessage('Пользователь «<strong>' . $request->input('first_name') . ' ' . $request->input('last_name') . '</strong>» успешно добавлен'); return redirect()->back(); }
/** * {@inheritDoc} */ public function slug($slug) { return Sentinel::findRoleBySlug($slug); }