Задача № 39 640 от 01.08.2016 - Обновление до LDAP
Роль: _ИМЦ_LDAP_ВнешнийПользователь
Чтение константы, просмотр общей формы,
Общий модуль: _ИМЦ_LDAP_СерверныеПроцедурыИФункции
V - Сервер, Вызов сервера
////////////////////////////////////////////////////////////////////////////////////////////////////
// ЭКСПОРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
//Выполняет регистрацию пользователя LDAP в Системе
//
//Входные параметры:
// - Логин, строка. Логин пользователя
// - Пароль, строка. Пароль пользователя
// - ВыполненоУспешно, булево. Признак успешного завершения
Процедура ЗарегистрироватьПользователяLDAP(Логин, Пароль, ВыполненоУспешно, ТекстОшибки = "") Экспорт
ВыполненоУспешно = Ложь;
Если Не ЗначениеЗаполнено(Логин) Тогда
ТекстОшибки = "Поле ""Логин"" не заполнено!";
Возврат;
КонецЕсли;
Попытка
ПользовательЛДАП = Пользователи.НайтиПоИмени(Логин);
Если ПользовательЛДАП = Неопределено Тогда
ВыполненоУспешно = СоздатьПользователяЛДАП(Логин, Пароль, ТекстОшибки);
Иначе
Если ЗначениеЗаполнено(ПользовательЛДАП) Тогда
ПользовательОбъектЛДАП = ПользовательЛДАП.ПолучитьОбъект();
ПользовательОбъектЛДАП.Недействителен = Ложь;
ПользовательОбъектЛДАП.ПометкаУдаления = Ложь;
ПользовательОбъектЛДАП.Записать();
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(Логин);
Если ПользовательИБ = Неопределено Тогда
ТекстОшибки = "Произошла ошибка при обновлении данных пользователя: Пользователь ИБ не найден.";
Возврат;
КонецЕсли;
ПользовательИБ.ПоказыватьВСпискеВыбора = Ложь;
ПользовательИБ.Пароль = Пароль;
ПользовательИБ.АутентификацияСтандартная = Истина;
Если Не ПользовательИБ.Роли.Содержит(Метаданные.Роли._ИМЦ_LDAP_ВнешнийПользователь) Тогда
ПользовательИБ.Роли.Добавить(Метаданные.Роли._ИМЦ_LDAP_ВнешнийПользователь);
КонецЕсли;
ПользовательИБ.Записать();
ВыполненоУспешно = Истина;
КонецЕсли;
КонецЕсли;
Исключение
ТекстОшибки = ОписаниеОшибки();
Возврат;
КонецПопытки;
КонецПроцедуры
Функция СоздатьПользователяЛДАП(Логин, Пароль, ТекстОшибки) Экспорт
Попытка
СвойстваПользователя = Пользователи.НовоеОписаниеПользователяИБ();
СвойстваПользователя.Имя = Логин;
СвойстваПользователя.ПолноеИмя = Логин;
СвойстваПользователя.Пароль = Пароль;
СвойстваПользователя.АутентификацияСтандартная = Истина;
СвойстваПользователя.Роли = Новый Массив;
СвойстваПользователя.Роли.Добавить(Метаданные.Роли._ИМЦ_LDAP_ВнешнийПользователь.Имя);
СвойстваПользователя.Вставить("Действие", "Записать");
мПользователь = Справочники.Пользователи.СоздатьЭлемент();
мПользователь.Наименование = Логин;
мПользователь.Недействителен = Ложь;
мПользователь.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ", СвойстваПользователя);
мПользователь.Записать();
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(мПользователь.ИдентификаторПользователяИБ);
Если Не ПользовательИБ.Роли.Содержит(Метаданные.Роли._ИМЦ_LDAP_ВнешнийПользователь) Тогда
ПользовательИБ.Роли.Добавить(Метаданные.Роли._ИМЦ_LDAP_ВнешнийПользователь);
КонецЕсли;
ПользовательИБ.Записать();
Исключение
ТекстОшибки = ОписаниеОшибки();
Возврат Ложь;
КонецПопытки;
Возврат Истина;
КонецФункции
Общая форма _ИМЦ_LDAP_РабочийСтол
Синоним Рабочий стол пользователя LDAP
Реквизит формы ТекстРабочегоСтола (строка)
Модуль формы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ТекстРабочегоСтола = Константы._ИМЦ_LDAP_ТекстПриветствия.Получить();
КонецПроцедуры
&НаКлиенте
Процедура ТекстРабочегоСтолаПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка)
Если ДанныеСобытия.href <> Неопределено Тогда
СтандартнаяОбработка = Ложь;
Если Найти(ДанныеСобытия.href, "e1cib") > 0 Тогда
ПерейтиПоНавигационнойСсылке(ДанныеСобытия.href);
Иначе
ЗапуститьПриложение(ДанныеСобытия.href);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Константа _ИМЦ_LDAP_ТекстПриветствия - Строка
Содержимое:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8"/>
<link href="http://ssau.ru/css/su_style.css" rel="stylesheet" type="text/css">
<meta content="http://www.ssau.ru/img/su/logo.png" property="og:image">
<title>Самарский университет</title>
</head>
<body>
<div class="namesu">
<div class="logo">
<br>
<img oncontextmenu="return false;" alt="Самарский университет имени ак. С.П. Королева" src="http://www.ssau.ru/img/su/logo.png"/>
</div>
<span>федеральное государственное автономное образовательное учреждение высшего образования</span>
«Самарский национальный исследовательский университет имени академика С.П. Королева»
</div>
<section class="main-news">
<br>
<p align="center"><b><font size=5px>Уважаемый <b>пользователь</b>!</p>
<p align="center">Добро пожаловать в модуль "Библиотека" системы управления университетом!</font></b></p>
<br>
<p align="center">Если Вы читаете данное сообщение, значит для Вас не настроены права доступа к системе.</p>
<p align="center">Чтобы скорейшим образом разрешить эту несправедливость, пожалуйста, обратитесь в <a href="http://ssau.ru/it/uit/">Управление информатизации и телекоммуникаций</a></p>
</section>
</body>
</html>
Длительность: 1 -> 1,5
Новая - 1 августа 2016 г. 9:01:38 - Базенков -
</HTML>