Задача № 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>