Сценарии генерации логинов учетных записей

Документация Avanpost IDM 7 : 9.6.1. Сценарии генерации логинов учетных записей

Навигатор по разделу:

1. Сценарий генерации логина учетной записи сотрудника 

Сценарий генерации логина учетной записи сотрудника позволяет генерировать логины учетных записей, создаваемых в IDM, на основании данных из кадровой системы.
Примеры подходящих свойств: "Имя", "Почтовый адрес", "Должность", "Номер телефона" и т. п.

Пример сценария
Employee.FirstName + Employee.LastName + '_' + Role.Name
Пример сценария
login = str.format('{0}@users',Employee.LastName)
if not UniquenessChecker.IsLoginUnique(login, [2]):
  login = Employee.FirstName + login 
login

Значения свойств определяются одиночными выражениями, выполняющимися в контексте:

ПараметрОписание

ResourceId  

Идентификатор ресурса, для которого выполняется сценарий. Целочисленный тип.

OwnedAccounts 

Учётные записи во всех ресурсах, которыми владеет сотрудник в данный момент.
Массив значений типа LoginGenerationScopeOwnedAccount. Данный тип содержит свойства:

  • ResourceId (целочисленный тип)
  • ProfileId (целочисленный тип)

  • Login(Строковый тип)

UsedAccounts

Учётные записи во всех ресурсах, которыми пользуется сотрудник или совместитель в данный момент.
Массив значений типа LoginGenerationScopeOwnedAccount. Данный тип содержит свойства:

  • ResourceId (целочисленный тип)
  • ProfileId (целочисленный тип)

  • Login(Строковый тип)

NoTranslit()

Функция для указания не применять транслитерацию к возвращаемому значению., на вход которой передается результат сценария генерация логина.

Transliterate(string str)

Функция применения транслитерации к возвращаемому значению., на вход которой передается результат сценария генерация логина.

UniquenessChecker

Проверка уникальности для нескольких ресурсов. Свойство типа LoginUniquenessChecker.

UniquenessChecker.IsLoginUnique(string login, IEnumerable<int> resources)

Функция проверки уникальности, на вход которой передается логин и список идентификаторов ресурсов.

Debug

Вспомогательные средства отладки. Свойство типа ScriptDebug.

Debug.Print(string text)

Функция вывода отладочной информации.

Configuration

Конфигурация. Свойство типа ICustomConfigurationReadonlyFunctions.

Подробнее о конфигурациях см. статью "9.5. Конфигурации" руководства по разработке.

Configuration.GetConfigurationValueOrDefault(string sectionName, string key)

Функция получения значения конфигурации. Принимает на вход название секции и ключ конфигурации.

Configuration.GetConfigurationValues(string sectionName)

Функция получения всех значений конфигураций в секции. Принимает на вход название секции.

Employee

Сотрудник, для которого генерируется логин. Свойство типа ScriptEmployee.

Параметры Employee см. в приложении.

Role

Роль. Свойство типа ScriptRole.
Данное свойство доступно, если учетная запись создается в результате назначения роли, которая создает уникальные учетные записи. В ином случае оно будет пустым.

Параметры Role см. в приложении.

Примечание:

О применении сценариев генерации логина учетной записи в веб-интерфейсе администратора см. статью "5.1.4. Настройка интеграции с целевыми системами" руководства по администрированию

2. Сценарий генерации логина учетной записи юнита 

Сценарий генерации логина учетной записи юнита позволяет генерировать логины учетных записей, создаваемых в IDM, на основании данных из кадровой системы юнитов.
Примеры подходящих свойств: "Имя юнита", "Тип юнита", "Путь к юниту", и т. п.

Пример сценария
Unit.Name + Unit.Type + '_' + Role.Name
Пример сценария
NoTranslit(str.format('{0}@unit',Unit.Name))

Значения свойств определяются одиночными выражениями, выполняющимися в контексте:

ПараметрОписание

ResourceId  

