Example #1
0
 public function testGetRoles()
 {
     $this->model->login = '******';
     $this->model->save();
     // create global role
     $role = Role::create();
     $role->title = 'Test';
     $role->save();
     $this->models[] = $role;
     // create site
     $site = \Bazalt\Site\Model\Site::create();
     $site->save();
     $this->models[] = $site;
     // create local role
     $role2 = Role::create();
     $role2->title = 'Test2';
     $role2->site_id = $site->id;
     $role2->save();
     $this->models[] = $role2;
     $this->model->Roles->add($role, ['site_id' => \Bazalt\Site::getId()]);
     $this->model->Roles->add($role, ['site_id' => $site->id]);
     $this->model->Roles->add($role2, ['site_id' => $site->id]);
     $role = Role::getById($role->id);
     $this->assertEquals([$role], $this->model->getRoles());
     $role2 = Role::getById($role2->id);
     $this->assertEquals([$role, $role2], $this->model->getRoles($site));
 }
 /**
  * @param \Bazalt\Auth\Model\User $user
  * @param $expireTime 31 day * 24 hours * 60 min * 60 sec
  * @return mixed
  */
 protected function getJWTToken(\Bazalt\Auth\Model\User $user, $expireTime = 2678400)
 {
     $token = array('iss' => $user->id, 'aud' => \Bazalt\Site::get()->getUrl(), 'exp' => time() + $expireTime, 'nbf' => time());
     $config = \Bazalt\Config::container();
     return \JWT::encode($token, $config['jwt.key']);
 }
Example #3
0
 /**
  * Only for separated roles mode
  *
  * @return \Bazalt\Auth\Model\Role|null
  */
 public static function getCurrentRole()
 {
     $user = self::getUser();
     if ($user->isGuest()) {
         return null;
     }
     $session = new Session('auth');
     if (isset($session->currentRoleId)) {
         $curRole = \Bazalt\Auth\Model\Role::getById((int) $session->currentRoleId);
         if (!$curRole) {
             return null;
         }
         return self::getUser()->hasRole($curRole->id) ? $curRole : null;
     }
     $q = $user->Roles->getQuery();
     $q->andWhere('ref.site_id = ?', \Bazalt\Site::getId());
     $q->limit(1);
     return $q->fetch();
 }
Example #4
0
 public function updateLastActivity($time = null)
 {
     if ($time == null) {
         $time = time();
     }
     $q = SiteRefUser::select()->where('user_id = ?', $this->id)->andWhere('site_id = ?', \Bazalt\Site::getId());
     $activity = $q->fetch();
     if (!$activity) {
         $activity = new SiteRefUser();
         $activity->site_id = \Bazalt\Site::getId();
         $activity->user_id = $this->id;
     }
     $activity->session_id = \Bazalt\Session::getSessionId();
     $activity->last_activity = date('Y-m-d H:i:s', $time);
     $activity->save();
     ORM::update('Bazalt\\Auth\\Model\\User')->set('last_activity', date('Y-m-d H:i:s', $time))->where('id = ?', $this->id)->autoClearCache(false)->exec(false);
 }