예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 /**
  * 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;
 }