При интеграции корпортала с AD часто требуется запретить редактирование информации о пользователе, подгружаемой из домена.
| Код |
|---|
function OnBeforeUserUpdateHandler(&$arFields)
{
//массив проверяемых полей
$arCheckingFields = array("NAME", "LAST_NAME", "SECOND_NAME", "EMAIL", "WORK_PHONE", "PERSONAL_PHONE", "PERSONAL_ICQ", "PERSONAL_BIRTHDAY", "PERSONAL_MOBILE", "UF_SKYPE", "WORK_POSITION");
//получаем текущие значения полей, которые запрещаем редактировать и сравниваем значения
$rsUser = CUser::GetByID($arFields["ID"]);
$arUser = $rsUser->Fetch();
foreach ($arCheckingFields as $fieldname) {
if($arUser[$fieldname]<>$arFields[$fieldname]) {
global $APPLICATION;
$APPLICATION->throwException("Вы не можете редактировать эту информацию о себе, она импортируется из вашей учетной записи в домене компании. Пожалуйста, обратитесь к системному администратору для изменения этой информации.");
return false;
}
}
} |