BMC IO DocsBMC IO Docs
IO v6
IO v7
Notes
Docs
IO v6
IO v7
Notes
Docs
  • IO Framework v6

    • О фреймворке
    • Уроки
    • Структура
    • Доступ к участкам проекта
    • Старые версии фреймворка
    • Разворачивание нового проекта
  • Backend

    • Функции фреймворка
    • Настройки проекта (app/i.php)
    • Настройки composer
    • Глобальные переменные
    • Константы фреймворка
    • Event класс
    • IOCore класс
    • Controller и работа с ними
    • Class и работа с ними
    • Model и работа с ними
    • View и работа с ними
    • Мультиязычность и словарь фраз
    • Bin скрипты и работа с ними
    • Cron скрипты и работа с ними
    • $ioSession и работа с сессией
    • $ioSession->user и работа с пользователем
    • $ioHash и работа с кешем
    • $ioXCache и работа с кешем
    • $iodb и работа с базой данных
  • Frontend

    • Twig шаблонизатор и работа с ним
    • Twig функции
    • Twig фильтры
    • JS плагины
    • Отложенная загрузка JS скриптов
    • Обращение к Model через JS
  • Примеры

    • AutoIncrement, зависящий от полей

IO v6. $ioSession->user и работа с пользователем

  • Описание
  • Содержание объекта
    • id
    • account
    • p_account
    • login
    • login_hash
    • timezone
    • delegate
    • permissions
    • self_permissions
    • companyId
    • gusers
    • users
    • accounts
    • info
    • settings
    • token
    • session_data
    • isGuest()
    • isPartner()
    • isPartner2()
    • isPupil()
    • isTeacher()
    • isParent()
    • getUserIdByLogin()
    • getID()
    • getCompanyID()
    • getCompanyNumber()
    • getWorkRoles()
    • checkWorkRoleByType()
    • permission()
    • permission2()
    • requestOld()
    • init()
    • login()
    • logout()
    • delegate()
    • mylogin()
    • setAccount()

Описание

$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
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$accountstring|bigint|int|nullpkid аккаунта пользователя.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
Аргумент функцииТипОписаниеОбязательный
$loginstringлогин пользователя.Да

Пример:

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
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$accountstring|bigint|int|nullpkid аккаунта пользователя.nullНет

Пример:

global $ioSession;
$company_pkid = $ioSession->user->getCompanyID();

getCompanyNumber()

Возвращает номер компании для указанного либо текущего аккаунта пользователя.

getCompanyNumber(string|bigint|int|null $account = null): int|null
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$accountstring|bigint|int|nullpkid аккаунта пользователя.nullНет

Пример:

global $ioSession;
$company_number = $ioSession->user->getCompanyNumber();

getWorkRoles()

Возвращает должности, которые занимает указанный либо текущий аккаунт пользователя.

getWorkRoles(string|bigint|int|null $account_pkid = null): array
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$account_pkidstring|bigint|int|nullpkid аккаунта пользователя.nullНет

Пример:

global $ioSession;
$workRoles = $ioSession->user->getWorkRoles();

checkWorkRoleByType()

Определяет, если ли у пользователя должность определеного типа в указанном либо текущем аккаунте.

checkWorkRoleByType(int $type, string|bigint|int|null $account_pkid = null): bool
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$typeintТип занимаемой должности.Да
$account_pkidstring|bigint|int|nullpkid аккаунта пользователя.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
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$permissionstringApiname полномочияДа
$valintЗначение полномочия.1Нет
$accountstring|bigint|int|nullpkid аккаунта пользователя.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
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$permissionstringApiname полномочияДа
$valintЗначение полномочия.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
Аргумент функцииТипОписаниеОбязательный
$loginstringлогин пользователя.Да
$passwordstringпароль пользователя.Да

Пример:

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
Аргумент функцииТипОписаниеОбязательный
$loginstringлогин пользователя.Да

ВНИМАНИЕ

Неизвестно, используется сейчас или нет.

mylogin()

???. Возвращает значение переменной delegate.

mylogin(): ???

Пример:

global $ioSession;
$ret = $ioSession->user->mylogin();

ВНИМАНИЕ

Неизвестно, используется сейчас или нет. На момент написания документации всегда содержала значение null.

setAccount()

Устанавливает переданный аккаунт, если он есть в массиве accounts. В случае успеха возвращает новое значение переменной account, иначе возвращает предыдущее значение.

setAccount(string|bigint|int|null $account): bigint|null
Аргумент функцииТипОписаниеОбязательный
$accountstring|bigint|int|nullpkid аккаунта.Да

Пример:

global $ioSession;
$account = 1234567890123456;
$account = $ioSession->user->setAccount($account);
Prev
$ioSession и работа с сессией
Next
$ioHash и работа с кешем