Extended Login Framework (Customized Panels)

If the base functionality is not sufficient, both the standard and the server login panels can be replaced via another implementation. This chapter describes how to use customized panels for the login framework.

Config entry Description
loginPanelLocal Panel for the local authentication.
loginPanelServer Panel for the server-side authentication for UI managers.
  • In order to use the customized panel, add a class to the LoginFramework WinCC_OA_Proj/scripts/libs/classes/loginFramework. The class implements the LoginFrameworkChildView. Add the class based on the two examples given: WinCC_OA_Proj/scripts/libs/classes/loginFramework/LoginFrameworkLoginServer.ctl and LoginFrameworkLoginStd.ctl and based on the LoginFrameworkChildView and LoginFrameworkController classes. I
  • Implement all functions of your class that implements the LoginFrameworkChildView class. If the functions of the class are not implemented, no action is performed when calling a specific function.
  • The customized panel must implement at least the following issues:
  • A shared_ptr to the loginFrameworkController as a panel global variable:

#uses "classes/loginFramework/LoginFrameworkLoginStd"

shared_ptr<OaAuthUI> m_ui;

shared_ptr<LoginFrameworkController> m_loginFrameworkController = LoginFrameworkController::getInstance();

  • Instantiate a shared_ptr to the class created before - see below.
  • Assign this shared_ptr to the controller object - see below.
  • If the System Use Notifications should be supported, assign in addition the OaAuthUI object to the controller:

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); /* if there is a system use notification after the login we need to handle the starting of the UI from the Controller setFrameworkView(); */