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