Идентификатор ресурса, для которого выполняется сценарий. Целочисленный тип.

OwnedAccounts

Учётные записи во всех ресурсах, которыми владеет сотрудник в данный момент.
Массив значений типа LoginGenerationScopeOwnedAccount. Данный тип содержит свойства:

  • ResourceId (целочисленный тип)
  • ProfileId (целочисленный тип)

  • Login(Строковый тип)

UsedAccounts

Учётные записи во всех ресурсах, которыми пользуется сотрудник в данный момент.
Массив значений типа LoginGenerationScopeOwnedAccount. Данный тип содержит свойства:

  • ResourceId (целочисленный тип)
  • ProfileId (целочисленный тип)

  • Login(Строковый тип)

NoTranslit()

Функция для указания не применять транслитерацию к возвращаемому значению, на вход которой передается результат сценария генерация логина.

Transliterate(string str)

Функция применения транслитерации к возвращаемому значению, на вход которой передается результат сценария генерация логина.

UniquenessChecker

Проверка уникальности для нескольких ресурсов. Свойство типа LoginUniquenessChecker.

UniquenessChecker.IsLoginUnique(string login, IEnumerable<int> resources)

Функция проверки уникальности, на вход которой передается логин и список идентификаторов ресурсов.

Debug

Вспомогательные средства отладки. Свойство типа ScriptDebug.

Debug.Print(string text)

Функция вывода отладочной информации.

Configuration

Конфигурация. Свойство типа ICustomConfigurationReadonlyFunctions.

Подробнее о конфигурациях см. статью "9.5. Конфигурации" руководства по разработке.

Configuration.GetConfigurationValueOrDefault(string sectionName, string key)

Функция получения значения конфигурации. Принимает на вход название секции и ключ конфигурации.

Configuration.GetConfigurationValues(string sectionName)

Функция получения всех значений конфигураций в секции. Принимает на вход название секции.

Unit

Юнит, для которого генерируется логин. Свойство типа UnitScriptModel.

Параметры Unit см. в приложении.

Role

Роль. Свойство типа ScriptRole.
Данное свойство доступно, если учетная запись создается в результате назначения роли, которая создает уникальные учетные записи. В ином случае оно будет пустым.

Параметры Role см. в приложении.

Примечание:

О применении сценариев генерации логина учетной записи в веб-интерфейсе администратора см. статью "5.1.4. Настройка интеграции с целевыми системами" руководства по администрированию

Приложение. Параметры Role 

ПараметрОписание

Role.Id

Идентификатор роли. Целочисленный тип.

Role.Name

Название роли. Строковый тип.

Role.Properties

Расширенные свойства роли. Массив с парами значений string - ExtendedPropertyValueScriptMode. Данный тип содержит свойства:

  • JsonValue (Строковый тип) Значение свойства в формате JSON.

  • NativeValue (тип object) - значение свойства в виде объекта

Приложение. Параметры Employee

ПараметрОписание

Employee.Id

Идентификатор сотрудника. Целочисленный тип.

Employee.EMail

Почтовый адрес сотрудника. Строковый тип.

Employee.FirstName

Имя сотрудника. Строковый тип.

Employee.LastName

Фамилия сотрудника. Строковый тип.

Employee.Patronymic

Отчество сотрудника. Строковый тип.

Employee.PersonnelNumber

Табельный номер сотрудника. Строковый тип.

Employee.Extension

Расширенные данные сотрудника, предоставленные кадровой системой (без наследования). Свойство типа ExtensionBag.

Employee.Extension.Properties

Массив свойств сотрудника, предоставленных кадровой системой.

Employee.BirthDate

Дата рождения в формате ISO 8061 (гггг-мм-дд). Строковый тип.

Employee.Division

Подразделение сотрудника с ссылкой на родительское подразделение. Свойство типа ScriptDivision.

Employee.Division.Id

Идентификатор подразделения сотрудника. Целочисленный тип.

Employee.Division.Name

Название подразделения сотрудника. Строковый тип.

