> For the complete documentation index, see [llms.txt](https://spaceoc.gitbook.io/nrc-docs-ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://spaceoc.gitbook.io/nrc-docs-ru/how-it-works.md).

# Пользователи

Класс userManager\
\#include "Core/users/user\_manager.h"

* userIsYou(std::string username) - bool переменная. Возвращает true, если указанным пользователем являешься ты.

* userExist(std::string username) -  bool переменная. Возвращает true, если указанный пользователь существует.

* havePassword(std::string username) - bool переменная. Возвращает true, если указанный пользователь имеет пароль.

* userHaveAdminPermissions(std::string username) - bool переменная. Возвращает true, если пользователь имеет права администратора (permissionsEC::admin).

* permissionsCheck(permissionsEC permissions) - bool переменная.

* permissionsHighCurrentUser(std::string username) - bool переменная. Возвращает true, если права указанного пользователя выше текущего.

* getOOBE\_Passed() - bool переменная. Возвращает true, если OOBE был пройден.

* yourUsername() - string переменная. Возвращает имя текущего пользователя.

* getUserMap() - map\<string, string> переменная. Возвращает username и display name всех существующих пользователей.

* getLocalVarsMap(std::string username) - map\<string, string> переменная. Возвращает имена и описание переменных определённого пользователя.

* getLanguageMap() - map\<string, string> переменная. Возвращает имена пользователей и их языки.

* getPermissionsMap() - map\<string, permissionsEC> переменная. Возвращает имена пользователей и их права.

* checkOOBE\_Passed() - функция. Проверяет, был ли пройден OOBE или нет.

* system\_addUser(std::string username) - функция. Добавляет пользователя с правами администратора и именем, который был введён в аргументе.

* addUser(std::string username, permissionsEC permissions) - функция. Создаёт пользователя с определённым именем и правами (которые были указаны в аргументах функции).\
  (Для успешного добавления пользователя требуется, чтобы текущий пользователь имел права администратора). В NRC можно создать не больше 10 аккаунтов!

* deleteUser(std::string username) - функция. Удаляет определённого пользователя\
  (Для успешного удаления требуется, чтобы текущий пользователь имел права администратора и пользователь, определённый в аргументе, имел права ниже ваших и чтобы он не являлся текущим (тем с которым вы взаимодействуете с pseudo-OS и NRC))

* renameUser(std::string username, std::string newUsername) - функция. Переименовывает определённого пользователя.\
  (Для успешного переименования требуется, чтобы текущий пользователь имел права администратора и пользователь, определённый в аргументе, имел права ниже ваших и чтобы он не являлся текущим (тем с которым вы взаимодействуете с pseudo-OS и NRC))

* changePermissionsUser(std::string username, permissionsEC newPermissions) - функция. Изменяет права определённого пользователя. (Для успешного изменения прав требуется, чтобы текущий пользователь имел права администратора и пользователь, определённый в аргументе, имел права ниже ваших)

* userLists() - функция. Создана специально для core.cpp и OOBE.cpp! Пожалуйста, не используйте :skull\_crossbones:

* userLogout() - функция. Автоматический выход из пользователя и запуск процесса захода в другой. Не рекомендуется использовать, если не знаете, что с ним делать.

* saveUserData(std::string username) - функция. Сохраняет данные определённого пользователя (username, display name, language, password, permissions) в .json файл по пути `./Data/Users/имя_пользователя.json`

* &#x20;readUserData(std::string username) - функция. Прочитывает и изменяет (если в .json файле были изменения) определённые значения/данные (username, display name, language, password, permissions) в пользователе.

* readAllUsersData() - функция. Прочитывает все данные пользователей.
