Функция для изменения данных профиля пользователя по его атрибуту.
function mSetUserAttribute(iUIN: integer; sAttributeName, sValue: string): integer;
Параметр |
Тип |
Значение |
---|---|---|
iUIN |
integer |
уникальный идентификатор пользователя; |
sAttributeName |
string |
имя атрибута из профиля, который следует изменить. Регистр букв не важен; |
sValue |
string |
значение атрибута. |
Название |
Описание |
---|---|
Custom_1 |
текстовое custom-поле номер 1; |
Custom_2 |
текстовое custom-поле номер 2; |
Custom_3 |
текстовое custom-поле номер 3. |
0 |
функция отработала успешно; |
-1 |
указан несуществующий пользователь; |
-2 |
указан неправильный атрибут; |
-3 |
вы не можете устанавливать атрибуты для робота (UIN = 0). |
В разделе настроек формирования внешнего вида имени пользователя указываем "%nick% %custom1%". Имя пользователя будет составлено из ника и некоей переменной, которую мы заполняем из скрипта. У каждого пользователя есть имя компьютера, если пользователь "мигрирует", то мы меняем его custom-поле в профиле, чтобы в чате отображалось "в дороге", если он работает на ноутбуке и его имя компьютера "TOSHIBA-...", "офис" — если название компьютера "COMP....." и так далее.
Обработку вешаем" на событие OnUserLogin:
function OnUserLogin(iCID, iLoginUIN, iLoginState: integer; sLoginIP, sLoginMAC, sLoginHardwareID, sLoginCompName, sLoginVersion, sLoginDomain, sSessionID, sAuthService, sClientType, sRemoteOS: string): boolean;
var
s, sWhere: string;
begin
s := LowerCase(sLoginCompName);
sWhere := '';
if pos('toshiba', s) <> 0 then sWhere := '(в дороге)' else
if pos('comp-', s) <> 0 then sWhere := '(офис)' else
if pos('kiev', s) <> 0 then sWhere := '(у заказчика)';
mSetUserAttribute(iLoginUIN, 'custom_1', sWhere);
result := true;
end;
begin
end.
Пользователь залогинен на компьютере с именем "TOSHIBA-PC":