Employee.Division.Extension

Расширенные данные подразделения, предоставленные кадровой системой (без наследования). Свойство типа ExtensionBag.

Employee.Division.Extension.Properties

Массив свойств подразделения, предоставленных кадровой системой.

Employee.Division.Parent

Ссылка на родительское подразделения (рекурсивная). Свойство типа ScriptDivision.

Employee.Division.ManagerId

Идентификатор руководителя подразделения. Целочисленный тип.

Employee.Division.ExternalId

Идентификатор подразделения сотрудника в кадровой системе. Строковый тип.

Employee.Division.GetFullName()    

Функция для получения полного названия подразделения в формате DN (в качестве OU берутся либо первые 64 символа названия подразделения, либо значение Extension.OU)

Employee.Division.GetFullNameExplicit(bool ignoreMissing = false)

Функция для получения полного названия подразделения в формате DN без вывода OU из названий подразделений (в качестве OU берётся только значение Extension.OU) При ignoreMissing=True, если хотя бы одно значение не заполнено, возвращается None, иначе компонент DN пропускается.

Employee.Division.GetPath()

Функция для получения списка подразделений на пути к этому подразделению начиная от корневого и заканчивая текущим.

Employee.Division.GetPath()[0] всегда корневое.

Employee.Position

Должность сотрудника. Свойство типа ScriptPosition.

Employee.Position.Id

Идентификатор должности сотрудника. Целочисленный тип.

Employee.Position.Name

Название должности сотрудника. Строковый тип.

Employee.Position.ExternalId

Идентификатор должности сотрудника в кадровой системе. Строковый тип.

Employee.ExternalId

Идентификатор сотрудника в кадровой системе. Строковый тип.

Employee.PersonId

Идентификатор физического лица в кадровой системе. Строковый тип.

Employee.GetManagerId()

Функция для получения идентификатора руководителя ближайшего по иерархии подразделения кроме тех подразделений, которыми руководит указанный работник.

Employee.GetDirectManagerId()

Функция для получения идентификатора текущего непосредственного руководителя работника.

Приложение. Параметры Unit

ПараметрОписание

Unit.Id

Идентификатор юнита. Строковый тип.

Unit.Name

Имя юнита. Строковый тип.

Unit.ParentId

Идентификатор родительского юнита. Строковый тип.

Unit.DisableIdentity

Флаг отключения авторизации. Тип boolean.

Unit.Path

Путь к юниту. Строковый тип.

Unit.Type

Тип юнита. Свойство типа UnitType

Unit.Type.Id

Идентификатор типа юнита. Тип Guid.

Unit.Type.Name

Название типа юнита. Строковый тип.

Unit.Type.AllowAssignments

Флаг разрешения назначения юнитов данного типа сотрудникам. Тип boolean.

Unit.Type.IsIdentitySubject

Флаг, показывающий, являются ли юниты данного типа субъектами авторизации. Тип boolean.

Unit.Type.Icon

Иконка типа юнита. Строковый тип.

Unit.Type.Links

Ссылки на другие типы юнитов. Массив значений типа UnitTypeLink. Данный тип содержит свойства:

  • Id (тип Guid) Идентификатор ссылки;
  • Name (Строковый тип) Название ссылки;
  • ParentTypeId (тип Guid) Идентификатор родительского типа юнитов;

  • ChildTypeId (тип Guid) Идентификатор дочернего типа юнитов;

  • ChildType (тип UnitType) Дочерний тип юнитов;

Unit.Type.Properties

Свойства типа юнитов. Массив значений типа UnitTypeProperty. Данный тип содержит свойства:

  • Order (целочисленный тип) Порядок свойства;
  • Name (Строковый тип) Название свойства;
  • Description (Строковый тип) Описание свойства;
  • Required (тип boolean) Флаг обязательности заполения значения свойства;
  • Unique (тип boolean) Флаг уникальности значения свойства;
  • Indexed (тип boolean) Флаг индексируемости свойства;
  • ValueType (тип UnitPropertyValueType) Тип значения свойства;
  • ValueConfig (Строковый тип) Тип ввода значения свойства;
  • DefaultValue (Строковый тип) Значение по умолчанию для свойства;
  • Id (тип Guid) Идентификатор свойства;
  • UnitTypeId (тип Guid) Идентификатор типа юнитов;
  • Validators (массив типа UnitPropertyValidatorConfig) Валидаторы свойства;

