8 (800) 302-62-68
+7 (499) 348-29-58
sale@rbs-crm.ru

Документация разработчика

Класс User

Класс User используется для получения данных о текущем пользователе.

Доступ к классу User

Во всех методах всех форм уже создан объект:

$this->User

В любом другом месте:

Kernel::getModule("User")
Получить объект текущего пользователя
$user = $this->User->getEmployee();
$user->id // выведет ID текущего пользователя
$user->name // выведет name текущего пользователя
Получить ID текущего пользователя
$userId = $this->User->getEmployeeId();
Получить маску доступа пользователя
$this->User->getMaskId($this->User->getEmployeeId());
Получить интерфейс пользователя
$this->User->getUserInterface($this->User->getEmployeeId());
Получить часовой пояс пользователя
$this->User->getTimeZone();
Является ли пользователь администратором
$this->User->isAdmin();
// true/false
Выйти из системы

После вызова данного метода у пользователя стирается сессия и он выходит из Системы (попадает на форму авторизации).

$this->User->logout();
Проверить права пользователя на какое-либо действие
canPlay ($scenario, $action)
// true/false

Где:

  • scenario — Имя структуры
  • action — Действие (см. ниже)

Доступные actions (действия):

  • ACCESS_VIEW — доступ на просмотр (чтение)
  • ACCESS_CREATE — доступ на создание
  • ACCESS_EDIT — доступ на изменение
  • ACCESS_DELETE — доступ на удаление
  • ACCESS_WIPE — доступ на уничтожение
  • ACCESS_EXPORT — доступ на экспорт и печать

Пример: проверить если у пользователя права на удаление сотрудника

$this->User->access->canPlay("references.employees", ACCESS_DELETE)
// true
Имеется ли пользователь доступ к флагу
showFlag($flagCode)
// true/false

Где:

  • flagCode — код флага (в uppercase регистре)

Пример: проверить, установлен ли у пользователя флаг «ADD_PAYMENT»

$this->User->access->showFlag("ADD_PAYMENT");
// true

Флаги устанавливаются в карточке пользователя («Настройки» — «Пользователи и права» — «Доступ к флагам»):

Имеется ли у пользователя доступ к виджету
showWidget($widgetName)
// true/false

Где:

  • widgetName — имя виджета (на англ.)

Пример:

$this->User->access->showWidget("deals");
// true/false
Имеется ли у пользователя доступ к отчету
showReport($reportName)
// true/false

Где:

  • reportName— имя отчета (на англ.)

Пример:

$this->User->access->showReport("deals_funnel");
// true/false
Имеется ли у пользователя доступ к объекту или определенному полю объекта
hasAccess($object, $action, $field = "")
// true/false

Где:

  • object — полное название Объекта
  • action — действие
  • field — если этот параметр установлен, то проверяется доступ к этому полю

Пример: имеет ли пользователь доступ к полю «День рождения» (birthday) Справочника «Сотрудники» («references.employees»)

$this->User->access->hasAccess("references.employees", ACCESS_EXPORT, "birthday");
// true
Получить список сотрудников с определенной маской
$this->User->getEmployeesByMaskId($maskId)
// objects/null

Где:

  • maskId — ID маски доступа

Пример: получить всех сотрудников с маской «Менеджер»(ID = 1) справочник «references.employees»

$this->User->getEmployeesByMaskId(1);