Если базовой функциональности недостаточно, то как стандартные, так и серверные панели входа в систему могут быть заменены с помощью пользовательской реализации. В этом разделе описывается, как использовать персонализированные панели для авторизационного фреймворка.
- Необходимо внести записи loginPanelLocal и loginPanelServer в раздел [ui] в файл config.
Записи в конфигурационном файле | Описание |
loginPanelLocal | Панель для локальной аутентификации. |
loginPanelServer | Панель для аутентификации на стороне сервера для менеджеров UI. |
- Для того, чтобы использовать возможности персонализированных панелей, добавьте класс в директорию LoginFramework (KASKAD_Proj/scripts/libs/classes/loginFramework). Данный пользовательский класс реализует класс LoginFrameworkChildView. Добавьте класс, основанный на двух представленных примерах: Kaskad_Proj/scripts/libs/classes/loginFramework/LoginFrameworkLoginServer.ctl и LoginFrameworkLoginStd.ctl и на основе классов LoginFrameworkChildView и LoginFrameworkController .
- Реализуйте все функции вашего пользовательского класса, реализующего класс LoginFrameworkChildView. Если функции класса не реализованы, то при вызове конкретной функции не выполняется никаких действий.
- Персонализированная панель должна учитывать следующие пункты:
- В качестве переменной c областью видимости в пределах панели для loginFrameworkController должна быть Shared_ptr, как показано ниже.
#uses «classes/loginFramework/LoginFrameworkLoginStd»
shared_ptr<OaAuthUI> m_ui;
shared_ptr<LoginFrameworkController> m_loginFrameworkController = LoginFrameworkController::getInstance();
- Создайте экземпляр shared_ptr для созданного класса – см. ниже.
- Назначьте экземпляр shared_ptr объекту контроллера – см. ниже.
- Если подразумевается наличие Справочных уведомлений, назначьте контроллеру дополнительный объект «OaAuthUI»:
m_ui = new OaAuthUI();
shared_ptr<LoginFrameworkChildView> view = new LoginFrameworkLoginStd(self, «txt_username», «txt_password», «txt_domain», «chkBx_userLang», » chkBx_monitor»);
m_loginFrameworkController.setLoginFrameworkChildView(view);
m_loginFrameworkController.setOaAuthUI(m_ui); /* если есть справочное уведомление после входа в систему, запуск пользовательского интерфейса из контроллера осуществляется через функцию setFrameworkView(); */