IO v6. $ioSession->user и работа с пользователем
Описание
$ioSession->user - объект класса IOUser глобальной переменной $ioSession, хранящий в себе данные о пользователе (авторизованном и неавторизованном), а также данные его аккаунтов и их полномочия. Служит для обращения к данным пользователя.
Содержание объекта
id
Содержит ID пользователя.
int|null $id = null
Пример:
global $ioSession;
$id = $ioSession->user->id;
// 123
account
Содержит pkid текущего аккаунта.
bigint|null $account = null
Пример:
global $ioSession;
$account = $ioSession->user->account;
// 1234567890123456
p_account
Содержит pkid личного аккаунта.
bigint|null $p_account = null
Пример:
global $ioSession;
$p_account = $ioSession->user->p_account;
// 1234567890123456
login
Содержит логин пользователя.
string|null $login = null
Пример:
global $ioSession;
$login = $ioSession->user->login;
// "user"
login_hash
Содержит hash логина пользователя.
string|null $login_hash = null
Пример:
global $ioSession;
$login_hash = $ioSession->user->login_hash;
// "5i2o34jijh3i34...24ih3onhi4j3i"
timezone
Содержит временную зону (timezone) пользователя. По умолчанию "Asia/Almaty".
string|null $timezone = null
Пример:
global $ioSession;
$timezone = $ioSession->user->timezone;
// "Asia/Almaty"
delegate
???
???|null $delegate = null
ВНИМАНИЕ
Неизвестно, используется сейчас или нет. На момент написания документации всегда содержала значение null.
permissions
Содержит список полномочий пользователя из accounts[p_account]['permissions'].
array|null $permissions = null
ВНИМАНИЕ
Не используется. Все теперь находится в accounts.
self_permissions
Содержит список выданных полномочий пользователя, генерируемых внутри сервисов.
array|null $self_permissions = null
companyId
Содержит pkid компании текущего аккаунта.
bigint|null $companyId = null
ВНИМАНИЕ
Не используется. используйте метод getCompanyID().
gusers
Содержит данные пользователей в формате: [[id: логин]]. Перевод из id в логин.
array $gusers = []
Пример:
global $ioSession;
$gusers = $ioSession->user->gusers;
/*
array {
[123]=> string(4) "user"
...
}
*/
users
Содержит данные пользователей в формате: [[логин: id]]. Перевод из логина в id.
array $users = []
Пример:
global $ioSession;
$users = $ioSession->user->users;
/*
array {
["user"]=> string(3) "123"
...
}
*/
accounts
Содержит список аккаунтов и их данных (параметров, полномочий и др.).
В случае авторизованного пользователя, содержит минимум 1 элемент (личный аккаунт). Также содержит данные компаний, как собственных, где пользователь является владельцем, так и тех, где пользователь является сотрудником.
array $accounts = []
Пример:
global $ioSession;
$accounts = $ioSession->user->accounts;
/*
array {
[id_личного_аккаунта]=> array(10) {
["account_pkid"]=> string(16) "1234567890123456"
["company_pkid"]=> NULL
["company_number"]=> NULL
["mainservice"]=> NULL
["companyName"]=> NULL
["companyType"]=> NULL
["isPartner"]=> string(1) "0"
["isBlock"]=> string(1) "0"
["permissions"]=> array(0) {}
["workroles"]=> array(0) {}
}
[id_аккаунта_компании]=> array(10) {
["account_pkid"]=> string(16) "1234567890123456"
["company_pkid"]=> string(1) "1"
["company_number"]=> string(1) "1"
["mainservice"]=> NULL
["companyName"]=> string(20) "BenchMark Consulting"
["companyType"]=> string(1) "2"
["isPartner"]=> string(1) "3"
["isBlock"]=> string(1) "0"
["permissions"]=> array(1) {
["логин_пользователя"]=> array {
["apiname_полномочия"]=> array(12) {
["pkid"]=> string(1) "1"
["permission"]=> string(10) "apiname_полномочия"
["name"]=> string(42) "Предложение о поставке"
["name_ru"]=> string(42) "Предложение о поставке"
["name_en"]=> string(42) "Предложение о поставке"
["group_pkid"]=> string(1) "5"
["group_name_en"]=> string(0) ""
["group_name_ru"]=> string(31) "Поставки товаров"
["delegate"]=> NULL
["value"]=> int(1)
["login"]=> string(4) "user"
["visible"]=> string(1) "1"
}
...
}
}
["workroles"]=> array {
[1378376676889526]=> array(6) {
["account_pkid"]=> string(16) "1390977066498744"
["post_pkid"]=> string(16) "1378376676889526"
["title"]=> string(45) "Администратор платформы"
["type"]=> string(1) "0"
["post_type"]=> string(1) "0"
["dept_pkid"]=> string(1) "1"
}
...
}
["email"]=> string(16) "admin@site.kz"
["email_confirm"]=> string(1) "0"
["phone"]=> string(11) "87172000000"
["tel_confirm"]=> string(1) "0"
}
...
}
*/
info
Содержит информацию о пользователе. Его ID, логин, ФИО и др.
array $info = []
Пример:
global $ioSession;
$info = $ioSession->user->info;
/*
array(23) {
["id"]=> string(3) "123"
["sname"]=> string(16) "Фамилиев"
["fname"]=> string(8) "Имий"
["lname"]=> string(22) "Отчествович"
["login"]=> string(4) "user"
["pol"]=> string(1) "1"
["balance"]=> string(4) "0.00"
["email"]=> string(12) "user@site.kz"
["email_confirm"]=> string(1) "1"
["tel"]=> string(11) "77010000000"
["tel_confirm"]=> string(1) "1"
["telegram_code"]=> string(9) "123456789"
["iin"]=> string(12) "123456789012"
["online"]=> string(1) "0"
["last_active"]=> string(19) "2025-03-21 12:39:12"
["reg_date"]=> string(19) "2013-10-29 11:10:52"
["last_ip"]=> string(14) "178.89.150.178"
["isban"]=> string(1) "0"
["adres"]=> string(0) ""
["jid"]=> string(17) "user@bmcsales.org"
["mainservice_name_ru"]=> NULL
["mainservice_name_en"]=> NULL
["paccount_pkid"]=> string(16) "1234567890123456"
}
*/
settings
Содержит настройки пользователя.
array $settings = []
Пример:
global $ioSession;
$settings = $ioSession->user->settings;
/*
array {
["pass_recovery"]=> array(1) {
["code"]=> string(40) "137cs93c87f0910a00f70c6cd81dfe962839636f"
}
["pass_recovery_livetime"]=> int(1483556729)
["design"]=> string(1) "3"
...
}
*/
token
Содержит JWT токен пользователя.
string|null $token = null
ВНИМАНИЕ
Неизвестно, используется сейчас или нет. На момент написания документации всегда содержала значение null.
session_data
Содержит данные всех переменных данного объекта. Вспомогательная переменная.
array|null $session_data = null
isGuest()
Проверяет, является ли пользователь гостем. То же самое, что и $ioSession->isGuest().
isGuest(): bool
Пример:
global $ioSession;
$isGuest = $ioSession->user->isGuest();
isPartner()
Проверяет, является ли пользователь партнером. Иначе говоря, является ли указанный либо текущий аккаунт пользователя компанией.
isPartner(string|bigint|int|null $account = null): bool
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$account | string|bigint|int|null | pkid аккаунта пользователя. | null | Нет |
Пример:
global $ioSession;
$account = 1234567890123456;
$isPartner = $ioSession->user->isPartner($account);
isPartner2()
Проверяет, является ли пользователь партнером. Иначе говоря, есть ли в списке аккаунтов пользователя хотя-бы одна компания.
isPartner2(): bool
Пример:
global $ioSession;
$isPartner2 = $ioSession->user->isPartner2();
isPupil()
Проверяет, является ли пользователь учащимся единого образовательного портала.
isPupil(): bool
Пример:
global $ioSession;
$isPupil = $ioSession->user->isPupil();
isTeacher()
Проверяет, является ли пользователь преподавателем единого образовательного портала.
isTeacher(): bool
Пример:
global $ioSession;
$isTeacher = $ioSession->user->isTeacher();
isParent()
Проверяет, является ли пользователь родителем учащихся единого образовательного портала.
isParent(): bool
Пример:
global $ioSession;
$isParent = $ioSession->user->isParent();
getUserIdByLogin()
Возвращает ID пользователя по указанному логину пользователя из массива users.
getUserIdByLogin(string $login): bigint|null
| Аргумент функции | Тип | Описание | Обязательный |
|---|---|---|---|
$login | string | логин пользователя. | Да |
Пример:
global $ioSession;
$id = $ioSession->user->getUserIdByLogin('user');
getID()
Возвращает ID пользователя по логину пользователя из массива users.
getID(): bigint|null
Пример:
global $ioSession;
$id = $ioSession->user->getID();
getCompanyID()
Возвращает pkid компании для указанного либо текущего аккаунта пользователя.
getCompanyID(string|bigint|int|null $account = null): bigint|int
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$account | string|bigint|int|null | pkid аккаунта пользователя. | null | Нет |
Пример:
global $ioSession;
$company_pkid = $ioSession->user->getCompanyID();
getCompanyNumber()
Возвращает номер компании для указанного либо текущего аккаунта пользователя.
getCompanyNumber(string|bigint|int|null $account = null): int|null
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$account | string|bigint|int|null | pkid аккаунта пользователя. | null | Нет |
Пример:
global $ioSession;
$company_number = $ioSession->user->getCompanyNumber();
getWorkRoles()
Возвращает должности, которые занимает указанный либо текущий аккаунт пользователя.
getWorkRoles(string|bigint|int|null $account_pkid = null): array
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$account_pkid | string|bigint|int|null | pkid аккаунта пользователя. | null | Нет |
Пример:
global $ioSession;
$workRoles = $ioSession->user->getWorkRoles();
checkWorkRoleByType()
Определяет, если ли у пользователя должность определеного типа в указанном либо текущем аккаунте.
checkWorkRoleByType(int $type, string|bigint|int|null $account_pkid = null): bool
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$type | int | Тип занимаемой должности. | Да | |
$account_pkid | string|bigint|int|null | pkid аккаунта пользователя. | null | Нет |
Значения $type:
0: Сотрудник.1: Ученик.2: Учитель.3: Руководитель.
Пример:
global $ioSession;
$ret = $ioSession->user->checkWorkRoleByType(0);
permission()
Проверяет, есть ли у указанного либо текущего аккаунта пользователя указанное полномочие.
permission(string $permission, int $val = 1, string|bigint|int|null $account = null): bool
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$permission | string | Apiname полномочия | Да | |
$val | int | Значение полномочия. | 1 | Нет |
$account | string|bigint|int|null | pkid аккаунта пользователя. | null | Нет |
Значения $val:
0: отозвано.1: активно.
Формат полномочий, выдаваемых через сервис BMC CMS:self.cms.<site_pkid>.perms
Пример:
global $ioSession;
$ret = $ioSession->user->permission('system.admin');
permission2()
Проверяет, есть ли у хоть в каком-то аккаунте пользователя указанное полномочие.
permission2(string $permission, int $val = 1): bool
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$permission | string | Apiname полномочия | Да | |
$val | int | Значение полномочия. | 1 | Нет |
Значения $val:
0: отозвано.1: активно.
Формат полномочий, выдаваемых через сервис BMC CMS:self.cms.<site_pkid>.perms
Пример:
global $ioSession;
$ret = $ioSession->user->permission2('system.admin');
requestOld()
Вспомогательная функция для проектов очень старой версии фреймворка.
requestOld(): string|int
Пример:
global $ioSession;
$ret = $ioSession->user->requestOld();
init()
???
init(): void
Пример:
global $ioSession;
$ioSession->user->init();
login()
Авторизация пользователя по логину и паролю.
login(string $login, string $password): int
| Аргумент функции | Тип | Описание | Обязательный |
|---|---|---|---|
$login | string | логин пользователя. | Да |
$password | string | пароль пользователя. | Да |
Пример:
global $ioSession;
$login = 'user';
$password = 'super-secret-password';
$ret = $ioSession->user->login($login, $password);
ВНИМАНИЕ
Не используется. Устарело.
logout()
Деавторизация пользователя.
logout(): int
Пример:
global $ioSession;
$ret = $ioSession->user->logout();
ВНИМАНИЕ
Не используется. Устарело.
delegate()
???
delegate(string $login): bool
| Аргумент функции | Тип | Описание | Обязательный |
|---|---|---|---|
$login | string | логин пользователя. | Да |
ВНИМАНИЕ
Неизвестно, используется сейчас или нет.
mylogin()
???. Возвращает значение переменной delegate.
mylogin(): ???
Пример:
global $ioSession;
$ret = $ioSession->user->mylogin();
ВНИМАНИЕ
Неизвестно, используется сейчас или нет. На момент написания документации всегда содержала значение null.
setAccount()
Устанавливает переданный аккаунт, если он есть в массиве accounts. В случае успеха возвращает новое значение переменной account, иначе возвращает предыдущее значение.
setAccount(string|bigint|int|null $account): bigint|null
| Аргумент функции | Тип | Описание | Обязательный |
|---|---|---|---|
$account | string|bigint|int|null | pkid аккаунта. | Да |
Пример:
global $ioSession;
$account = 1234567890123456;
$account = $ioSession->user->setAccount($account);