/** * @param Collection $currentPermissions */ public static function syncPermissions(Collection $currentPermissions) { $currentPermissions = $currentPermissions->groupBy('module')->transform(function ($module, $key) { $groups = $module->groupBy('group'); $groups->transform(function ($group, $key) { return $group->pluck('action'); }); return $groups; })->toArray(); foreach (static::$availablePermissions as $module => $groups) { foreach ($groups as $group => $actions) { if (!isset($currentPermissions[$module][$group])) { $oldPermissions = []; $newPermissions = $actions; } else { $oldPermissions = array_diff($currentPermissions[$module][$group], $actions); $newPermissions = array_diff($actions, $currentPermissions[$module][$group]); } foreach ($newPermissions as $action) { $permission = new Permission(); $permission->module = $module; $permission->group = $group; $permission->action = $action; $permission->save(); } foreach ($oldPermissions as $action) { Permission::where(['action' => $action, 'module' => $module, 'group' => $group])->delete(); } } } }
public function register() { $this->registerAliases(['Frontpage' => Frontpage::class, 'Block' => BlockFacade::class]); $this->registerProviders([BladeServiceProvider::class, EventServiceProvider::class]); $this->registerConsoleCommand(RebuildLayoutBlocksCommand::class); Permission::register('pages', 'page', ['reorder', 'list', 'edit', 'create', 'delete']); Permission::register('pages', 'layout', ['add', 'list', 'rebuild', 'edit', 'view', 'delete']); Permission::register('pages', 'part', ['reorder', 'list', 'create', 'delete']); }
/** * Run the database seeds. * * @return void */ public function run() { Role::truncate(); Permission::truncate(); \DB::table('permission_role')->truncate(); $roles = [['name' => 'login', 'label' => 'Login privileges, granted after account confirmation.'], ['name' => 'administrator', 'label' => 'Administrative user, has access to everything.'], ['name' => 'developer', 'label' => '']]; foreach ($roles as $data) { Role::create($data); } }
/** * @param UserRoleRepository $repository * @param int $id */ public function getEdit(UserRoleRepository $repository, $id) { /** @var Role $role */ $role = $repository->findOrFail($id); $this->setTitle(trans($this->wrapNamespace('role.title.edit'), ['name' => ucfirst($role->name)])); $permissions = Permission::get()->groupBy('module_label')->transform(function ($modules) { return $modules->groupBy('group_label'); }); $selectedPermissions = $role->permissions->pluck('id')->all(); $users = $role->users()->with('roles')->paginate(); $this->setContent('roles.edit', compact('role', 'permissions', 'selectedPermissions', 'users')); }
/** * Fetch the collection of site permissions. * * @return \Illuminate\Database\Eloquent\Collection */ protected function getPermissions() { $permissions = Permission::with('roles')->get(); Permission::syncPermissions($permissions); return $permissions; }
/** * Register the service provider. * * @return void */ public function register() { Permission::register('plugins', 'plugin', ['change_status', 'list', 'view_settings']); }
private function registerPermissions() { Permission::register('cms', 'system', ['view_phpinfo', 'view_about', 'view_settings']); }
/** * Register the service provider. * * @return void */ public function register() { Permission::register('filemanager', 'filemanager', ['view']); }
public function register() { $this->registerAliases(['RouteAPI' => \KodiCMS\API\RouteApiFacade::class]); Permission::register('api', 'api', ['view_keys', 'refresh_key', 'create_keys', 'delete_keys']); }
private function registerPermissions() { Permission::register('widgets', 'widget', ['list', 'add', 'delete', 'edit']); Permission::register('widgets', 'widget_settings', ['cache', 'roles', 'location']); Permission::register('widgets', 'snippet', ['add', 'edit', 'list', 'view', 'delete']); }
private function registerPermissions() { Permission::register('dashboard', 'dashboard', ['manage']); }