/** * @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']); }
public function getPermissions($site = null) { $site = $site ? $site : \Bazalt\Site::get(); $splitRoles = \Bazalt\Site\Option::get(\Bazalt\Auth::SPLIT_ROLES_OPTION, true); $ret = []; if ($this->is_god) { $q = ORM::select('Bazalt\\Auth\\Model\\Permission p', 'p.id'); $res = $q->fetchAll(); foreach ($res as $perm) { $ret[] = $perm->id; } } else { if ($splitRoles) { $q = ORM::select('Bazalt\\Auth\\Model\\Permission p', 'p.id')->innerJoin('Bazalt\\Auth\\Model\\RoleRefPermission rp', ['permission_id', 'p.id'])->innerJoin('Bazalt\\Auth\\Model\\RoleRefUser ru', ['role_id', 'rp.role_id'])->where('ru.user_id = ?', $this->id); $res = $q->fetchAll(); foreach ($res as $perm) { $ret[] = $perm->id; } } else { $roles = Role::getGuestRoles(); if (!$this->isGuest()) { $currentRole = \Bazalt\Auth::getCurrentRole(); if ($currentRole) { $roles = [$currentRole]; } } foreach ($roles as $role) { $res = $role->getPermissions(); foreach ($res as $perm) { $ret[$perm->id] = $perm->id; } } } } $ret = array_values($ret); if (!$this->isGuest()) { $ret[] = 'auth.user_logged'; } return $ret; }