diff --git a/app/Facades/UserContext.php b/app/Facades/UserContext.php new file mode 100644 index 0000000..c30bd64 --- /dev/null +++ b/app/Facades/UserContext.php @@ -0,0 +1,18 @@ +app->singleton(UserService::class, function($app){ + return new UserService; + }); + } + + /** + * Bootstrap services. + */ + public function boot(): void + { + // + } +} diff --git a/app/Services/UserService.php b/app/Services/UserService.php new file mode 100644 index 0000000..e25cbc0 --- /dev/null +++ b/app/Services/UserService.php @@ -0,0 +1,198 @@ +userLogin = $login; + } + + + /** + * Установка пользовательского логина + * + * @param array $appRoles доступы пользователя к приложениям Magic + * @return void + */ + public function setUserAppPermissions(array $appRoles): void + { + $this->userAppPermissions = $appRoles; + } + + + /** + * Установка пользовательского идентификатора из таблицы users + * + * @param int $userId идентификатор пользователя + * @return void + */ + public function setUserId(int $userId): void + { + $this->userId = $userId; + } + + + /** + * Установка групп AD пользователя + * + * @param array $userGroups все группы из AD где состоит пользователь (emails, AD и т.д.) + * @return void + */ + public function setUserADGroups(array $userGroups): void + { + $this->userADGroups = array_filter($userGroups, function($el){return substr($el, 0, 1) !== '#';}); + } + + + /** + * Установка почтовых рассылок куда входит пользователь + * + * @param array $userGroups все групы пользователя AD, в которых он состоит (почтовые ящики, AD и т.д.) + * @return void + */ + public function setUserEmails(array $userGroups): void + { + $this->userEmails = array_filter($userGroups, function($el){return substr($el, 0, 1) === '#';}); + } + + + /** + * Устанавливаем флаг является ли пользователь админом приложения Magic + * + * @param boolean $flag + * @return void + */ + public function setIsAdminFlag(bool $flag): void + { + $this->isAdmin = $flag; + } + + + /** + * Добавление группы AD в массив групп пользователя + * + * @param string $group группа для добавления в массив установленных при аутентификации групп AD пользователя + * @return void + */ + public function addUserADGroup(string $group): void + { + $this->userADGroups[] = $group; + } + + + /** + * Добавление email в массив емейлов пользователя + * + * @param string $email почтовая рассылка для добавления в массив установленных при аутентификации почтовых ящиков пользователя + * @return void + */ + public function addUserEmail(string $email): void + { + $this->userEmails[] = $email; + } + + + /** + * Возвращаем доступы пользователя к приложениям Magic + * + * @return array + */ + public function getUserAppPermissions(): array + { + return $this->userAppPermissions; + } + + + /** + * Получаем пользовательский логин + * + * @return string + */ + public function getUserLogin(): string + { + return $this->userLogin; + } + + + /** + * Получаем пользовательский логин + * + * @return int + */ + public function getUserId(): int + { + return $this->userId; + } + + + /** + * Получаем пользовательский логин + * + * @return array + */ + public function getUserADGroups(): array + { + return $this->userADGroups; + } + + + /** + * Получаем email рассылки куда он входит + * + * @return array + */ + public function getUserEmails(): array + { + return $this->userEmails; + } + + + /** + * Получаем значение флага является ли пользователь админом приложения Magic + * + * @return boolean + */ + public function getIsAdminFlag(): bool + { + return $this->isAdmin; + } + +}