добавляю все изменения проекта на текущий момент
This commit is contained in:
@@ -0,0 +1,198 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* Сервис работы с данными юзера (установка/получение логина, групп, подмена значений в случае работы на тестовой среде)
|
||||
*/
|
||||
class UserService
|
||||
{
|
||||
/**
|
||||
* @var string пользовательский логин
|
||||
*/
|
||||
public string $userLogin;
|
||||
/**
|
||||
* @var array пользовательские группы AD
|
||||
*/
|
||||
public array $userADGroups;
|
||||
/**
|
||||
* @var array почтовые рассылки куда входит пользователь
|
||||
*/
|
||||
public array $userEmails;
|
||||
/**
|
||||
* @var boolean является ли пользователь админом приложения Magic
|
||||
*/
|
||||
public bool $isAdmin;
|
||||
/**
|
||||
* @var array доступы пользователя к приложениям
|
||||
*/
|
||||
public array $userAppPermissions;
|
||||
/**
|
||||
* @var int идентификатор пользователя из таблицы users
|
||||
*/
|
||||
public int $userId;
|
||||
|
||||
/**
|
||||
* Установка пользовательского логина
|
||||
*
|
||||
* @param string $login логин для подмены превоначального значения, взятого из сессии
|
||||
* @return void
|
||||
*/
|
||||
public function setUserLogin(string $login): void
|
||||
{
|
||||
$this->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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user