Unit.Type.Children

Дочерние типы юнитов. Массив значений типа UnitTypeChild. Данный тип содержит свойства:

  • Id (тип Guid) Идентификатор юнита;
  • ParentTypeId (тип Guid) Идентификатор родительского типа юнитов;
  • ChildTypeId (тип Guid) Идентификатор дочернего типа юнитов;
  • PatentType (тип UnitType) Родительский тип юнитов;
  • ChildType (тип UnitType) Дочерний тип юнитов;

Unit.Properties

Расширенные свойства юнита. Массив с парами значений string - UnitPropertyValueScriptModel. Данный тип содержит свойства:

  • JsonValue (Строковый тип) - значение свойства в формате JSON;

  • NativeValue (тип object) - значение свойства в виде объекта.

Unit.Links

Ссылки юнита. Массив значений типа UnitLink. Данный тип содержит свойства:

  • ParentId (тип Guid) Идентификатор родительского юнита;
  • TypeId (тип Guid) Идентификатор типа юнита;
  • ChildId (тип Guid) Идентификатор дочернего юнита;
  • Type (тип UnitTypeLink) Тип юнита;
  • Parent (тип Unit) Родительский юнит;
  • Child (тип Unit) Дочерний юнит;

Unit.Responsibles

Ответственные  за юнит. Массив значений типа UnitEmployeeResponsibleScriptModel. Данный тип содержит свойства:

  • EmployeeId (целочисленный тип) Идентификатор сотрудника;

  • Employee (тип Employee) Сотрудник;

  • Function (Строковый тип) Функция ответственного;

  • UnitId (тип Guid) Идентификатор юнита;

  • Id (целочисленный тип) Идентификатор ответственного;

Unit.Assignments

Назначения юнита сотрудникам. Массив значений типа UnitAssignment. Данный тип содержит свойства:

  • Id (тип Guid) Идентификатор назначения;
  • UnitId (тип Guid) Идентификатор юнита;
  • EmployeeId (целочисленный тип) Идентификатор сотрудника;
  • Unit (тип Unit) Юнит;
  • Employee (тип Employee) Сотрудник.

Unit.Children

Дочерние юниты. Массив значений типа Unit. Данный тип содержит свойства и методы:

  • Id (тип Guid) Идентификатор юнита;
  • ParentId (тип Guid) Идентификатор родительского юнита;
  • TypeId (тип Guid) Идентификатор типа юнита;
  • Name (Строковый тип) Имя юнита;
  • Deleted (тип boolean) Флаг удаленного юнита;
  • DisableIdentity (тип boolean) Флаг отключения объекта как субъекта авторизации;

  • Version (целочисленный тип) Версия;
  • Signature (тип Signature) Цифровая подпись;

  • GetTextId() Функция, возвращающая идентификатор юнита строкой;
  • GetRef() Функция, возвращающая ссылку на юнит;
  • Path (Строковый тип) Путь к юниту;
  • Type (тип UnitType) Тип юнита;
  • Acl (тип UnitAcl) ACL юнита;
  • Properties (массив значений типа UnitPropertyValue) Расширенные свойства юнита;
  • Links (массив значений типа UnitLink) Ссылки юнита на другие юниты;
  • Responsibles (массив значений типа UnitResponsible) Ответственные за юнит;

  • Assignments (массив значений типа UnitAssigment) Назначения юнита;

  • Children (массив значений типа Unit) Дочерние юниты;

  • ToString() Функция, возвращающая идентификатор и имя юнита строкой.

Обсуждение