Задача № 36 350 от 15.06.2016 - Уведомление о выполнении: СУ 2016: Разработка экспортной процедуры проверки и создания пользователя
Базенков => Для интеграции с LDAP в модуле "Библиотека" созданы:
1. Рабочий стол пользователя LDAP, настраиваемый администратором.
2. Модуль настройки рабочего стола в общей форме "Настройки системы"
3. Роль для гостевого доступа, позволяющая производить запуск системы с рабочим столом пользователя LDAP
4. Механизм автоматического создания нового пользователя на основании учетных данных пользователя LDAP с ограниченными правами.
НЕОБХОДИМО СОЗДАТЬ:
1. РОЛЬ ДЛЯ ГОСТЕВОГО ДОСТУПА. ДЛЯ ПОЛЬЗОВАТЕЛЕЙ ТОЛЬКО С ДАННОЙ РОЛЬЮ (УКАЗАННАЯ РОЛЬ ЕДИНСТВЕННАЯ, ПОДКЛЮЧЕННАЯ К ПОЛЬЗОВАТЕЛЮ) ДОЛЖНО ОТКРЫВАТЬСЯ ОКНО С ОТОБРАЖЕНИЕМ HTML ДОКУМЕНТА (ТЕКСТ ДОКУМЕНТА В КОНЦЕ ЗАДАЧИ).
ВЕСЬ ПРОЧИЙ ИНТЕРФЕЙС И ФУНКЦИИ КОНФИГУРАЦИИ ДОЛЖНЫ БЫТЬ НЕДОСТУПНЫ ДЛЯ ПОЛЬЗОВАТЕЛЯ.
2. ОБЩИЙ МОДУЛЬ С СЕРВЕРНЫМ ИСПОЛНЕНИЕМ.
ИМЯ МОДУЛЯ "_ИМЦ_LDAP_СЕРВЕРНЫЕПРОЦЕДУРЫИФУНКЦИИ".
В СОСТАВЕ МОДУЛЯ СОЗДАТЬ ЭКСПОРТНУЮ ПРОЦЕДУРУ "ЗАРЕГИСТРИРОВАТЬПОЛЬЗОВАТЕЛЯLDAP(ЛОГИН, ПАРОЛЬ, ВЫПОЛНЕНОУСПЕШНО)" (ШАБЛОН НУЖНО СКОПИРОВАТЬ В КОНЦЕ ЗАДАЧИ).
В ТЕЛЕ ПРОЦЕДУРЫ НЕОБХОДИМО РЕАЛИЗОВАТЬ СЛЕДУЮЩИЙ АЛГОРИТМ:
- ПРОЦЕДУРА ИЩЕТ СРЕДИ СПИСКА ПОЛЬЗОВАТЕЛЕЙ ПОЛЬЗОВАТЕЛЯ С ПОСТУПИВШЕМ ЛОГИНОМ (ПАРАМЕТР "ЛОГИН")
- ЕСЛИ ПОЛЬЗОВАТЕЛЬ С ТРЕБУЕМЫМ ЛОГИНОМ НАЙДЕН:
ПОЛЬЗОВАТЕЛЬ ДЕЛАЕТСЯ АКТУАЛЬНЫМ И ДЕЙСТВУЮЩИМ (СНИМАЕТСЯ ПОМЕТКА УДАЛЕНИЯ, УСТАНАВЛИВАЕТСЯ ГАЛКА "ДОСТУП РАЗРЕШЕН", СНИМАЕТСЯ ГАЛКА "ПОКАЗЫВАТЬ В СПИСКЕ ВЫБОРА")
ПОЛЬЗОВАТЕЛЮ ПРИСВАИВАЕТСЯ ТРЕБУЕМЫЙ ПАРОЛЬ (ПАРАМЕТР "ПАРОЛЬ")
- ЕСЛИ ПОЛЬЗОВАТЕЛЬ С ТРЕБУЕМЫМ ЛОГИНОМ НЕ НАЙДЕН:
СОЗДАЕТСЯ ПОЛЬЗОВАТЕЛЬ С ТРЕБУЕМЫМ ЛОГИНОМ И ПАРОЛЕМ (ПАРАМЕТРЫ "ЛОГИН" И "ПАРОЛЬ")
ПОЛЬЗОВАТЕЛЬ ДЕЛАЕТСЯ АКТУАЛЬНЫМ И ДЕЙСТВУЮЩИМ (СНИМАЕТСЯ ПОМЕТКА УДАЛЕНИЯ, УСТАНАВЛИВАЕТСЯ ГАЛКА "ДОСТУП РАЗРЕШЕН", СНИМАЕТСЯ ГАЛКА "ПОКАЗЫВАТЬ В СПИСКЕ ВЫБОРА")
ПОЛЬЗОВАТЕЛЮ ПРИСВАИВАЕТСЯ РОЛЬ ДЛЯ ГОСТЕВОГО ДОСТУПА (СМ. П.1)
ЕСЛИ ПРОЦЕДУРЫ СОЗДАНИЯ И ОБНОВЛЕНИЯ ПОЛЬЗОВАТЕЛЯ ПРОШЛИ УСПЕШНО, ЗНАЧЕНИЕ ПАРАМЕТРА "ВЫПОЛНЕНОУСПЕШНО" УСТАНАВЛИВАЕТСЯ В "ИСТИНА".
ТЕКСТ HTML ДОКУМЕНТА
<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://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://SSAU.RU/IMG/SU/LOGO2.SVG"/>
</DIV>
<SPAN>ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ</SPAN>
«САМАРСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ ИМЕНИ АКАДЕМИКА С.П. КОРОЛЕВА»
</DIV>
<SECTION CLASS="MAIN-NEWS">
<BR>
<P ALIGN="CENTER"><B><FONT SIZE=5PX>УВАЖАЕМЫЙ ПОЛЬЗОВАТЕЛЬ,</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>
__________________________________________________________________
* ЗНАЧЕНИЕ ПОЛЯ "##НАИМЕНОВАНИЕСИСТЕМЫ##" ДЛЯ СИСТЕМ:
- ДОКУМЕНТООБОРОТ - СИСТЕМУ ЭЛЕКТРОННОГО ДОКУМЕНТООБОРОТА
- БИБЛИОТЕКА - МОДУЛЬ "БИБЛИОТЕКА" СИСТЕМЫ УПРАВЛЕНИЯ УНИВЕРСИТЕТОМ
- УПРАВЛЕНИЕ УНИВЕРСИТЕТОМ - МОДУЛЬ "УЧЕБНЫЙ ПРОЦЕСС" СИСТЕМЫ УПРАВЛЕНИЯ УНИВЕРСИТЕТОМ
ШАБЛОН ПРОЦЕДУРЫ МОДУЛЯ
////////////////////////////////////////////////////////////////////////////////////////////////////
// ЭКСПОРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
//ВЫПОЛНЯЕТ РЕГИСТРАЦИЮ ПОЛЬЗОВАТЕЛЯ LDAP В СИСТЕМЕ
//
//ВХОДНЫЕ ПАРАМЕТРЫ:
// - ЛОГИН, СТРОКА. ЛОГИН ПОЛЬЗОВАТЕЛЯ
// - ПАРОЛЬ, СТРОКА. ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ
// - ВЫПОЛНЕНОУСПЕШНО, БУЛЕВО. ПРИЗНАК УСПЕШНОГО ЗАВЕРШЕНИЯ
//
ПРОЦЕДУРА ЗАРЕГИСТРИРОВАТЬПОЛЬЗОВАТЕЛЯLDAP(ЛОГИН, ПАРОЛЬ, ВЫПОЛНЕНОУСПЕШНО) ЭКСПОРТ
КОНЕЦПРОЦЕДУРЫ
////////////////////////////////////////////////////////////////////////////////////////////////////
// ЭКСПОРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
//ВЫПОЛНЯЕТ РЕГИСТРАЦИЮ ПОЛЬЗОВАТЕЛЯ LDAP В СИСТЕМЕ
//
//ВХОДНЫЕ ПАРАМЕТРЫ:
// - ЛОГИН, СТРОКА. ЛОГИН ПОЛЬЗОВАТЕЛЯ
// - ПАРОЛЬ, СТРОКА. ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ
// - ВЫПОЛНЕНОУСПЕШНО, БУЛЕВО. ПРИЗНАК УСПЕШНОГО ЗАВЕРШЕНИЯ
ПРОЦЕДУРА ЗАРЕГИСТРИРОВАТЬПОЛЬЗОВАТЕЛЯLDAP(ЛОГИН, ПАРОЛЬ, ВЫПОЛНЕНОУСПЕШНО, ТЕКСТОШИБКИ = "") ЭКСПОРТ
ВЫПОЛНЕНОУСПЕШНО = ЛОЖЬ;
ЕСЛИ НЕ ЗНАЧЕНИЕЗАПОЛНЕНО(ЛОГИН) ТОГДА
ТЕКСТОШИБКИ = "ПОЛЕ ""ЛОГИН"" НЕ ЗАПОЛНЕНО!";
ВОЗВРАТ;
КОНЕЦЕСЛИ;
ПОПЫТКА
ПОЛЬЗОВАТЕЛЬЛДАП = ПОЛЬЗОВАТЕЛИ.НАЙТИПОИМЕНИ(ЛОГИН);
ЕСЛИ ПОЛЬЗОВАТЕЛЬЛДАП = НЕОПРЕДЕЛЕНО ТОГДА
ВЫПОЛНЕНОУСПЕШНО = СОЗДАТЬПОЛЬЗОВАТЕЛЯЛДАП(ЛОГИН, ПАРОЛЬ, ТЕКСТОШИБКИ);
ИНАЧЕ
ЕСЛИ ЗНАЧЕНИЕЗАПОЛНЕНО(ПОЛЬЗОВАТЕЛЬЛДАП) ТОГДА
ПОЛЬЗОВАТЕЛЬОБЪЕКТЛДАП = ПОЛЬЗОВАТЕЛЬЛДАП.ПОЛУЧИТЬОБЪЕКТ();
ПОЛЬЗОВАТЕЛЬОБЪЕКТЛДАП.НЕДЕЙСТВИТЕЛЕН = ЛОЖЬ;
ПОЛЬЗОВАТЕЛЬОБЪЕКТЛДАП.ПОМЕТКАУДАЛЕНИЯ = ЛОЖЬ;
ПОЛЬЗОВАТЕЛЬОБЪЕКТЛДАП.ЗАПИСАТЬ();
ПОЛЬЗОВАТЕЛЬИБ = ПОЛЬЗОВАТЕЛИИНФОРМАЦИОННОЙБАЗЫ.НАЙТИПОИМЕНИ(ЛОГИН);
ЕСЛИ ПОЛЬЗОВАТЕЛЬИБ = НЕОПРЕДЕЛЕНО ТОГДА
ТЕКСТОШИБКИ = "ПРОИЗОШЛА ОШИБКА ПРИ ОБНОВЛЕНИИ ДАННЫХ ПОЛЬЗОВАТЕЛЯ: ПОЛЬЗОВАТЕЛЬ ИБ НЕ НАЙДЕН.";
ВОЗВРАТ;
КОНЕЦЕСЛИ;
ПОЛЬЗОВАТЕЛЬИБ.ПОКАЗЫВАТЬВСПИСКЕВЫБОРА = ЛОЖЬ;
ПОЛЬЗОВАТЕЛЬИБ.ПАРОЛЬ = ПАРОЛЬ;
ПОЛЬЗОВАТЕЛЬИБ.АУТЕНТИФИКАЦИЯСТАНДАРТНАЯ = ИСТИНА;
ЕСЛИ НЕ ПОЛЬЗОВАТЕЛЬИБ.РОЛИ.СОДЕРЖИТ(МЕТАДАННЫЕ.РОЛИ._ИМЦ_LDAP_ВНЕШНИЙПОЛЬЗОВАТЕЛЬ) ТОГДА
ПОЛЬЗОВАТЕЛЬИБ.РОЛИ.ДОБАВИТЬ(МЕТАДАННЫЕ.РОЛИ._ИМЦ_LDAP_ВНЕШНИЙПОЛЬЗОВАТЕЛЬ);
КОНЕЦЕСЛИ;
ПОЛЬЗОВАТЕЛЬИБ.ЗАПИСАТЬ();
КОНЕЦЕСЛИ;
КОНЕЦЕСЛИ;
ИСКЛЮЧЕНИЕ
ТЕКСТОШИБКИ = ОПИСАНИЕОШИБКИ();
ВОЗВРАТ;
КОНЕЦПОПЫТКИ;
ВЫПОЛНЕНОУСПЕШНО = ИСТИНА;
КОНЕЦПРОЦЕДУРЫ
ФУНКЦИЯ СОЗДАТЬПОЛЬЗОВАТЕЛЯЛДАП(ЛОГИН, ПАРОЛЬ, ТЕКСТОШИБКИ) ЭКСПОРТ
ПОПЫТКА
СВОЙСТВАПОЛЬЗОВАТЕЛЯ = ПОЛЬЗОВАТЕЛИ.НОВОЕОПИСАНИЕПОЛЬЗОВАТЕЛЯИБ();
СВОЙСТВАПОЛЬЗОВАТЕЛЯ.ИМЯ = ЛОГИН;
СВОЙСТВАПОЛЬЗОВАТЕЛЯ.ПОЛНОЕИМЯ = ЛОГИН;
СВОЙСТВАПОЛЬЗОВАТЕЛЯ.ПАРОЛЬ = ПАРОЛЬ;
СВОЙСТВАПОЛЬЗОВАТЕЛЯ.АУТЕНТИФИКАЦИЯСТАНДАРТНАЯ = ИСТИНА;
СВОЙСТВАПОЛЬЗОВАТЕЛЯ.РОЛИ = НОВЫЙ МАССИВ;
СВОЙСТВАПОЛЬЗОВАТЕЛЯ.РОЛИ.ДОБАВИТЬ(МЕТАДАННЫЕ.РОЛИ._ИМЦ_LDAP_ВНЕШНИЙПОЛЬЗОВАТЕЛЬ.ИМЯ);
СВОЙСТВАПОЛЬЗОВАТЕЛЯ.ВСТАВИТЬ("ДЕЙСТВИЕ", "ЗАПИСАТЬ");
МПОЛЬЗОВАТЕЛЬ = СПРАВОЧНИКИ.ПОЛЬЗОВАТЕЛИ.СОЗДАТЬЭЛЕМЕНТ();
МПОЛЬЗОВАТЕЛЬ.НАИМЕНОВАНИЕ = ЛОГИН;
МПОЛЬЗОВАТЕЛЬ.НЕДЕЙСТВИТЕЛЕН = ЛОЖЬ;
МПОЛЬЗОВАТЕЛЬ.ДОПОЛНИТЕЛЬНЫЕСВОЙСТВА.ВСТАВИТЬ("ОПИСАНИЕПОЛЬЗОВАТЕЛЯИБ", СВОЙСТВАПОЛЬЗОВАТЕЛЯ);
МПОЛЬЗОВАТЕЛЬ.ЗАПИСАТЬ();
ПОЛЬЗОВАТЕЛЬИБ = ПОЛЬЗОВАТЕЛИИНФОРМАЦИОННОЙБАЗЫ.НАЙТИПОУНИКАЛЬНОМУИДЕНТИФИКАТОРУ(МПОЛЬЗОВАТЕЛЬ.ИДЕНТИФИКАТОРПОЛЬЗОВАТЕЛЯИБ);
ЕСЛИ НЕ ПОЛЬЗОВАТЕЛЬИБ.РОЛИ.СОДЕРЖИТ(МЕТАДАННЫЕ.РОЛИ._ИМЦ_LDAP_ВНЕШНИЙПОЛЬЗОВАТЕЛЬ) ТОГДА
ПОЛЬЗОВАТЕЛЬИБ.РОЛИ.ДОБАВИТЬ(МЕТАДАННЫЕ.РОЛИ._ИМЦ_LDAP_ВНЕШНИЙПОЛЬЗОВАТЕЛЬ);
КОНЕЦЕСЛИ;
ПОЛЬЗОВАТЕЛЬИБ.ЗАПИСАТЬ();
ИСКЛЮЧЕНИЕ
ТЕКСТОШИБКИ = ОПИСАНИЕОШИБКИ();
ВОЗВРАТ ЛОЖЬ;
КОНЕЦПОПЫТКИ;
ВОЗВРАТ ИСТИНА;
КОНЕЦФУНКЦИИ
</p><HR> <p>
<B> Новая - 15 июня 2016 г. 14:16:03 - Базенков - </B>
</p></BODY></HTML></HTML>