| | <?php |
| |
|
| | namespace Kanboard\Core\User; |
| |
|
| | use Kanboard\Core\Base; |
| | use Kanboard\Core\Security\Role; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | class UserSession extends Base |
| | { |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function refresh($user_id) |
| | { |
| | if ($this->getId() == $user_id) { |
| | $this->initialize($this->userModel->getById($user_id)); |
| | } |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function initialize(array $user) |
| | { |
| | foreach (array('password', 'is_admin', 'is_project_admin', 'twofactor_secret') as $column) { |
| | if (isset($user[$column])) { |
| | unset($user[$column]); |
| | } |
| | } |
| |
|
| | $user['id'] = (int) $user['id']; |
| | $user['is_ldap_user'] = isset($user['is_ldap_user']) ? (bool) $user['is_ldap_user'] : false; |
| | $user['twofactor_activated'] = isset($user['twofactor_activated']) ? (bool) $user['twofactor_activated'] : false; |
| |
|
| | if (session_status() === PHP_SESSION_ACTIVE) { |
| | |
| | session_regenerate_id(false); |
| | } |
| |
|
| | session_set('user', $user); |
| | session_set('postAuthenticationValidated', false); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getAll() |
| | { |
| | return session_get('user'); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getRole() |
| | { |
| | if (! $this->isLogged()) { |
| | return ''; |
| | } |
| |
|
| | return session_get('user')['role']; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function isPostAuthenticationValidated() |
| | { |
| | return session_is_true('postAuthenticationValidated'); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | public function setPostAuthenticationAsValidated() |
| | { |
| | session_set('postAuthenticationValidated', true); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function hasPostAuthentication() |
| | { |
| | if (! $this->isLogged()) { |
| | return false; |
| | } |
| |
|
| | return session_get('user')['twofactor_activated'] === true; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | public function disablePostAuthentication() |
| | { |
| | session_merge('user', ['twofactor_activated' => false]); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function isAdmin() |
| | { |
| | return $this->getRole() === Role::APP_ADMIN; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getId() |
| | { |
| | if (! $this->isLogged()) { |
| | return 0; |
| | } |
| |
|
| | return session_get('user')['id']; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getUsername() |
| | { |
| | if (! $this->isLogged()) { |
| | return ''; |
| | } |
| |
|
| | return session_get('user')['username']; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getLanguage() |
| | { |
| | if (! $this->isLogged()) { |
| | return ''; |
| | } |
| |
|
| | return session_get('user')['language']; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getTimezone() |
| | { |
| | if (! $this->isLogged()) { |
| | return ''; |
| | } |
| |
|
| | return session_get('user')['timezone']; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getTheme() |
| | { |
| | if (! $this->isLogged()) { |
| | return 'light'; |
| | } |
| |
|
| | $user_session = session_get('user'); |
| |
|
| | if (array_key_exists('theme', $user_session)) { |
| | return $user_session['theme']; |
| | } |
| |
|
| | return 'light'; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function hasSubtaskListActivated() |
| | { |
| | return session_is_true('subtaskListToggle'); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function isLogged() |
| | { |
| | return session_exists('user') && session_get('user') !== []; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getFilters($projectID) |
| | { |
| | if (! session_exists('filters:'.$projectID)) { |
| | return session_get('user') ? session_get('user')['filter'] ?: 'status:open' : 'status:open'; |
| | } |
| |
|
| | return session_get('filters:'.$projectID); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function setFilters($projectID, $filters) |
| | { |
| | session_set('filters:'.$projectID, $filters); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getListOrder($projectID) |
| | { |
| | $default = ['tasks.id', 'DESC']; |
| |
|
| | if (! session_exists('listOrder:'.$projectID)) { |
| | return $default; |
| | } |
| |
|
| | return session_get('listOrder:'.$projectID); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function setListOrder($projectID, $listOrder, $listDirection) |
| | { |
| | session_set('listOrder:'.$projectID, [$listOrder, $listDirection]); |
| | } |
| | } |
| |
|