/** * Checks user authorisation to the action. * * @param string $action * * @return bool */ public function authorize($action = 'admin.login') { $action = (array) $action; foreach ($action as $a) { if ($this->user->authorize($a)) { return true; } } return false; }
/** * Create a new user file * * @param array $data * * @return User */ public function register($data) { //Add new user ACL settings $groups = $this->config->get('plugins.login.user_registration.groups', []); if (count($groups) > 0) { $data['groups'] = $groups; } $access = $this->config->get('plugins.login.user_registration.access.site', []); if (count($access) > 0) { $data['access']['site'] = $access; } $username = $data['username']; $file = CompiledYamlFile::instance($this->grav['locator']->findResource('account://' . $username . YAML_EXT, true, true)); // Create user object and save it $user = new User($data); $user->file($file); $user->save(); if (isset($data['state']) && $data['state'] == 'enabled' && $this->config->get('plugins.login.user_registration.options.login_after_registration', false)) { //Login user $this->grav['session']->user = $user; unset($this->grav['user']); $this->grav['user'] = $user; $user->authenticated = $user->authorize('site.login'); } return $user; }