добавляю все изменения проекта на текущий момент

This commit is contained in:
vasya
2026-02-27 18:49:27 +03:00
parent e927910fda
commit 9c35f4e35e
303 changed files with 79434 additions and 2558 deletions
+198
View File
@@ -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;
}
}