| <?php |
|
|
| namespace Kanboard\Helper; |
|
|
| use Kanboard\Core\Base; |
|
|
| |
| |
| |
| |
| |
| |
| class UserHelper extends Base |
| { |
| public function getTheme() |
| { |
| return $this->userSession->getTheme(); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function hasSubtaskListActivated() |
| { |
| return $this->userSession->hasSubtaskListActivated(); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function hasNotifications() |
| { |
| return $this->userUnreadNotificationModel->hasNotifications($this->userSession->getId()); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function getInitials($name) |
| { |
| $initials = ''; |
|
|
| foreach (explode(' ', $name, 2) as $string) { |
| $initials .= mb_substr($string, 0, 1, 'UTF-8'); |
| } |
|
|
| return mb_strtoupper($initials, 'UTF-8'); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function getFullname(array $user = array()) |
| { |
| $user = empty($user) ? $this->userSession->getAll() : $user; |
| return $user['name'] ?: $user['username']; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function getId() |
| { |
| return $this->userSession->getId(); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function isCurrentUser($user_id) |
| { |
| return $this->userSession->getId() == $user_id; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function isAdmin() |
| { |
| return $this->userSession->isAdmin(); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function getRoleName($role = '') |
| { |
| return $this->role->getRoleName($role ?: $this->userSession->getRole()); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function getUsersGroupNames($userID) |
| { |
| $groupsList = array_column($this->groupMemberModel->getGroups($userID), 'name'); |
| $limitedList = $groupsList; |
| $total = count($groupsList); |
|
|
| if ($total > 0 && SHOW_GROUP_MEMBERSHIPS_IN_USERLIST_WITH_LIMIT > 0) { |
| $limitedList = array_slice($groupsList, 0 , SHOW_GROUP_MEMBERSHIPS_IN_USERLIST_WITH_LIMIT); |
| } |
|
|
| return [ |
| 'full_list' => $groupsList, |
| 'limited_list' => $limitedList, |
| 'has_groups' => $total > 0, |
| 'total' => $total, |
| 'shown' => count($limitedList), |
| ]; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function hasAccess($controller, $action) |
| { |
| if (! $this->userSession->isLogged()) { |
| return false; |
| } |
|
|
| $key = 'app_access:'.$controller.$action; |
| $result = $this->memoryCache->get($key); |
|
|
| if ($result === null) { |
| $result = $this->applicationAuthorization->isAllowed($controller, $action, $this->userSession->getRole()); |
| $this->memoryCache->set($key, $result); |
| } |
|
|
| return $result; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| public function hasProjectAccess($controller, $action, $project_id) |
| { |
| $key = 'project_access:'.$controller.$action.$project_id; |
| $result = $this->memoryCache->get($key); |
|
|
| if ($result === null) { |
| $result = $this->helper->projectRole->checkProjectAccess($controller, $action, $project_id); |
| $this->memoryCache->set($key, $result); |
| } |
|
|
| return $result; |
| } |
| } |
|
|