Оплёт — различия между версиями

Материал из Брацка Правки
Перейти к: навигация, поиск
(С пользовательскими приложениями)
(Связанные лектио)
 
(не показано 140 промежуточных версий 3 участников)
Строка 1: Строка 1:
[[Оплёт]] ([[Opplet]]) -- служебное программное обеспечение, которое собирает все пользовательские приложения [[Брацко Облако|Брацкого Облака]] (здесь и далее по тексту -- ''Облака'') в единую федеральную систему. Сам ''Оплёт'' играет роль федерального центра, обслуживая все пользовательские приложения ''Облака'', вне зависимости от их расположения в ''Облакe'', теми [[#Федеративные услуги|Услугами]], которые переданы от приложений ''Оплёту''. Фактически ''Оплёт'' делает ''Облако'' ''Облаком'', для которого ''Оплёт'' специально создан.  
+
[[Оплёт]] ([[Opplet]]; WorldOpp Middleware) -- федеративное, промежуточное и связующее программное обеспечение, которое обслуживает все пользовательские приложения [[Брацко Облако|Брацкого Облака]] (здесь и далее по тексту -- ''Облака''), для которого ''Оплёт'' специально создан. ''Оплёт'' и пользовательские приложения образуют единую федеративную систему, в которой ''Оплёт'' играет роль федерального центра. ''Оплёт'' предоставляет приложениям ''Облака'' те [[#Федеративные услуги|Услуги]], которые переданы от приложений ''Оплёту''. Фактически ''Оплёт'' делает ''Облако'' единым ''Облаком''.
  
  
Строка 5: Строка 5:
  
 
===Федеративные услуги===
 
===Федеративные услуги===
::Федеративные услуги -- это исключительные услуги ''Oплёта''. Ни одно из пользовательских приложений не должно иметь возможности предоставлять эти услуги индивидуальным пользователям. Личные кабинеты пользователей, которые некоторые приложения типа [[Брацка Справочна|Брацкой Справочной]] или [[Брацка Учебка|Брацкой Учебки]] могут иметь, дополняют, а не заменяют личный кабинет ''Оплёта''. ''Оплёт'' предоставляет следующие федеративные услуги:
+
:Федеративные услуги -- это исключительные услуги ''Oплёта''. Ни одно из пользовательских приложений не имеет возможности предоставлять эти услуги индивидуальным пользователям. Личные кабинеты пользователей, которые некоторые приложения типа [[Брацка Правка|Брацкой Правки]] или [[Брацка Учебка|Брацкой Учебки]] могут иметь собственные кабинеты. Кабинеты этих приложений дополняют личный кабинет ''Оплёта'', но не заменяют его. ''Оплёт'' автоматически заполняет все те поля пользователей, которые могут требовать отдельные приложения. ''Оплёт'' предоставляет следующие федеративные услуги:
::{|class="wikitable" width=100% style="text-align:center;"
+
:{|class="wikitable" width=100% style="text-align:center;"
 
!Услуги!!Описание!!Потребители
 
!Услуги!!Описание!!Потребители
 
|-
 
|-
Строка 15: Строка 15:
  
 
===Безопасность===
 
===Безопасность===
::Сотрудники и авторизованные пользователи могут иметь обычный доступ через вэб-броузеры только к своим профилям. Всё остальное [[#Центральное обслуживание|Центральное обслуживание]] доступно исключительно администраторам  по [[PKI]].
+
:Сотрудники и авторизованные пользователи могут иметь обычный доступ через вэб-броузеры только к своим профилям. Всё остальное [[#Центральное обслуживание|Центральное обслуживание]] доступно исключительно администраторам  по [[PKI]].
  
 
===Дополнительные функции===
 
===Дополнительные функции===
 
:#Служить одной из площадок для дальнейшего развития профессиональных навыков участников учебных программ.
 
:#Служить одной из площадок для дальнейшего развития профессиональных навыков участников учебных программ.
  
==Взаимодействие==
+
==Структура==
  
===С пользовательскими приложениями===
+
===Ядро===
:''Оплёт'' сообщается через сервер [[OpenLDAP]]. При создании и изменении пользователя в ''Оплёте'', эти же события прописываются в [[OpenLDAP]]. Так как управление исключительно с шифрованием, для [[OpenLDAP]] настроен [[TSL]]:
+
:Ядро приложения составляет движок управления пользователями и сервер для пользовательских данных [[MariaDB]].
:*[[OpenLDAP]] установлен 2.4; записи хранятся в [[LDIF]] в незашифрованом виде;
 
:*В настоящее время к серверу [[OpenLDAP]] подключены [[Брацка Справочна]], [[Брацка Учебка]] и сам ''Оплёт''. Для удобного перехода с одного приложения на другое, будет настроен [[SSO]];
 
:*Для тех пользователей, которые пользуются социальным логином, настроен [[OAuth 2]] протокол. В данный момент есть проблемы прописывания "социальных пользователей" в ''Оплёте''.
 
  
===С индивидуальными пользователями===
+
===Модули===
 +
:Обсуждалось создание трёх новых модулей ''Оплёта'':
 +
:#Для управления данными тех событий, которые важны для пользователей -- лекции, семинары, практика и так далее;
 +
:#Для управления экзаменационными вопросами. Вопросы бы отражались для отдельного пользователя вне зависимости от курса и приложения;
 +
:#Для автоматической записи на курсы. Функционал для записи на один курс по окончанию другого существует в [[Moodle]], но его не достаточно для создания учебных програм, учитывающих специфические пожелания студента.
 +
:Также обсуждалось, что эти новые модули могут быть реализованы отдельными приложениями.
  
''Оплёт'' сообщается через интерфэйс личного кабинета.
+
===Федерация===
 +
:Для взаимодействия с другими приложениями [[Брацко Облако|Брацка Облака]], ''Оплёт'' включает или должен включать в себя три федерационных блока:
 +
:#Идентификационный сервер, собранный на базе [[WSO2 Identity Server]];
 +
:#Распределённую базу данных для основных данных пользовательских приложений. Для её связи с приложениями планируется задействовать интеграционную платформу [[WSO2 Enterprise Integrator]];
 +
:#Сервер [[OpenLDAP]], исторически задействованный как дополнительный канал для идентификации.
  
===Со служебными программами===
+
==Обслуживание приложений==
Например, с такими, как [[OpenStack Keystone]] и [[Amazon Cognito]], ''Оплёт'' в перспективе будет сообщаться через [[ОpenLDAP]];
+
Предоставление другим приложениям [[Брацко Облако|Брацка Облака]] идентификационных и авторизационных данных -- это одна из основных функций ''Оплёта''. По сути, ''Оплёт'' являтся предоставителем услуг по идентификации (Identity service provider или ISP) для брацких приложений. Эти услуги ''Оплёт'' осуществляет посредством:
 +
#Идентификационного сервера, собранного на базе [[WSO2 Identity Server]];
 +
#Сервера [[OpenLDAP]], задействованного как дополнительный канал для идентификации и авторизации.
 +
 
 +
Изначально, ''Оплёт'' работал с [[simpleSAMLphp]]. Из-за ограничений [[SAML]], [[simpleSAMLphp]] позже был заменён сервером [[OpenLDAP]]. Текущий проект -- подключить ''Оплёт'' к идентификационному серверу [[WSO2]] ([[WSO2 identity Server]] или [[WSO2 IS]]), оставив [[OpenLDAP]] в качестве параллельного канала идентификации и авторизации.
 +
 
 +
===Основной сервер===
 +
:Основной сервер для взаимосвязи ''Оплёта'' с пользовательскими приложениями через [[OpenLDAP]] реализуется на базе [[WSO2 Identity Server]]. При создании и изменении пользователя в ''Оплёте'', эти же события прописываются в ''сервере''. Так как управление производится исключительно с шифрованием, для ''сервера'' должен быть настроен [[TSL]]:
 +
 
 +
:[[WSO2 identity Server]] установлен 5.11.0. Данные хранятся в четырёх [[H2 DBMS]]. Функциональность [[SSO]] -- родная для [[WSO2 identity Server]]'а.
 +
 
 +
:Решение как ''Оплёт'' будет взамодействовать с другими служебными программами такими, как [[OpenStack Keystone]] и [[Amazon Cognito]], пока не принято. Будущая идентификация должна быть построена на имеющемся в наличии программном обеспечении:
 +
:*В случае общественного облака может быть использован [[Amazon Cognito]] в [[AWS]] или [[Microsoft Azure Active Directory]] в [[Microsoft Azure]];
 +
:*В случае использования частного облака, будет задействован [[OpenStack Keystone]] с выводом на [[LDAP]]. Keystone - это служба OpenStack, которая обеспечивает аутентификацию [[API]]-клиента, обнаружение сервисов и распределенную авторизацию с несколькими арендаторами, внедряя [[OpenStack Identity API]]. Он поддерживает [[LDAP]], [[OAuth]], [[OpenID Connect]], [[SAML]] и [[SQL]]. Keystone на самом деле не реализует никаких функций управления пользователями; скорее, он предоставляет подключаемые интерфейсы, чтобы организации могли использовать свои текущие службы аутентификации или выбирать из множества систем управления идентификацией, которые находятся на рынке.
 +
 
 +
:Пользователи, не являющиеся сотрудниками [[Брацка Школа|Брацкой Школы]], должны иметь возможность входа в ''Облако'' через идентификацию в социальных сетях [[social login]], например, [[Facebook Connect]], и других сервисах, пользующихся [[OpenID Connect]].
 +
 
 +
:Используя стороннюю идентификацию, сотрудники не могут заходить на [[Брацка Пошта|Брацкую Пошту]], [[Брацка Крынка|Брацкую Крынку]], а также служебные части [[Брацка Справа|Брацкую Справу]].
 +
 
 +
===Сервер LDAP===
 +
:[[OpenLDAP]] установлен 2.4; записи хранятся в [[LDIF]] в незашифрованом виде. Сервер LDAP работает параллельно с основным сервером. Ограничение [[OpenLDAP]] -- для удобного перехода с одного приложения на другое, невозможно настроить [[SSO]] без дополнительных приложений. Также существуют проблемы использования [[OpenLDAP]] с [[Брацка Пошта|Брацкой Поштой]] и новыми версиями [[MediaWiki]], которые используются в [[Брацка Правка|Брацкой Правке]].
  
 
==Определение ролей==
 
==Определение ролей==
 
Определение ролей пользователей должно происходить в одном из двух режимах:
 
Определение ролей пользователей должно происходить в одном из двух режимах:
#'''[[#Автоматическое назначение|В автоматическом режиме]]''' должны назначаться пользовательские роли, например, слушателя вводного курса; и
+
#'''[[#Автоматическое назначение|В автоматическом режиме]]''' должны назначаться федеративные пользовательские роли, например, слушателя [[Брацка Вводка|Брацкой Вводки]]; и
#'''[[#Ручное назначение|В ручном режиме]]''' должны назначаться административные роли, например, сетевого администратора [[Брацка Справочна|Брацкой Справочной]].
+
#'''[[#Ручное назначение|В ручном режиме]]''' должны назначаться роли, которые специфичны именно для ''Оплёта''. В данный момент, единственная такая назначаемая роль -- это администратор ''Оплёта''. Позже могут быть добавлены роли администраторов отдельных модулей.
  
 
===Автоматическое назначение===
 
===Автоматическое назначение===
::Сами пользовательские роли должны быть разработаны далее. Предварительно, будут задействованы девять ролей:
+
:Сами пользовательские роли должны быть разработаны далее. Предварительно, будут задействованы девять ролей:
::{|class="wikitable" width=100% style="text-align:center;"
+
:{|class="wikitable" width=100% style="text-align:center;"
 
|colspan="2"|[[#Роли|Роль]]
 
|colspan="2"|[[#Роли|Роль]]
 
!rowspan="2"|Условие автоматического получения роли!!rowspan="2"|Автоматические доступы
 
!rowspan="2"|Условие автоматического получения роли!!rowspan="2"|Автоматические доступы
Строка 50: Строка 76:
 
|-
 
|-
 
!Неавторизованный
 
!Неавторизованный
|Stranger||Отсутствие условий -- любой посетитель сети Интернет (как зарегистрированный, так и нет), который не авторизовался в Оплёте.||rowspan="9"|Смотри [[#Автоматическая авторизация|Автоматическая авторизация]]
+
|NetAnyone||Отсутствие условий -- любой посетитель сети Интернет (как зарегистрированный, так и нет), который не авторизовался в Оплёте.||rowspan="7"|Смотри [[#Автоматические доступы|Автоматические доступы]]
 
|-
 
|-
 
!Подписчик
 
!Подписчик
|Subscriber||Подписка на рассылку делает неавторизованного пользователя ''Подписчиком''.
+
|NetProspect||Подписка на рассылку делает неавторизованного пользователя ''Подписчиком''.
|-
 
!Временный
 
|Temp||Запись на курс [[Что такое Брацка Школа|Что такое Школа]] -- эта роль присваивается автоматически любому слушателю вводного курса временно, на три месяца.
 
 
|-
 
|-
 
!Клиент
 
!Клиент
|Client||Пожертвование или покупка в магазине [[Careerprise Shop]]
+
|NetCustomer||Пожертвование или покупка в магазине [[Careerprise Shop]]
 
|-
 
|-
!Кандидат
+
!Интересующийся
|Candidate||Завершение курса [[Что такое Брацка Школа|Что такое Школа]]
+
|NetConsumer||Запись на курс [[Брацка Вводка]] -- эта роль присваивается автоматически любому слушателю вводного курса временно, на шесть месяцев.
 
|-
 
|-
!Партнёр
+
!Студент
|Partner||Завершение семинара [[Как стать партнёром Брацкой Школы|Как стать партнёром]]
+
|CertStudent||Завершение курса [[Брацка Вводка]]
|-
 
!Волонтёр
 
|Volunteer||Завершение семинара [[Как стать волонтёром Брацкой Школы|Как стать волонтёром]]
 
 
|-
 
|-
!Студент
+
!Пользователь
|Enrolled||Завершение семинара [[Как трудоустроиться через Брацкую Школу|Как трудоустроиться]]
+
|CertUser||Завершение курса [[Брацки Техобзор]]
 
|-
 
|-
!Сотрудник
+
!Стажёр
|Associate||Завершение [[Учебная программа нового сотрудника Брацкой Школы|Учебной программы нового сотрудника]] -- эта роль присваивается автоматически любому выпускнику этого курса постоянно.
+
|CertFellow||Завершение семинара [[Выбор Профессии]]
 
|}
 
|}
  
 
===Ручное назначение===
 
===Ручное назначение===
::
+
:
::{|class="wikitable" width=100% style="text-align:center;"
+
:{|class="wikitable" width=100% style="text-align:center;"
 
!rowspan="2"|Приложение
 
!rowspan="2"|Приложение
 
|colspan="2"|[[#Роли|Роль]]
 
|colspan="2"|[[#Роли|Роль]]
Строка 99: Строка 119:
  
 
===Обычные и корпоративные карточки===
 
===Обычные и корпоративные карточки===
::Существует два типа учётных карточек:
+
:Существует два типа учётных карточек:
::#'''Обычные учётные карточки''', которые не содержат [[#Корпоративные псевдонимы|Корпоративных псевдонимов]], заводятся автоматически в один этап и могут дать доступ к некоторым, но не всем пользовательским приложениям;
+
:#'''Обычные учётные карточки''', которые не содержат [[Псевдоним пользователя Оплёта|Корпоративных псевдонимов]], заводятся автоматически в один этап и могут дать доступ к некоторым, но не всем пользовательским приложениям;
::#'''Корпоративные учётные карточки''', которые содержат всё, что обычные учётные карточки содержат и, в дополнение, хранят [[#Корпоративные псевдонимы|Корпоративные псевдонимы]]. Корпоративные карточки заводятся либо (1) автоматически в два этапа -- временные для участия в курсе [[Что такое Брацка Школа]] и постоянные после завершения этого курса, либо (2) вручную в один этап. Карточки этого типа нужны для доступа к [[Брацка Почта|Брацкой Почте]], [[Брацки Архив|Архиву]], а также служебным частям [[Брацки Портал|Портала]].
+
:#'''Корпоративные учётные карточки''', которые содержат всё, что обычные учётные карточки содержат и, в дополнение, хранят [[Псевдоним пользователя Оплёта|Корпоративные псевдонимы]], а также [[#Регистрационные имена пользователей|регистрационные имена]] и [[#Корпоративные имэйлы|корпоративные имэйлы]], основанные на них. Корпоративные карточки заводятся либо (1) автоматически в два этапа -- временные для участия в курсах [[Брацка Вводка]], [[Брацки Техобзор]] и постоянные после завершения этих курсов, либо (2) вручную в один этап. Карточки этого типа нужны для доступа к [[Брацка Пошта|Брацкой Поште]], [[Брацка Крынка|Брацкой Крынке]], а также служебным частям [[Брацка Справа|Брацкой Справы]].
  
 
===Методы регистрации===
 
===Методы регистрации===
::Регистрация новых пользователей, фактически, заведение новых учётных карточек этих пользователей, должна производиться двумя методами:
+
:Регистрация новых пользователей, фактически, заведение новых учётных карточек этих пользователей, должна производиться двумя методами:
::{|class="wikitable" width=100% style="text-align:center;"
+
:{|class="wikitable" width=100% style="text-align:center;"
 
|Метод регистрации
 
|Метод регистрации
 
!width=40%|Обычные учётные карточки!!Корпоративные учётные карточки
 
!width=40%|Обычные учётные карточки!!Корпоративные учётные карточки
Строка 119: Строка 139:
  
 
===Создание обычных карточек===
 
===Создание обычных карточек===
::*'''Вход через стороннюю идентификацию''': Если пользователь заходит в ''Облако'' через [[#Сторонняя|Стороннюю идентификацию]], ''Оплёт'':
+
:*'''Вход через стороннюю идентификацию''': Если пользователь заходит в ''Облако'' через [[#Сторонняя|Стороннюю идентификацию]], ''Оплёт'':
::*#Собирает информацию об имени пользователя и его электронном адресе;
+
:*#Собирает информацию об имени пользователя и его электронном адресе;
::*#Проверяет, существует ли такой пользователь в базе данных;
+
:*#Проверяет, существует ли такой пользователь в базе данных;
::*#Если пользователь не существует в базе, то ''Оплёт'' заводит новую учётную карточку;
+
:*#Если пользователь не существует в базе, то ''Оплёт'' заводит новую учётную карточку;
::*#Заводит пользователя на [[Брацка Учебка|Брацкой Учебке]], создаёт [[#Корпоративные псевдонимы|Корпоративный псевдоним]] и даёт доступ к курсу [[Что такое Брацка Школа]];
+
:*#Заводит пользователя на [[Брацка Учебка|Брацкой Учебке]], создаёт [[Псевдоним пользователя Оплёта|Корпоративный псевдоним]] и даёт доступ к курсу [[Брацка Вводка]];
::*#Отдаёт задание [[Брацка Почта|Брацкой Почте]] выслать пользователю сообщение о создании учётной карточки, доступе к курсу [[Что такое Брацка Школа]] и личному кабинету.
+
:*#Отдаёт задание [[Брацка Пошта|Брацкой Поште]] выслать пользователю сообщение о создании учётной карточки, доступе к курсу [[Брацка Вводка]] и личному кабинету.
::*'''Подписка на рассылки''': Если пользователь отдаёт свой имэйл в качестве заявки на подписку на рассылку на любом из вэб-сайтов [[Брацка Вэб-поддержка|Брацкой Вэб-поддержки]], ''Оплёт'':
+
:*'''Подписка на рассылки''': Если пользователь отдаёт свой имэйл в качестве заявки на подписку на рассылку на любом из вэб-сайтов [[Брацка Вебка|Брацкой Вебки]], ''Оплёт'':
::*#Проверяет, существует ли такой пользователь в базе данных;
+
:*#Проверяет, существует ли такой пользователь в базе данных;
::*#Если:
+
:*#Если:
::*#*Пользователь существует, то ''Оплёт'' добавляет ту рассылку, на которую подписался пользователь, к его учётной карточке;
+
:*#*Пользователь существует, то ''Оплёт'' добавляет ту рассылку, на которую подписался пользователь, к его учётной карточке;
::*#*Пользователь не существует в базе, то ''Оплёт'' заводит новую учётную карточку и добавляет к ней ту рассылку, на которую подписался новый пользователь;
+
:*#*Пользователь не существует в базе, то ''Оплёт'' заводит новую учётную карточку и добавляет к ней ту рассылку, на которую подписался новый пользователь;
::*#Заводит пользователя на [[Брацка Учебка|Брацкой Учебке]], создаёт [[#Корпоративные псевдонимы|Корпоративный псевдоним]], идентификатор и пароль, а также даёт доступ к курсу [[Что такое Брацка Школа]];
+
:*#Заводит пользователя на [[Брацка Учебка|Брацкой Учебке]], создаёт [[Псевдоним пользователя Оплёта|Корпоративный псевдоним]], идентификатор и пароль, а также даёт доступ к курсу [[Брацка Вводка]];
::*#Отдаёт задание [[Брацка Почта|Брацкой Почте]] выслать пользователю подтверждение подписки, сообщение о создании учётной карточки, доступе к курсу [[Что такое Брацка Школа]] и личному кабинету;
+
:*#Отдаёт задание [[Брацка Пошта|Брацкой Поште]] выслать пользователю подтверждение подписки, сообщение о создании учётной карточки, доступе к курсу [[Брацка Вводка]] и личному кабинету;
::*#В случае, если на [[Брацка Почта|Брацкую Почту]] приходит сообщение об:
+
:*#В случае, если на [[Брацка Пошта|Брацкую Пошту]] приходит сообщение об:
::*#*Отсутствии существования указанного пользователем имэйла, проверяет, есть ли на карточке другие записи и:
+
:*#*Отсутствии существования указанного пользователем имэйла, проверяет, есть ли на карточке другие записи и:
::*#*#Если другие записи есть, и одна из них -- имэйл, то ''Оплёт'' отдаёт задание [[Брацка Почта|Брацкой Почте]] выслать пользователю запрос правильности имэйла;
+
:*#*#Если другие записи есть, и одна из них -- имэйл, то ''Оплёт'' отдаёт задание [[Брацка Пошта|Брацкой Поште]] выслать пользователю запрос правильности имэйла;
::*#*#Если другие записи есть, но ни одна из них -- имэйл, то ''Оплёт'' просто помечает ошибку на учётной карточке;
+
:*#*#Если другие записи есть, но ни одна из них -- имэйл, то ''Оплёт'' просто помечает ошибку на учётной карточке;
::*#*#Если других записей нет, то ''Оплёт'' переводит учётную карточку в проблемные;
+
:*#*#Если других записей нет, то ''Оплёт'' переводит учётную карточку в проблемные;
::*#*Отказе от какой-либо рассылки, ''Оплёт'' удаляет эту рассылку с учётной карточки.
+
:*#*Отказе от какой-либо рассылки, ''Оплёт'' удаляет эту рассылку с учётной карточки.
::*'''Покупка в магазине''': Если пользователь совершил покупку в [[Careerprise Shop]], ''Оплёт'' заводит пользователя в качестве клиента [[Брацка Школа|Брацкой Школы]] на клиентском модуле [[Брацки Портал|Брацкого Портала]].
+
:*'''Покупка в магазине''': Если пользователь совершил покупку в [[Careerprise Shop]], ''Оплёт'' заводит пользователя в качестве клиента [[Брацка Школа|Брацкой Школы]] на клиентском модуле [[Брацка Справа|Брацкой Справы]].
::*'''Пожертвование''': Если пользователь совершил пожертвование в [[Careerprise Shop]], ''Оплёт'' заводит пользователя в качестве клиента [[Брацка Школа|Брацкой Школы]] на клиентском модуле [[Брацки Портал|Брацкого Портала]].
+
:*'''Пожертвование''': Если пользователь совершил пожертвование в [[Careerprise Shop]], ''Оплёт'' заводит пользователя в качестве клиента [[Брацка Школа|Брацкой Школы]] на клиентском модуле [[Брацка Справа|Брацкой Справы]].
  
 
===Корпоративные псевдонимы===
 
===Корпоративные псевдонимы===
::Корпоративные псевдонимы содержатся исключительно в карточках сотрудников. Они создаются по формуле Имя Фамилия, причём:
+
::''Основная вики-страница: [[Псевдоним пользователя Оплёта]]
::*Имя псевдонима должно быть нейтрально по роду: Валя, Воля, Женя, Зина, Кира, Лера, Мина, Мира, Мишель, Никита, Паша, Рома, Рося, Саша, Слава, Толя;
+
:Корпоративные псевдонимы создаются по формуле Имя Фамилия-На-Ых-Фамилия и прописываются в карточках сотрудников.
::*Фамилия псевдонима должна быть несклоняема: Амаду, Артмане, Белых, Бондарсо, Боссюэ, Бураго, Галуа, Гамарра, Ганди, Гёте, Гладких, Голсуорси, Грамши, Гретри, Грицких, Громыко, Гулиа, Гюго, Дебюсси, Дега, Делакруа, Джусойты, Дитрих, Доде, Долгих, Доливо, Дюма, Золя, Камю, Караджале, Карузо, Квитко, Клемансо, Корню, Короленко, Коротких, Крученых, Кудреватых, Лансере, Лану, Ларошфуко, Леонкавалло, Лонгфелло, Люка, Люлли, Макаренко, Манцу, Маринеску, Марло, Мегрэ, Мейе, Мийо, Модильяни, Моравиа, Моруа, Мюссе, Навои, Неру, Нобиле, Орджоникидзе, Петипа, Пикассо, Ремесло, Руставели, Рыжих, Седых, Семашко, Тарле, Товчих, Труайя, Ферма, Франко, Фрейндлих, Фурье, Хасхачих, Ходячих, Чабукиани, Черных, Шабрие, Шамиссо, Шелли, Шепитько, Шоу, Энеску, Эредиа, Эриа, Эрлих.
+
 
 +
===Регистрационные имена пользователей===
 +
:Регистрационные имена пользователей заводятся исключительно английскими буквами на основе [[Псевдоним пользователя Оплёта|псевдонима]] по следующему принципу: полное имя + точка + минимальное количество букв фамилии на -ых, достаточное для соблюдения условия уникальности. Например, <code>mina.n</code>
 +
 
 +
===Корпоративные имэйлы===
 +
:Корпоративные имэйлы пользователей заводятся на основе [[#Регистрационные имена пользователей|Регистрационного имени пользователя]] по следующему принципу: [[#Регистрационные имена пользователей|регистрационное&#8209;имя&#8209;пользователя]]@opplet.net. Например, <code>mina.n@opplet.net</code>
  
 
===Запись на вводный курс===
 
===Запись на вводный курс===
::Регистрация через запись на вводный курс -- единственная, по которой пользователь получает временную регистрацию, которая действительна в течение 3-х месяцев. Если пользователь не окончил курс в течение этого времени, то его регистрация аннулируется. Если пользователь на любом из вэб-сайтов [[Брацка Вэб-поддержка|Брацкой Вэб-поддержки]] кликает на кнопки типа "Трудоустроиться", "Выучиться", "Стать волонтёром", "Стать партнёром" и так далее, ''Оплёт'':
+
:Регистрация через запись на вводный курс -- единственная регистрация, по которой пользователь получает временный статус, который действителен в течение 3-х месяцев. Если пользователь не окончил курс в течение этого времени, то его регистрация аннулируется. Если пользователь на любом из вэб-сайтов [[Брацка Вебка|Брацкой Вебки]] кликает на кнопки типа "Трудоустроиться", "Выучиться", "Стать волонтёром", "Стать партнёром" и так далее, ''Оплёт'':
::#Заводит временную учётную карточку со сведениями о том, (1) какая кнопка была нажата и (2) какой язык был использован;
+
:#Заводит временную учётную карточку со сведениями о том, (1) какая кнопка была нажата и (2) какой язык был использован;
::#Заводит его пользователем [[Брацка Учебка|Брацкой Учебки]], [[Брацка Сессия|Брацкой Сессии]] и [[Брацко Видео|Брацкого Видео]];
+
:#В принудительном порядке предлагает пользователю ввести тот логин и пароль, который будет удобен этому пользователю;
::#Загружает страницу "Добро пожаловать в Брацкую Школу. Чтобы сохранить в тайне личные данные, все участники пользуются корпоративными псевдонимами. Вы зачислены на вводный курс "Что такое Брацка Школа" под псевдонимом ''Женя Семашко''" с тремя кнопками: "Начать курс под этим псевдонимом", "Заменить этот псевдоним на другой" и "Я придумаю свой псевдоним сам";
+
:#В добровольном порядке предлагает пользователю ввести внешний имэйл;
::#Если пользователь выбирает:
+
:#Проверяет, не является ли пользователь роботом;
::#*"Заменить этот псевдоним на другой", то ''Оплёт'' создаёт новый псевдоним, переписывает поле "Псевдоним" учётной карточки и загружает новую страницу "Добро пожаловать в Брацкую Школу...";
+
:#Заводит его пользователем [[Брацка Учебка|Брацкой Учебки]], [[Брацки Жици]] и [[Брацка Бачка|Брацкой Бачки]];
::#*"Начать курс под этим псевдонимом", то ''Оплёт'' создаёт идентификатор и пароль, затем проверяет способ идентификации и учётную карточку на наличие электронного адреса. Если карточка:
+
:#Создаёт идентификатор и пароль, затем проверяет способ идентификации и учётную карточку на наличие электронного адреса. Если карточка:
::#*#Содержит адрес и пользователь использовал стороннюю идентификацию, то ''Оплёт'' отдаёт задание [[Брацка Почта|Брацкой Почте]] выслать имэйл с информацией об идентификаторе и пароле на имеющийся адрес, зачисляет и перенаправляет этого пользователя на вводную лекцию ''Курса'';
+
:#*Содержит адрес и пользователь использовал стороннюю идентификацию, то ''Оплёт'' отдаёт задание [[Брацка Пошта|Брацкой Поште]] выслать имэйл с информацией об идентификаторе и пароле на имеющийся адрес, зачисляет и перенаправляет этого пользователя на вводную лекцию ''Курса'';
::#*#Содержит адрес и пользователь использовал внутреннюю идентификацию, то ''Оплёт'' загружает такую страницу или зону: "Для Вас создан временный идентификатор -- zhenjas -- и пароль -- 01ZhenjaS20, которые будут актуальны в течение следующих 3х месяцев, которые даются на завершение курса". Для Вашего удобства, информация об идентификаторе и пароле отправлены на тот электронный адрес, который указан в Вашем личном кабинете," отдаёт задание [[Брацка Почта|Брацкой Почте]] выслать имэйл с информацией об идентификаторе и пароле на имеющийся адрес, зачисляет и перенаправляет этого пользователя на вводную лекцию ''Курса'';
+
:#*Содержит адрес и пользователь использовал внутреннюю идентификацию, то ''Оплёт'' загружает такую страницу или зону: "Для Вас создан временный идентификатор -- zhenjas -- и пароль -- 01ZhenjaS20, которые будут актуальны в течение следующих 3х месяцев, которые даются на завершение курса". Для Вашего удобства, информация об идентификаторе и пароле отправлены на тот электронный адрес, который указан в Вашем личном кабинете," отдаёт задание [[Брацка Пошта|Брацкой Поште]] выслать имэйл с информацией об идентификаторе и пароле на имеющийся адрес, зачисляет и перенаправляет этого пользователя на вводную лекцию ''Курса'';
::#*#Не содержит адрес, то ''Оплёт'' загружает такую страницу или зону: "Для Вас создан временный идентификатор -- zhenjas -- и пароль -- 01ZhenjaS20, которые будут актуальны в течение следующих 3х месяцев, которые даются на завершение курса. Пожалуйста, сохраните этот идентификатор и пароль или отправьте их себе на электронную почту." с двумя кнопками: "Я сохранил это идентификатор и пароль" и "Отправьте идентификатор и пароль на мою электронную почту";
+
:#*Не содержит адрес, то ''Оплёт'' загружает такую страницу или зону: "Для Вас создан временный идентификатор -- zhenjas -- и пароль -- 01ZhenjaS20, которые будут актуальны в течение следующих 3х месяцев, которые даются на завершение курса. Пожалуйста, сохраните этот идентификатор и пароль или отправьте их себе на электронную почту." с двумя кнопками: "Я сохранил это идентификатор и пароль" и "Отправьте идентификатор и пароль на мою электронную почту";
::#*"Я придумаю свой псевдоним сам", то ''Оплёт'' предоставляет пользователю поля "Имя-псевдоним", "Фамилия-псевдоним", после заполнения которых, ''Оплёт'' создаёт идентификатор, пароль и загружает страницу "Ваш идентификатор -- zhenjas; Ваш пароль -- 01ZhenjaS20. Пожалуйста, сохраните этот идентификатор и пароль или отправьте их себе на электронную почту. Идентификатор и пароль будут актуальны в течение следующих 3х месяцев, которые даются на завершение курса." с двумя кнопками: "Я сохранил это идентификатор и пароль" и "Отправьте идентификатор и пароль на мою электронную почту";
+
:#*Если пользователь выбирает:
::#Если пользователь выбирает:
+
:#*#"Отправьте идентификатор и пароль на мою электронную почту", то ''Оплёт'' запрашивает имэйл-адрес пользователя, отдаёт задание [[Брацка Пошта]] выслать имэйл-подтверждение на введённый адрес, зачисляет и перенаправляет этого пользователя на вводную лекцию ''Курса'';
::#*"Отправьте идентификатор и пароль на мою электронную почту", то ''Оплёт'' запрашивает имэйл-адрес пользователя, отдаёт задание [[Брацка Почта]] выслать имэйл-подтверждение на введённый адрес, зачисляет и перенаправляет этого пользователя на вводную лекцию ''Курса'';
+
:#*#"Я сохранил это идентификатор и пароль", то ''Оплёт'' зачисляет и перенаправляет этого пользователя на вводную лекцию ''Курса''.
::#*"Я сохранил это идентификатор и пароль", то ''Оплёт'' зачисляет и перенаправляет этого пользователя на вводную лекцию ''Курса''.
+
:#Курс начинается с текста "Добро пожаловать в Брацкую Школу. Чтобы сохранить в тайне личные данные, все участники пользуются корпоративными псевдонимами. Вы зачислены на вводный курс, [[Брацка Вводка]], под псевдонимом ''Женя Семашко''. Если Вы хотите поменять имя, повторите процедуру регистрации с начала."
  
 
===Ручная регистрация===
 
===Ручная регистрация===
::Любой пользователь может быть создан вручную, а не только в автоматическом режиме.
+
:Любой пользователь может быть создан вручную, а не только в автоматическом режиме.
  
 
==Поля учётных карточек==
 
==Поля учётных карточек==
Строка 169: Строка 194:
  
 
===Необязательные===
 
===Необязательные===
::{|class="wikitable" width=100% style="text-align:center;"
+
:{|class="wikitable" width=100% style="text-align:center;"
 
!width=40%|Поле!!Тип!!Примечание
 
!width=40%|Поле!!Тип!!Примечание
 
|-
 
|-
Строка 176: Строка 201:
 
|'''Фамилия''' (если необходима для документов об окончании)
 
|'''Фамилия''' (если необходима для документов об окончании)
 
|-
 
|-
|'''Имэйл''' (если есть желание получать уведомления)||Текст со значком @ и как минимум одной точкой после него
+
|'''Внешний имэйл''' (если есть желание получать уведомления)||Текст со значком @ и как минимум одной точкой после него
 
|-
 
|-
 
|'''Язык(и)'''||Выбор из списка||Автоматически вписывается и сохраняется язык входа, который может быть изменён или добавлен пользователем вручную.
 
|'''Язык(и)'''||Выбор из списка||Автоматически вписывается и сохраняется язык входа, который может быть изменён или добавлен пользователем вручную.
Строка 182: Строка 207:
  
 
===Изменяемые===
 
===Изменяемые===
::{|class="wikitable" width=100% style="text-align:center;"
+
:{|class="wikitable" width=100% style="text-align:center;"
 
!Поле!!Примечание
 
!Поле!!Примечание
 
|-
 
|-
|'''Корпоративный псевдоним''' (поменять?)||Псевдоним с возможностью генерации другого
+
|'''Логин''' (изменить?)||rowspan="2"|Поля с возможностью изменения
 +
|-
 +
|'''Пароль''' (изменить?)
 
|-
 
|-
 
|'''Завершённые курсы''' (убрать?)||rowspan="3"|Список с возможностью исключения
 
|'''Завершённые курсы''' (убрать?)||rowspan="3"|Список с возможностью исключения
Строка 195: Строка 222:
 
|'''Рассылки''' (изменить?)||Список с возможностью исключения и добавления
 
|'''Рассылки''' (изменить?)||Список с возможностью исключения и добавления
 
|}
 
|}
 
  
 
===Неизменяемые===
 
===Неизменяемые===
::{|class="wikitable" width=100% style="text-align:center;"
+
:{|class="wikitable" width=100% style="text-align:center;"
 
!Поле!!Примечание
 
!Поле!!Примечание
 
|-
 
|-
|'''Идентификационный номер пользователя'''||rowspan="3"|Генерируется автоматически и проверяется на уникальность
+
|'''Идентификационный номер пользователя'''||Генерируется автоматически и проверяется на уникальность
 +
|-
 +
|'''[[#Регистрационные имена пользователей|Регистрационное имя пользователя]]'''||Генерируется автоматически по логике [[#Регистрационные имена пользователей|Регистрационных имён пользователей]]
 
|-
 
|-
|'''Логин'''
+
|'''[[Псевдоним пользователя Оплёта]]'''||Генерируется автоматически по логике [[Псевдоним пользователя Оплёта|Псевдонимов пользователя Оплёта]]
 
|-
 
|-
|'''Пароль'''
+
|'''Корпоративный имэйл'''||Генерируется автоматически по логике [[#Корпоративные имэйлы|Корпоративных имэйлов]]
 
|}
 
|}
  
==Ведение личного кабинета==
+
==Пользовательский интерфэйс==
Личный кабинет является той частью учётной карточки пользователя, к которой пользователь имеет доступ и право редактирования.
+
С живыми пользователями, ''Оплёт'' сообщается тремя путями:
 +
#Через [[#Пользовательский интерфэйс|интерфэйс личного кабинета]];
 +
#Почтовый сервис. Пока настроен [[sendmail]], но почта приходит в спам. Установлен, но не настроен [[Postfix]]. Задача настройки пока отложена. На полноценную почту планируется позже нанять специалиста. Возможно, экономически целесообразнее будет собрать [[Брацка Пошта|Брацкую Пошту]].
 +
#Для тех пользователей, которые пользуются социальным логином, настроен [[OAuth 2.0]] протокол. В данный момент есть проблемы прописывания "социальных пользователей" в ''Оплёте''.
 +
 
 +
Незарегистрированный пользователь видит только титульную страницу:
 +
*На шапке слева -- Opplet; справа -- SignUp (клик регистрирует пользователя в роли Временный);
 +
*В основном поле -- два поля Login и Password;
 +
*В подвале слева -- © Opplet [текущий год]; справа -- Powered by Yii Framework
 +
 
 +
===Ведение личного кабинета===
 +
:Личный кабинет является той частью учётной карточки пользователя, к которой пользователь имеет доступ и право редактирования.
  
 
===Интересы===
 
===Интересы===
::''Оплёт'' собирает информацию о поведении пользователя, особенно, какие кнопки пользователь выбирает находясь на ''Облаке'', для формирования центра действий именуемого "Интересы". Центр действий включает в себя 6 групп:
+
:''Оплёт'' собирает информацию о поведении пользователя, особенно, какие кнопки пользователь выбирает находясь на ''Облаке'', для формирования центра действий именуемого "Интересы". Центр действий включает в себя 6 групп:
::#Учёба и трудоустройство
+
:#Учёба и трудоустройство
::#Трудоустройство (без учёбы)
+
:#Трудоустройство (без учёбы)
::#Волонтёрство
+
:#Волонтёрство
::#Партнёрство
+
:#Партнёрство
::#Учёба (без трудоустройства)
+
:#Учёба (без трудоустройства)
::#Благотворительность
+
:#Благотворительность
  
::Активные группы занимают отдельные зоны и включают кнопку "Сделать зону неактивной"; неактивные -- даны иконками под общим заголовком ''Ещё''.
+
:Активные группы занимают отдельные зоны и включают кнопку "Сделать зону неактивной"; неактивные -- даны иконками под общим заголовком ''Ещё''.
  
 
===Личные данные===
 
===Личные данные===
::Личные данные включают в себя следующие поля:
+
:Личные данные включают в себя следующие поля:
::#Имя (как должно появляться на документах об окончании)
+
:#Имя (как должно появляться на документах об окончании)
::#Фамилия (как должна появляться на документах об окончании)
+
:#Фамилия (как должна появляться на документах об окончании)
::#[[#Корпоративные псевдонимы|Корпоративный псевдоним]]
+
:#[[Псевдоним пользователя Оплёта|Корпоративный псевдоним]]
::#Имэйл
+
:#Имэйл
  
 
===Приложения===
 
===Приложения===
::Приложения, которые доступны для пользователя, зависят от действий пользователя согласно [[#Автоматическое назначение ролей|Автоматическому назначению ролей]], если доступы не установлены вручную. Если пользовательские приложения предоставляют пользователям доступ к личным кабинетам внутри приложений, то ссылки от личного кабинета идут на них.
+
:Приложения, которые доступны для пользователя, зависят от действий пользователя согласно [[#Автоматическое назначение ролей|Автоматическому назначению ролей]], если доступы не установлены вручную. Если пользовательские приложения предоставляют пользователям доступ к личным кабинетам внутри приложений, то ссылки от личного кабинета идут на них.
  
 
===Языки===
 
===Языки===
::''Оплёт'' собирает информацию о том, какие языки выбирает пользователь и об языках его операционных систем пользователя, для формирования центра управления языками.
+
:''Оплёт'' собирает информацию о том, какие языки выбирает пользователь и об языках его операционных систем пользователя, для формирования центра управления языками.
  
 
===Рассылки===
 
===Рассылки===
::''Оплёт'' управляет данными о том, на какие рассылки подписан пользователь.
+
:''Оплёт'' управляет данными о том, на какие рассылки подписан пользователь.
 
 
==Идентификация==
 
===Внутренняя===
 
::Сейчас идентификация пользователей идёт через [[simpleSAMLphp]], что сильно ограничивает возможности системы. Будущая идентификация должна быть построена на имеющемся в наличии программном обеспечении:
 
::*В случае общественного облака может быть использован [[Amazon Cognito]] в [[AWS]] или [[Microsoft Azure Active Directory]] в [[Microsoft Azure]];
 
::*В случае использования частного облака, будет задействован [[OpenStack Keystone]] с выводом на [[LDAP]]. Keystone - это служба OpenStack, которая обеспечивает аутентификацию [[API]]-клиента, обнаружение сервисов и распределенную авторизацию с несколькими арендаторами, внедряя [[OpenStack Identity API]]. Он поддерживает [[LDAP]], [[OAuth]], [[OpenID Connect]], [[SAML]] и [[SQL]]. Keystone на самом деле не реализует никаких функций управления пользователями; скорее, он предоставляет подключаемые интерфейсы, чтобы организации могли использовать свои текущие службы аутентификации или выбирать из множества систем управления идентификацией, которые находятся на рынке.
 
 
 
===Сторонняя===
 
::Пользователи, не являющиеся сотрудниками [[Брацка Школа|Брацкой Школы]], должны иметь возможность входа в ''Облако'' через идентификацию в социальных сетях [[social login]], например, [[Facebook Connect]], и других сервисах, пользующихся [[OpenID Connect]].
 
 
 
::Используя стороннюю идентификацию, сотрудники не могут заходить на [[Брацка Почта|Брацкую Почту]], [[Брацки Архив|Архив]], а также служебные части [[Брацки Портал|Портала]].
 
  
 
==Авторизация доступов==
 
==Авторизация доступов==
 
Авторизация пользователей разрешает доступы:
 
Авторизация пользователей разрешает доступы:
#'''[[#Автоматическая авторизация|Автоматически]]''' к пользовательским ресурсам, например, к [[Брацка Почта|Брацкой Почте]] или [[Брацка Сессия|Брацкой Сессии]]. '''[[#Завершение вводного курса|Завершение вводного курса]]''' необходимо для [[#Автоматическая авторизация|автоматической авторизации]];
+
#'''[[#Автоматические доступы|Автоматические]]''' к пользовательским ресурсам, например, к [[Брацка Пошта|Брацкой Поште]] или [[Брацки Жици]]. '''[[#Завершение вводного курса|Завершение вводного курса]]''' необходимо для [[#Автоматические доступы|автоматических доступов]];
#'''[[#Ручная авторизация|Вручную]]''' к административным ресурсам, например, к отдельным проектам [[Брацки Архив|Брацкого Архива]].
+
#'''[[#Ручные доступы|Ручные]]''' к административным ресурсам, например, к отдельным проектам [[Брацка Крынка|Брацкой Крынки]].
  
 
===Завершение вводного курса===
 
===Завершение вводного курса===
::Если в течение 3х месяцев пользователь:
+
:Если в течение 3х месяцев пользователь:
::*Успешно завершает ''Курс'', то ''Оплёт'':
+
:*Успешно завершает ''Курс'', то ''Оплёт'':
::*#Заводит его пользователем [[Брацка Справочна|Брацкой Справочной]] и зачисляет на семинар [[Как трудоустроиться через Брацкую Школу]];
+
:*#Заводит его пользователем [[Брацка Правка|Брацкой Правки]] и зачисляет на семинар [[Выбор Профессии]];
::*#Если пользователь при первоначальной записи выбирал кнопку:
+
:*#Если пользователь при первоначальной записи выбирал кнопку:
::*#*"Трудоустроиться", то ''Оплёт'' загружает страницу "Поздравляем с успешным завершением курса. Вы выражали интерес к трудоустройству. Вы желаете трудоустроиться через Брацкую Школу, не платя за услуги из своего кармана, или заказать платные услуги по трудоустройству? Кстати, если Ваш интерес поменялся, в [[#Личный кабинет|Личном кабинете]] Вы всегда можете изменить своё решение." с кнопками "Трудоустроиться через Брацкую Школу", "Заказать платные услуги по трудоустройству" и "Что-то ещё";
+
:*#*"Трудоустроиться", то ''Оплёт'' загружает страницу "Поздравляем с успешным завершением курса. Вы выражали интерес к трудоустройству. Вы желаете трудоустроиться через Брацкую Школу, не платя за услуги из своего кармана, или заказать платные услуги по трудоустройству? Кстати, если Ваш интерес поменялся, в [[#Личный кабинет|Личном кабинете]] Вы всегда можете изменить своё решение." с кнопками "Трудоустроиться через Брацкую Школу", "Заказать платные услуги по трудоустройству" и "Что-то ещё";
::*#*#Если пользователь выбрал кнопку: "Трудоустроиться через Брацкую Школу", то ''Оплёт'' обновляет информацию учётной карточки. Регистрация в этом случае следует правилам описанным на вики-странице [[Трудоустройство через Брацкую Школу]]. ''Оплёт'' перенаправляет этого пользователя на семинар [[Как трудоустроиться через Брацкую Школу]]. После завершения этого семинара, ''Оплёт'' даёт пользователю доступ к [[Брацка Вэб-поддержка|Брацкой Вэб-поддержке]], [[Брацка Почта|Брацкой Почте]] и [[Брацки Портал|Брацкому Порталу]], а также зачисляет его в слушатели [[Учебная программа нового сотрудника Брацкой Школы|Учебной программы нового сотрудника Брацкой Школы]];
+
:*#*#Если пользователь выбрал кнопку: "Трудоустроиться через Брацкую Школу", то ''Оплёт'' обновляет информацию учётной карточки. Регистрация в этом случае следует правилам описанным на вики-странице [[Лестница к Профессии]]. ''Оплёт'' перенаправляет этого пользователя на семинар [[Выбор Профессии]]. После завершения этого семинара, ''Оплёт'' даёт пользователю доступ к [[Брацка Вебка|Брацкой Вебке]], [[Брацка Пошта|Брацкой Поште]] и [[Брацка Справа|Брацкой Справе]], а также зачисляет его в слушатели [[Семь Технологических Искусств]] и [[Семь Административных Искусств]];
::*#*#Если пользователь выбрал кнопку: "Заказать платные услуги по трудоустройству", то ''Оплёт'' обновляет информацию учётной карточки и перенаправляет этого пользователя в [[Careerprise Shop]];
+
:*#*#Если пользователь выбрал кнопку: "Заказать платные услуги по трудоустройству", то ''Оплёт'' обновляет информацию учётной карточки и перенаправляет этого пользователя в [[Careerprise Shop]];
::*#*#Если пользователь выбрал кнопку: "Что-то ещё", то ''Оплёт'' обновляет информацию учётной карточки и перенаправляет этого пользователя в [[#Личный кабинет|Личный кабинет]];
+
:*#*#Если пользователь выбрал кнопку: "Что-то ещё", то ''Оплёт'' обновляет информацию учётной карточки и перенаправляет этого пользователя в [[#Личный кабинет|Личный кабинет]];
::*#*"Выучиться", то ''Оплёт'' загружает страницу "Поздравляем с успешным завершением курса. Вы желаете совмещать учёбу и работу в Брацкой Школе, не платя за услуги из своего кармана, или заказать платные услуги образования? Кстати, если Ваш интерес поменялся, в [[#Личный кабинет|Личном кабинете]] Вы всегда можете изменить своё решение." с кнопками "Учиться и работать в Брацкой Школе", "Заказать платные услуги образования", "Что-то ещё";
+
:*#*"Выучиться", то ''Оплёт'' загружает страницу "Поздравляем с успешным завершением курса. Вы желаете совмещать учёбу и работу в Брацкой Школе, не платя за услуги из своего кармана, или заказать платные услуги образования? Кстати, если Ваш интерес поменялся, в [[#Личный кабинет|Личном кабинете]] Вы всегда можете изменить своё решение." с кнопками "Учиться и работать в Брацкой Школе", "Заказать платные услуги образования", "Что-то ещё";
::*#*#Если пользователь выбрал кнопку: "Учиться и работать в Брацкой Школе", то ''Оплёт'' обновляет информацию учётной карточки и перенаправляет его на семинар [[Как трудоустроиться через Брацкую Школу]]. После завершения этого семинара, ''Оплёт'' даёт пользователю доступ к [[Брацка Вэб-поддержка|Брацкой Вэб-поддержке]], [[Брацка Почта|Брацкой Почте]] и [[Брацки Портал|Брацкому Порталу]], а также зачисляет его в слушатели [[Учебная программа нового сотрудника Брацкой Школы|Учебной программы нового сотрудника Брацкой Школы]];
+
:*#*#Если пользователь выбрал кнопку: "Учиться и работать в Брацкой Школе", то ''Оплёт'' обновляет информацию учётной карточки и перенаправляет его на семинар [[Выбор Профессии]]. После завершения этого семинара, ''Оплёт'' даёт пользователю доступ к [[Брацка Вебка|Брацкой Вебке]], [[Брацка Пошта|Брацкой Поште]] и [[Брацка Справа|Брацкой Справе]], а также зачисляет его в слушатели [[Семь Технологических Искусств]] и [[Семь Административных Искусств]];
::*#*#Если пользователь выбрал кнопку: "Заказать платные услуги образования", то ''Оплёт'' обновляет информацию учётной карточки и перенаправляет этого пользователя на [[Careerprise Shop]];
+
:*#*#Если пользователь выбрал кнопку: "Заказать платные услуги образования", то ''Оплёт'' обновляет информацию учётной карточки и перенаправляет этого пользователя на [[Careerprise Shop]];
::*#*#Если пользователь выбрал кнопку: "Что-то ещё", то [[Оплёт]] обновляет информацию учётной карточки и перенаправляет этого пользователя в [[#Личный кабинет|Личный кабинет]];
+
:*#*#Если пользователь выбрал кнопку: "Что-то ещё", то [[Оплёт]] обновляет информацию учётной карточки и перенаправляет этого пользователя в [[#Личный кабинет|Личный кабинет]];
::*#*"Стать волонтёром", то ''Оплёт'' загружает страницу "Поздравляем с успешным завершением курса. Вы выражали желание стать волонтёром [[Брацка Школа|Брацкой Школы]], потому мы зачисляем Вас на семинар [[Как стать волонтёром Брацкой Школы]]. Кстати, если Ваш интерес поменялся, в [[#Личный кабинет|Личном кабинете]] Вы всегда можете изменить своё решение." с кнопками "Зачислить на семинар "Как стать волонтёром"", "Что-то ещё";
+
:*#*"Стать волонтёром", то ''Оплёт'' загружает страницу "Поздравляем с успешным завершением курса. Вы выражали желание стать волонтёром [[Брацка Школа|Брацкой Школы]], потому мы зачисляем Вас на семинар [[Как стать волонтёром Брацкой Школы]]. Кстати, если Ваш интерес поменялся, в [[#Личный кабинет|Личном кабинете]] Вы всегда можете изменить своё решение." с кнопками "Зачислить на семинар "Как стать волонтёром"", "Что-то ещё";
::*#*#Если пользователь выбрал кнопку: "Зачислить на семинар "Как стать волонтёром"", то ''Оплёт'' перенаправляет его на семинар [[Как стать волонтёром Брацкой Школы]]. После завершения этого семинара, ''Оплёт'' даёт пользователю доступ к [[Брацка Почта|Брацкой Почте]] и [[Брацки Портал|Брацкому Порталу]], а также заводит его в качестве кандидата в волонтёры [[Брацка Школа|Брацкой Школы]] на рекрутинговом модуле [[Брацки Портал|Брацкого Портала]];
+
:*#*#Если пользователь выбрал кнопку: "Зачислить на семинар "Как стать волонтёром"", то ''Оплёт'' перенаправляет его на семинар [[Как стать волонтёром Брацкой Школы]]. После завершения этого семинара, ''Оплёт'' даёт пользователю доступ к [[Брацка Пошта|Брацкой Поште]] и [[Брацка Справа|Брацкой Справе]], а также заводит его в качестве кандидата в волонтёры [[Брацка Школа|Брацкой Школы]] на рекрутинговом модуле [[Брацка Справа|Брацкой Справы]];
::*#*#Если пользователь выбрал кнопку: "Что-то ещё", то ''Оплёт'' обновляет информацию учётной карточки и перенаправляет этого пользователя в [[#Личный кабинет|Личный кабинет]];
+
:*#*#Если пользователь выбрал кнопку: "Что-то ещё", то ''Оплёт'' обновляет информацию учётной карточки и перенаправляет этого пользователя в [[#Личный кабинет|Личный кабинет]];
::*#*"Стать партнёром", то ''Оплёт'' загружает страницу "Поздравляем с успешным завершением курса. Вы выражали желание стать партнёром [[Брацка Школа|Брацкой Школы]], потому мы зачисляем Вас на семинар [[Как стать партнёром Брацкой Школы]]. Партнёром может быть любой работодатель, поставщик услуг по подготовке кадров и рекрутингу или любое иное лицо, заинтересованное в развитии Брацкой Школы. Кстати, если Ваш интерес поменялся, в [[#Личный кабинет|Личном кабинете]] Вы всегда можете изменить своё решение." с кнопками "Зачислить на семинар "Как стать партнёром"", "Что-то ещё";
+
:*#*"Стать партнёром", то ''Оплёт'' загружает страницу "Поздравляем с успешным завершением курса. Вы выражали желание стать партнёром [[Брацка Школа|Брацкой Школы]], потому мы зачисляем Вас на семинар [[Как стать партнёром Брацкой Школы]]. Партнёром может быть любой работодатель, поставщик услуг по подготовке кадров и рекрутингу или любое иное лицо, заинтересованное в развитии Брацкой Школы. Кстати, если Ваш интерес поменялся, в [[#Личный кабинет|Личном кабинете]] Вы всегда можете изменить своё решение." с кнопками "Зачислить на семинар "Как стать партнёром"", "Что-то ещё";
::*#*#Если пользователь выбрал кнопку: "Зачислить на семинар "Как стать партнёром"", то ''Оплёт'' перенаправляет его на семинар [[Как стать партнёром Брацкой Школы]]. После завершения этого семинара, ''Оплёт'' заводит пользователя в качестве кандидата в партнёры [[Брацка Школа|Брацкой Школы]] на клиентском модуле [[Брацки Портал|Брацкого Портала]];
+
:*#*#Если пользователь выбрал кнопку: "Зачислить на семинар "Как стать партнёром"", то ''Оплёт'' перенаправляет его на семинар [[Как стать партнёром Брацкой Школы]]. После завершения этого семинара, ''Оплёт'' заводит пользователя в качестве кандидата в партнёры [[Брацка Школа|Брацкой Школы]] на клиентском модуле [[Брацка Справа|Брацкой Справы]];
::*#*#Если пользователь выбрал кнопку: "Что-то ещё", то ''Оплёт'' обновляет информацию учётной карточки и перенаправляет этого пользователя в [[#Личный кабинет|Личный кабинет]].
+
:*#*#Если пользователь выбрал кнопку: "Что-то ещё", то ''Оплёт'' обновляет информацию учётной карточки и перенаправляет этого пользователя в [[#Личный кабинет|Личный кабинет]].
::*Не завершает ''Курс'' и:
+
:*Не завершает ''Курс'' и:
::*#Идентифицировался внутренне, то ''Оплёт'' удаляет его учётную карточку;
+
:*#Идентифицировался внутренне, то ''Оплёт'' удаляет его учётную карточку;
::*#Идентифицировался сторонне, то ''Оплёт'' оставляет его учётную карточку актуальной, но исключает из ''Курса'' и высылает соответствующее сообщение на электронный адрес.
+
:*#Идентифицировался сторонне, то ''Оплёт'' оставляет его учётную карточку актуальной, но исключает из ''Курса'' и высылает соответствующее сообщение на электронный адрес.
  
===Автоматическая авторизация===
+
===Автоматические доступы===
::{|class="wikitable" width=100% style="text-align:center;"
+
:{|class="wikitable" width=100% style="text-align:center;"
![[#Роли|Роль]]!!''Оплёт''!![[Брацка Учебка|Учебка]]!![[Брацка Справочна|Справочна]]!![[Брацко Видео|Видео]]!![[Брацка Сессия|Сессия]]!![[Брацки Портал|Портал]]!![[Брацка Почта|Почта]]!![[Брацка Вэб-поддержка|Вэб]]!![[Брацки Архив|Архив]]
+
![[#Роли|Роль]]!!''Оплёт''!![[Брацка Учебка|Учебка]]!![[Брацка Правка|Правка]]!![[Брацка Бачка|Бачка]]!![[Брацки Жици|Жици]]!![[Брацка Справа|Справа]]!![[Брацка Пошта|Пошта]]!![[Брацка Вебка|Вебка]]!![[Брацка Крынка|Крынка]]
 
|-
 
|-
 
|[[#Роли|Неавторизованный]]
 
|[[#Роли|Неавторизованный]]
Строка 288: Строка 316:
 
|-
 
|-
 
|[[#Роли|Подписчик]]
 
|[[#Роли|Подписчик]]
|rowspan="7"|Любой имеет доступ к личному кабинету||rowspan="2"|Доступ к курсу [[Что такое Брацка Школа|Что такое Школа]]||rowspan="7"|Доступ в качестве пользователя||rowspan="7"|Доступ в качестве пользователя
+
|rowspan="7"|Любой имеет доступ к личному кабинету||rowspan="2"|Доступ к курсу [[Брацка Вводка]]||rowspan="7"|Доступ в качестве пользователя||rowspan="7"|Доступ в качестве пользователя
 
|-
 
|-
 
|[[#Роли|Клиент]]
 
|[[#Роли|Клиент]]
|rowspan="5"|Доступ в качестве клиента||colspan="3" rowspan="5"|Нет доступа далее входной страницы
+
|rowspan="5"|Доступ в качестве клиента||colspan="3" rowspan="4"|Нет доступа далее входной страницы
 
|-
 
|-
 
|[[#Роли|Кандидат]]
 
|[[#Роли|Кандидат]]
|Доступ к семинарам [[Как стать партнёром Брацкой Школы|Как стать партнёром]], [[Как стать волонтёром Брацкой Школы|волонтёром]] и [[Как трудоустроиться через Брацкую Школу|трудоустроиться]]
+
|Доступ к семинарам [[Как стать партнёром Брацкой Школы|Как стать партнёром]], [[Как стать волонтёром Брацкой Школы|волонтёром]] и [[Выбор Профессии|трудоустроиться]]
 
|-
 
|-
|[[#Роли|Партнёр]]
+
|[[#Роли|Студент]]
|rowspan="3"|Доступ к [[Учебная программа нового сотрудника Брацкой Школы|Учебной программе нового сотрудника]]
+
|rowspan="3"|Доступ к [[Семь Технологических Искусств]] и [[Семь Административных Искусств]]
 
|-
 
|-
 
|[[#Роли|Волонтёр]]
 
|[[#Роли|Волонтёр]]
 
|-
 
|-
|[[#Роли|Студент]]
+
|[[#Роли|Партнёр]]
 +
|colspan="3"|Доступ в качестве пользователя
 
|-
 
|-
 
|[[#Роли|Сотрудник]]||Доступ к любым курсам||colspan="4"|Доступ в качестве пользователя
 
|[[#Роли|Сотрудник]]||Доступ к любым курсам||colspan="4"|Доступ в качестве пользователя
 
|}
 
|}
  
===Ручная авторизация===
+
===Ручные доступы===
::Любые роли могут быть назначены в ручном режиме согласно иерархии ролей ''Оплёта''.
+
:Любые роли могут быть назначены в ручном режиме согласно иерархии ролей ''Оплёта''.
  
 
==Технические детали==
 
==Технические детали==
''Оплёт'' написан на [[YII]] (сейчас версия 2.0.8). Наиболее современная версия -- 2.0.13, но обновление "ломает" сайт, нужно проверить что менялось и заменить у себя.
+
''Оплёт'' написан на [[Yii]] (сейчас версия 2.0.8). Наиболее современная версия -- 2.0.41, но обновление "ломает" сайт, нужно проверить что менялось и заменить у себя.
 +
 
 +
===Перспективные услуги===
 +
:Перспективно, ''Оплёт'' должен предоставлять следующие услуги:
 +
:#Регулировать загрузку, хранение и использование версий исходных кодов, скорее всего, совместно с инсталляцией [[Redmine]];
 +
:#Регулировать загрузку, хранение и использование версий баз данных и снимков облаков;
 +
:#Вести календарь событий и обеспечивать организацию мероприятий.
 +
 
 +
===Требования к разработке===
 +
:*Создать базу данных mysite
 +
:*Зальем дамп таблицы users (код дампа ниже)
 +
:*Сделаем форму регистрации и обработчик на PHP
 +
:*Сделаем форму входа и обработчик
 +
:*Сделаем мини-профиль после логина
  
==Перспективные услуги==
+
===Текущие проблемы и направления их решений===
Перспективно, ''Оплёт'' должен предоставлять следующие услуги:
+
:#Схема данных [[OpenLDAP]] требует заполнения обязательных полей профилей пользователя. Так как ''Оплёт'' не требует ни имэйлов, ни имён, они генерируются, проверяются на уникальность и присваиваются автоматически. Так же как номера записи и типы обьектов.
#Регулировать загрузку, хранение и использование версий исходных кодов, скорее всего, совместно с инсталляцией [[Redmine]];
+
:#Говоря о стратегии, она -- в максимальном уменьшении заполняемых вручную полей и в максимальном увеличении той информации, которая может собираться автоматически -- точки входа, логи, даже клики, языки и так далее.
#Регулировать загрузку, хранение и использование версий баз данных и снимков облаков;
+
:#Есть нерешённая проблема по роли подписчика. Можно либо не создавать пользователя вовсе, так как пользователь с любой ролью может быть подписчиком и это скорее не роль, а свойство профиля клиента. Отписку же проводить через отписной имэйл, а не заходом в личный кабинет. Либо создавать пользователя понимая, что подписчик -- это только тот, кто пока далее подписки не пошёл и другой роли пока не получил.
#Вести календарь событий и обеспечивать организацию мероприятий.
+
:#Работу над проблемами планируется перенести на [[Redmine]] или [[Брацка Крынка|Брацкую Крынку]], для чего основной разработчик должен провести тренинг.
  
==Требования к разработке==
+
==Связанные лектио==
*Создать базу данных mysite
+
*[[Структура Облака]]
*Зальем дамп таблицы users (код дампа ниже)
+
*[[Что Есть Оплёт]]
*Сделаем форму регистрации и обработчик на PHP
+
*[[Учебка в Облаке]]
*Сделаем форму входа и обработчик
+
*[[Составные Защиты]]
*Сделаем мини-профиль после логина
+
*[[Новые Технологии]]
 +
*[[Степени Разработок]]

Текущая версия на 15:12, 25 сентября 2022

Оплёт (Opplet; WorldOpp Middleware) -- федеративное, промежуточное и связующее программное обеспечение, которое обслуживает все пользовательские приложения Брацкого Облака (здесь и далее по тексту -- Облака), для которого Оплёт специально создан. Оплёт и пользовательские приложения образуют единую федеративную систему, в которой Оплёт играет роль федерального центра. Оплёт предоставляет приложениям Облака те Услуги, которые переданы от приложений Оплёту. Фактически Оплёт делает Облако единым Облаком.


Содержание

Функции

Федеративные услуги

Федеративные услуги -- это исключительные услуги Oплёта. Ни одно из пользовательских приложений не имеет возможности предоставлять эти услуги индивидуальным пользователям. Личные кабинеты пользователей, которые некоторые приложения типа Брацкой Правки или Брацкой Учебки могут иметь собственные кабинеты. Кабинеты этих приложений дополняют личный кабинет Оплёта, но не заменяют его. Оплёт автоматически заполняет все те поля пользователей, которые могут требовать отдельные приложения. Оплёт предоставляет следующие федеративные услуги:
Услуги Описание Потребители
Ведение личного кабинета Оплёт даёт пользователям возможность управлять той частью их учётных записей, которая называется "Личным кабинетом" Индивидуальные пользователи
Идентификация пользователей, Регистрация новых пользователей, Авторизация доступов пользователей к отдельным приложениям, Определение ролей пользователей и другие услуги Оплёт получает запросы пользовательских приложений Облака посредством API, обрабатывает их, используя учётные карточки, и отдаёт обработанные запросы тем же путём, которым эти запросы были получены. Пользовательские приложения

Безопасность

Сотрудники и авторизованные пользователи могут иметь обычный доступ через вэб-броузеры только к своим профилям. Всё остальное Центральное обслуживание доступно исключительно администраторам по PKI.

Дополнительные функции

  1. Служить одной из площадок для дальнейшего развития профессиональных навыков участников учебных программ.

Структура

Ядро

Ядро приложения составляет движок управления пользователями и сервер для пользовательских данных MariaDB.

Модули

Обсуждалось создание трёх новых модулей Оплёта:
  1. Для управления данными тех событий, которые важны для пользователей -- лекции, семинары, практика и так далее;
  2. Для управления экзаменационными вопросами. Вопросы бы отражались для отдельного пользователя вне зависимости от курса и приложения;
  3. Для автоматической записи на курсы. Функционал для записи на один курс по окончанию другого существует в Moodle, но его не достаточно для создания учебных програм, учитывающих специфические пожелания студента.
Также обсуждалось, что эти новые модули могут быть реализованы отдельными приложениями.

Федерация

Для взаимодействия с другими приложениями Брацка Облака, Оплёт включает или должен включать в себя три федерационных блока:
  1. Идентификационный сервер, собранный на базе WSO2 Identity Server;
  2. Распределённую базу данных для основных данных пользовательских приложений. Для её связи с приложениями планируется задействовать интеграционную платформу WSO2 Enterprise Integrator;
  3. Сервер OpenLDAP, исторически задействованный как дополнительный канал для идентификации.

Обслуживание приложений

Предоставление другим приложениям Брацка Облака идентификационных и авторизационных данных -- это одна из основных функций Оплёта. По сути, Оплёт являтся предоставителем услуг по идентификации (Identity service provider или ISP) для брацких приложений. Эти услуги Оплёт осуществляет посредством:

  1. Идентификационного сервера, собранного на базе WSO2 Identity Server;
  2. Сервера OpenLDAP, задействованного как дополнительный канал для идентификации и авторизации.

Изначально, Оплёт работал с simpleSAMLphp. Из-за ограничений SAML, simpleSAMLphp позже был заменён сервером OpenLDAP. Текущий проект -- подключить Оплёт к идентификационному серверу WSO2 (WSO2 identity Server или WSO2 IS), оставив OpenLDAP в качестве параллельного канала идентификации и авторизации.

Основной сервер

Основной сервер для взаимосвязи Оплёта с пользовательскими приложениями через OpenLDAP реализуется на базе WSO2 Identity Server. При создании и изменении пользователя в Оплёте, эти же события прописываются в сервере. Так как управление производится исключительно с шифрованием, для сервера должен быть настроен TSL:
WSO2 identity Server установлен 5.11.0. Данные хранятся в четырёх H2 DBMS. Функциональность SSO -- родная для WSO2 identity Server'а.
Решение как Оплёт будет взамодействовать с другими служебными программами такими, как OpenStack Keystone и Amazon Cognito, пока не принято. Будущая идентификация должна быть построена на имеющемся в наличии программном обеспечении:
  • В случае общественного облака может быть использован Amazon Cognito в AWS или Microsoft Azure Active Directory в Microsoft Azure;
  • В случае использования частного облака, будет задействован OpenStack Keystone с выводом на LDAP. Keystone - это служба OpenStack, которая обеспечивает аутентификацию API-клиента, обнаружение сервисов и распределенную авторизацию с несколькими арендаторами, внедряя OpenStack Identity API. Он поддерживает LDAP, OAuth, OpenID Connect, SAML и SQL. Keystone на самом деле не реализует никаких функций управления пользователями; скорее, он предоставляет подключаемые интерфейсы, чтобы организации могли использовать свои текущие службы аутентификации или выбирать из множества систем управления идентификацией, которые находятся на рынке.
Пользователи, не являющиеся сотрудниками Брацкой Школы, должны иметь возможность входа в Облако через идентификацию в социальных сетях social login, например, Facebook Connect, и других сервисах, пользующихся OpenID Connect.
Используя стороннюю идентификацию, сотрудники не могут заходить на Брацкую Пошту, Брацкую Крынку, а также служебные части Брацкую Справу.

Сервер LDAP

OpenLDAP установлен 2.4; записи хранятся в LDIF в незашифрованом виде. Сервер LDAP работает параллельно с основным сервером. Ограничение OpenLDAP -- для удобного перехода с одного приложения на другое, невозможно настроить SSO без дополнительных приложений. Также существуют проблемы использования OpenLDAP с Брацкой Поштой и новыми версиями MediaWiki, которые используются в Брацкой Правке.

Определение ролей

Определение ролей пользователей должно происходить в одном из двух режимах:

  1. В автоматическом режиме должны назначаться федеративные пользовательские роли, например, слушателя Брацкой Вводки; и
  2. В ручном режиме должны назначаться роли, которые специфичны именно для Оплёта. В данный момент, единственная такая назначаемая роль -- это администратор Оплёта. Позже могут быть добавлены роли администраторов отдельных модулей.

Автоматическое назначение

Сами пользовательские роли должны быть разработаны далее. Предварительно, будут задействованы девять ролей:
Роль Условие автоматического получения роли Автоматические доступы
Русский English
Неавторизованный NetAnyone Отсутствие условий -- любой посетитель сети Интернет (как зарегистрированный, так и нет), который не авторизовался в Оплёте. Смотри Автоматические доступы
Подписчик NetProspect Подписка на рассылку делает неавторизованного пользователя Подписчиком.
Клиент NetCustomer Пожертвование или покупка в магазине Careerprise Shop
Интересующийся NetConsumer Запись на курс Брацка Вводка -- эта роль присваивается автоматически любому слушателю вводного курса временно, на шесть месяцев.
Студент CertStudent Завершение курса Брацка Вводка
Пользователь CertUser Завершение курса Брацки Техобзор
Стажёр CertFellow Завершение семинара Выбор Профессии

Ручное назначение

Приложение Роль Доступы
Русский English
Оплёт Бюрократ Bureaucrat Помимо всех доступов пользователя, бюрократ имеет доступ к учётным карточкам и, в частности, может регистрировать в ручном режиме новых пользователей, редактировать их карточки и назначать роли за исключением бюрократов и сисопов.
Сисоп Sysop Сисоп (системный оператор) может всё.

Регистрация

Создание и ведение учётных карточек пользователей, то есть, фактически, управление базами данных всех сотрудников и клиентов Брацкой Школы, является ключевой функцией Оплёта. Выполнение всех услуг, переданных от отдельных пользовательских приложений Оплёту, зависит от качественных данных о том, что каждый пользователь Облака может делать на Облаке. Сам Оплёт, в свою очередь, поддерживается облачной инфраструктурой.

Обычные и корпоративные карточки

Существует два типа учётных карточек:
  1. Обычные учётные карточки, которые не содержат Корпоративных псевдонимов, заводятся автоматически в один этап и могут дать доступ к некоторым, но не всем пользовательским приложениям;
  2. Корпоративные учётные карточки, которые содержат всё, что обычные учётные карточки содержат и, в дополнение, хранят Корпоративные псевдонимы, а также регистрационные имена и корпоративные имэйлы, основанные на них. Корпоративные карточки заводятся либо (1) автоматически в два этапа -- временные для участия в курсах Брацка Вводка, Брацки Техобзор и постоянные после завершения этих курсов, либо (2) вручную в один этап. Карточки этого типа нужны для доступа к Брацкой Поште, Брацкой Крынке, а также служебным частям Брацкой Справы.

Методы регистрации

Регистрация новых пользователей, фактически, заведение новых учётных карточек этих пользователей, должна производиться двумя методами:
Метод регистрации Обычные учётные карточки Корпоративные учётные карточки
В автоматическом режиме Вход через стороннюю идентификацию, Подписку на рассылки, Покупка в магазине, Пожертвование
В ручном режиме Not available Ручная регистрация

Создание обычных карточек

  • Вход через стороннюю идентификацию: Если пользователь заходит в Облако через Стороннюю идентификацию, Оплёт:
    1. Собирает информацию об имени пользователя и его электронном адресе;
    2. Проверяет, существует ли такой пользователь в базе данных;
    3. Если пользователь не существует в базе, то Оплёт заводит новую учётную карточку;
    4. Заводит пользователя на Брацкой Учебке, создаёт Корпоративный псевдоним и даёт доступ к курсу Брацка Вводка;
    5. Отдаёт задание Брацкой Поште выслать пользователю сообщение о создании учётной карточки, доступе к курсу Брацка Вводка и личному кабинету.
  • Подписка на рассылки: Если пользователь отдаёт свой имэйл в качестве заявки на подписку на рассылку на любом из вэб-сайтов Брацкой Вебки, Оплёт:
    1. Проверяет, существует ли такой пользователь в базе данных;
    2. Если:
      • Пользователь существует, то Оплёт добавляет ту рассылку, на которую подписался пользователь, к его учётной карточке;
      • Пользователь не существует в базе, то Оплёт заводит новую учётную карточку и добавляет к ней ту рассылку, на которую подписался новый пользователь;
    3. Заводит пользователя на Брацкой Учебке, создаёт Корпоративный псевдоним, идентификатор и пароль, а также даёт доступ к курсу Брацка Вводка;
    4. Отдаёт задание Брацкой Поште выслать пользователю подтверждение подписки, сообщение о создании учётной карточки, доступе к курсу Брацка Вводка и личному кабинету;
    5. В случае, если на Брацкую Пошту приходит сообщение об:
      • Отсутствии существования указанного пользователем имэйла, проверяет, есть ли на карточке другие записи и:
        1. Если другие записи есть, и одна из них -- имэйл, то Оплёт отдаёт задание Брацкой Поште выслать пользователю запрос правильности имэйла;
        2. Если другие записи есть, но ни одна из них -- имэйл, то Оплёт просто помечает ошибку на учётной карточке;
        3. Если других записей нет, то Оплёт переводит учётную карточку в проблемные;
      • Отказе от какой-либо рассылки, Оплёт удаляет эту рассылку с учётной карточки.
  • Покупка в магазине: Если пользователь совершил покупку в Careerprise Shop, Оплёт заводит пользователя в качестве клиента Брацкой Школы на клиентском модуле Брацкой Справы.
  • Пожертвование: Если пользователь совершил пожертвование в Careerprise Shop, Оплёт заводит пользователя в качестве клиента Брацкой Школы на клиентском модуле Брацкой Справы.

Корпоративные псевдонимы

Основная вики-страница: Псевдоним пользователя Оплёта
Корпоративные псевдонимы создаются по формуле Имя Фамилия-На-Ых-Фамилия и прописываются в карточках сотрудников.

Регистрационные имена пользователей

Регистрационные имена пользователей заводятся исключительно английскими буквами на основе псевдонима по следующему принципу: полное имя + точка + минимальное количество букв фамилии на -ых, достаточное для соблюдения условия уникальности. Например, mina.n

Корпоративные имэйлы

Корпоративные имэйлы пользователей заводятся на основе Регистрационного имени пользователя по следующему принципу: регистрационное‑имя‑пользователя@opplet.net. Например, mina.n@opplet.net

Запись на вводный курс

Регистрация через запись на вводный курс -- единственная регистрация, по которой пользователь получает временный статус, который действителен в течение 3-х месяцев. Если пользователь не окончил курс в течение этого времени, то его регистрация аннулируется. Если пользователь на любом из вэб-сайтов Брацкой Вебки кликает на кнопки типа "Трудоустроиться", "Выучиться", "Стать волонтёром", "Стать партнёром" и так далее, Оплёт:
  1. Заводит временную учётную карточку со сведениями о том, (1) какая кнопка была нажата и (2) какой язык был использован;
  2. В принудительном порядке предлагает пользователю ввести тот логин и пароль, который будет удобен этому пользователю;
  3. В добровольном порядке предлагает пользователю ввести внешний имэйл;
  4. Проверяет, не является ли пользователь роботом;
  5. Заводит его пользователем Брацкой Учебки, Брацки Жици и Брацкой Бачки;
  6. Создаёт идентификатор и пароль, затем проверяет способ идентификации и учётную карточку на наличие электронного адреса. Если карточка:
    • Содержит адрес и пользователь использовал стороннюю идентификацию, то Оплёт отдаёт задание Брацкой Поште выслать имэйл с информацией об идентификаторе и пароле на имеющийся адрес, зачисляет и перенаправляет этого пользователя на вводную лекцию Курса;
    • Содержит адрес и пользователь использовал внутреннюю идентификацию, то Оплёт загружает такую страницу или зону: "Для Вас создан временный идентификатор -- zhenjas -- и пароль -- 01ZhenjaS20, которые будут актуальны в течение следующих 3х месяцев, которые даются на завершение курса". Для Вашего удобства, информация об идентификаторе и пароле отправлены на тот электронный адрес, который указан в Вашем личном кабинете," отдаёт задание Брацкой Поште выслать имэйл с информацией об идентификаторе и пароле на имеющийся адрес, зачисляет и перенаправляет этого пользователя на вводную лекцию Курса;
    • Не содержит адрес, то Оплёт загружает такую страницу или зону: "Для Вас создан временный идентификатор -- zhenjas -- и пароль -- 01ZhenjaS20, которые будут актуальны в течение следующих 3х месяцев, которые даются на завершение курса. Пожалуйста, сохраните этот идентификатор и пароль или отправьте их себе на электронную почту." с двумя кнопками: "Я сохранил это идентификатор и пароль" и "Отправьте идентификатор и пароль на мою электронную почту";
    • Если пользователь выбирает:
      1. "Отправьте идентификатор и пароль на мою электронную почту", то Оплёт запрашивает имэйл-адрес пользователя, отдаёт задание Брацка Пошта выслать имэйл-подтверждение на введённый адрес, зачисляет и перенаправляет этого пользователя на вводную лекцию Курса;
      2. "Я сохранил это идентификатор и пароль", то Оплёт зачисляет и перенаправляет этого пользователя на вводную лекцию Курса.
  7. Курс начинается с текста "Добро пожаловать в Брацкую Школу. Чтобы сохранить в тайне личные данные, все участники пользуются корпоративными псевдонимами. Вы зачислены на вводный курс, Брацка Вводка, под псевдонимом Женя Семашко. Если Вы хотите поменять имя, повторите процедуру регистрации с начала."

Ручная регистрация

Любой пользователь может быть создан вручную, а не только в автоматическом режиме.

Поля учётных карточек

Часть полей учётных карточек может заполняться пользователем при его желании, но не обязательны к заполнению. Часть тех полей, которые заполняются автоматически, может изменяться пользователем, в то время как некоторые поля не могут быть изменены.

Необязательные

Поле Тип Примечание
Имя (если необходимо для документов об окончании) Текст Заполняется при желании пользователя
Фамилия (если необходима для документов об окончании)
Внешний имэйл (если есть желание получать уведомления) Текст со значком @ и как минимум одной точкой после него
Язык(и) Выбор из списка Автоматически вписывается и сохраняется язык входа, который может быть изменён или добавлен пользователем вручную.

Изменяемые

Поле Примечание
Логин (изменить?) Поля с возможностью изменения
Пароль (изменить?)
Завершённые курсы (убрать?) Список с возможностью исключения
Курсы в прогрессе (отменить?)
Доступные приложения (отменить?)
Рассылки (изменить?) Список с возможностью исключения и добавления

Неизменяемые

Поле Примечание
Идентификационный номер пользователя Генерируется автоматически и проверяется на уникальность
Регистрационное имя пользователя Генерируется автоматически по логике Регистрационных имён пользователей
Псевдоним пользователя Оплёта Генерируется автоматически по логике Псевдонимов пользователя Оплёта
Корпоративный имэйл Генерируется автоматически по логике Корпоративных имэйлов

Пользовательский интерфэйс

С живыми пользователями, Оплёт сообщается тремя путями:

  1. Через интерфэйс личного кабинета;
  2. Почтовый сервис. Пока настроен sendmail, но почта приходит в спам. Установлен, но не настроен Postfix. Задача настройки пока отложена. На полноценную почту планируется позже нанять специалиста. Возможно, экономически целесообразнее будет собрать Брацкую Пошту.
  3. Для тех пользователей, которые пользуются социальным логином, настроен OAuth 2.0 протокол. В данный момент есть проблемы прописывания "социальных пользователей" в Оплёте.

Незарегистрированный пользователь видит только титульную страницу:

  • На шапке слева -- Opplet; справа -- SignUp (клик регистрирует пользователя в роли Временный);
  • В основном поле -- два поля Login и Password;
  • В подвале слева -- © Opplet [текущий год]; справа -- Powered by Yii Framework

Ведение личного кабинета

Личный кабинет является той частью учётной карточки пользователя, к которой пользователь имеет доступ и право редактирования.

Интересы

Оплёт собирает информацию о поведении пользователя, особенно, какие кнопки пользователь выбирает находясь на Облаке, для формирования центра действий именуемого "Интересы". Центр действий включает в себя 6 групп:
  1. Учёба и трудоустройство
  2. Трудоустройство (без учёбы)
  3. Волонтёрство
  4. Партнёрство
  5. Учёба (без трудоустройства)
  6. Благотворительность
Активные группы занимают отдельные зоны и включают кнопку "Сделать зону неактивной"; неактивные -- даны иконками под общим заголовком Ещё.

Личные данные

Личные данные включают в себя следующие поля:
  1. Имя (как должно появляться на документах об окончании)
  2. Фамилия (как должна появляться на документах об окончании)
  3. Корпоративный псевдоним
  4. Имэйл

Приложения

Приложения, которые доступны для пользователя, зависят от действий пользователя согласно Автоматическому назначению ролей, если доступы не установлены вручную. Если пользовательские приложения предоставляют пользователям доступ к личным кабинетам внутри приложений, то ссылки от личного кабинета идут на них.

Языки

Оплёт собирает информацию о том, какие языки выбирает пользователь и об языках его операционных систем пользователя, для формирования центра управления языками.

Рассылки

Оплёт управляет данными о том, на какие рассылки подписан пользователь.

Авторизация доступов

Авторизация пользователей разрешает доступы:

  1. Автоматические к пользовательским ресурсам, например, к Брацкой Поште или Брацки Жици. Завершение вводного курса необходимо для автоматических доступов;
  2. Ручные к административным ресурсам, например, к отдельным проектам Брацкой Крынки.

Завершение вводного курса

Если в течение 3х месяцев пользователь:
  • Успешно завершает Курс, то Оплёт:
    1. Заводит его пользователем Брацкой Правки и зачисляет на семинар Выбор Профессии;
    2. Если пользователь при первоначальной записи выбирал кнопку:
      • "Трудоустроиться", то Оплёт загружает страницу "Поздравляем с успешным завершением курса. Вы выражали интерес к трудоустройству. Вы желаете трудоустроиться через Брацкую Школу, не платя за услуги из своего кармана, или заказать платные услуги по трудоустройству? Кстати, если Ваш интерес поменялся, в Личном кабинете Вы всегда можете изменить своё решение." с кнопками "Трудоустроиться через Брацкую Школу", "Заказать платные услуги по трудоустройству" и "Что-то ещё";
        1. Если пользователь выбрал кнопку: "Трудоустроиться через Брацкую Школу", то Оплёт обновляет информацию учётной карточки. Регистрация в этом случае следует правилам описанным на вики-странице Лестница к Профессии. Оплёт перенаправляет этого пользователя на семинар Выбор Профессии. После завершения этого семинара, Оплёт даёт пользователю доступ к Брацкой Вебке, Брацкой Поште и Брацкой Справе, а также зачисляет его в слушатели Семь Технологических Искусств и Семь Административных Искусств;
        2. Если пользователь выбрал кнопку: "Заказать платные услуги по трудоустройству", то Оплёт обновляет информацию учётной карточки и перенаправляет этого пользователя в Careerprise Shop;
        3. Если пользователь выбрал кнопку: "Что-то ещё", то Оплёт обновляет информацию учётной карточки и перенаправляет этого пользователя в Личный кабинет;
      • "Выучиться", то Оплёт загружает страницу "Поздравляем с успешным завершением курса. Вы желаете совмещать учёбу и работу в Брацкой Школе, не платя за услуги из своего кармана, или заказать платные услуги образования? Кстати, если Ваш интерес поменялся, в Личном кабинете Вы всегда можете изменить своё решение." с кнопками "Учиться и работать в Брацкой Школе", "Заказать платные услуги образования", "Что-то ещё";
        1. Если пользователь выбрал кнопку: "Учиться и работать в Брацкой Школе", то Оплёт обновляет информацию учётной карточки и перенаправляет его на семинар Выбор Профессии. После завершения этого семинара, Оплёт даёт пользователю доступ к Брацкой Вебке, Брацкой Поште и Брацкой Справе, а также зачисляет его в слушатели Семь Технологических Искусств и Семь Административных Искусств;
        2. Если пользователь выбрал кнопку: "Заказать платные услуги образования", то Оплёт обновляет информацию учётной карточки и перенаправляет этого пользователя на Careerprise Shop;
        3. Если пользователь выбрал кнопку: "Что-то ещё", то Оплёт обновляет информацию учётной карточки и перенаправляет этого пользователя в Личный кабинет;
      • "Стать волонтёром", то Оплёт загружает страницу "Поздравляем с успешным завершением курса. Вы выражали желание стать волонтёром Брацкой Школы, потому мы зачисляем Вас на семинар Как стать волонтёром Брацкой Школы. Кстати, если Ваш интерес поменялся, в Личном кабинете Вы всегда можете изменить своё решение." с кнопками "Зачислить на семинар "Как стать волонтёром"", "Что-то ещё";
        1. Если пользователь выбрал кнопку: "Зачислить на семинар "Как стать волонтёром"", то Оплёт перенаправляет его на семинар Как стать волонтёром Брацкой Школы. После завершения этого семинара, Оплёт даёт пользователю доступ к Брацкой Поште и Брацкой Справе, а также заводит его в качестве кандидата в волонтёры Брацкой Школы на рекрутинговом модуле Брацкой Справы;
        2. Если пользователь выбрал кнопку: "Что-то ещё", то Оплёт обновляет информацию учётной карточки и перенаправляет этого пользователя в Личный кабинет;
      • "Стать партнёром", то Оплёт загружает страницу "Поздравляем с успешным завершением курса. Вы выражали желание стать партнёром Брацкой Школы, потому мы зачисляем Вас на семинар Как стать партнёром Брацкой Школы. Партнёром может быть любой работодатель, поставщик услуг по подготовке кадров и рекрутингу или любое иное лицо, заинтересованное в развитии Брацкой Школы. Кстати, если Ваш интерес поменялся, в Личном кабинете Вы всегда можете изменить своё решение." с кнопками "Зачислить на семинар "Как стать партнёром"", "Что-то ещё";
        1. Если пользователь выбрал кнопку: "Зачислить на семинар "Как стать партнёром"", то Оплёт перенаправляет его на семинар Как стать партнёром Брацкой Школы. После завершения этого семинара, Оплёт заводит пользователя в качестве кандидата в партнёры Брацкой Школы на клиентском модуле Брацкой Справы;
        2. Если пользователь выбрал кнопку: "Что-то ещё", то Оплёт обновляет информацию учётной карточки и перенаправляет этого пользователя в Личный кабинет.
  • Не завершает Курс и:
    1. Идентифицировался внутренне, то Оплёт удаляет его учётную карточку;
    2. Идентифицировался сторонне, то Оплёт оставляет его учётную карточку актуальной, но исключает из Курса и высылает соответствующее сообщение на электронный адрес.

Автоматические доступы

Роль Оплёт Учебка Правка Бачка Жици Справа Пошта Вебка Крынка
Неавторизованный Нет доступа далее входной страницы Доступ к просмотру всех материалов Доступ к просмотру открытых материалов Нет доступа далее входной страницы
Временный Только на 3 месяца Доступ в качестве пользователя Нет доступа далее входной страницы
Подписчик Любой имеет доступ к личному кабинету Доступ к курсу Брацка Вводка Доступ в качестве пользователя Доступ в качестве пользователя
Клиент Доступ в качестве клиента Нет доступа далее входной страницы
Кандидат Доступ к семинарам Как стать партнёром, волонтёром и трудоустроиться
Студент Доступ к Семь Технологических Искусств и Семь Административных Искусств
Волонтёр
Партнёр Доступ в качестве пользователя
Сотрудник Доступ к любым курсам Доступ в качестве пользователя

Ручные доступы

Любые роли могут быть назначены в ручном режиме согласно иерархии ролей Оплёта.

Технические детали

Оплёт написан на Yii (сейчас версия 2.0.8). Наиболее современная версия -- 2.0.41, но обновление "ломает" сайт, нужно проверить что менялось и заменить у себя.

Перспективные услуги

Перспективно, Оплёт должен предоставлять следующие услуги:
  1. Регулировать загрузку, хранение и использование версий исходных кодов, скорее всего, совместно с инсталляцией Redmine;
  2. Регулировать загрузку, хранение и использование версий баз данных и снимков облаков;
  3. Вести календарь событий и обеспечивать организацию мероприятий.

Требования к разработке

  • Создать базу данных mysite
  • Зальем дамп таблицы users (код дампа ниже)
  • Сделаем форму регистрации и обработчик на PHP
  • Сделаем форму входа и обработчик
  • Сделаем мини-профиль после логина

Текущие проблемы и направления их решений

  1. Схема данных OpenLDAP требует заполнения обязательных полей профилей пользователя. Так как Оплёт не требует ни имэйлов, ни имён, они генерируются, проверяются на уникальность и присваиваются автоматически. Так же как номера записи и типы обьектов.
  2. Говоря о стратегии, она -- в максимальном уменьшении заполняемых вручную полей и в максимальном увеличении той информации, которая может собираться автоматически -- точки входа, логи, даже клики, языки и так далее.
  3. Есть нерешённая проблема по роли подписчика. Можно либо не создавать пользователя вовсе, так как пользователь с любой ролью может быть подписчиком и это скорее не роль, а свойство профиля клиента. Отписку же проводить через отписной имэйл, а не заходом в личный кабинет. Либо создавать пользователя понимая, что подписчик -- это только тот, кто пока далее подписки не пошёл и другой роли пока не получил.
  4. Работу над проблемами планируется перенести на Redmine или Брацкую Крынку, для чего основной разработчик должен провести тренинг.

Связанные лектио