/** * Handler for all Language HMI objects * $Id$ * $HeadURL$ * $Author$ * Created by Hanna E. Rathje, SLSE, 2015-09-03 */ #pragma once #include #include #include #include "main_handler.h" #include "logger.h" class QTimer; namespace OperatorManagement { class ObjectOperator; class HandlerOperator final : public QObject , protected Interface::Fts::OperatorChangePasswordRequestHandler , protected Interface::Fts::OperatorCreateModifyRequestHandler , protected Interface::Fts::OperatorRemoveRequestHandler , protected Interface::Fts::OperatorLoginRequestHandler , protected Interface::Fts::OperatorLogoutRequestHandler , protected Interface::Fts::OperatorGetSetSettingsRequestHandler , protected Interface::Fts::OperatorApplyForeignAclsRequestHandler , protected Interface::Fts::OperatorUpdateVisiblePartiesByExerciseRequestHandler { Q_OBJECT public: explicit HandlerOperator(MainHandler *mainHandler); ~HandlerOperator(); bool init(); void reloadAcls(); void operatorModifyRolePresetId( int operatorId, int rolePresetId); QString operatorNameById(int operatorId) const; private: void onOperatorChangePasswordRequest(const rti::core::SampleIdentity &cookie, const OperatorChangePasswordRequest &request) override; void onOperatorCreateModifyRequest(const rti::core::SampleIdentity &cookie, const OperatorCreateModifyRequest &request) override; Core::FunctionReplyObject operatorCreateRequest(const OperatorCreateModifyRequest &request); Core::FunctionReplyObject operatorModifyRequest(const OperatorCreateModifyRequest &request); void onOperatorRemoveRequest(const rti::core::SampleIdentity &cookie, const Core::RemoveElementRequest &request) override; void onOperatorLoginRequest(const rti::core::SampleIdentity &cookie, const OperatorLoginRequest &request) override; void onOperatorLogoutRequest(const rti::core::SampleIdentity &cookie, const OperatorLogoutRequest &request) override; void onOperatorGetSetSettingsRequest(const rti::core::SampleIdentity &cookie, const OperatorGetSetSettingsRequest &request) override; void onOperatorApplyForeignAclsRequest(const rti::core::SampleIdentity &cookie, const OperatorApplyForeignAclsRequest &request) override; Core::FunctionReplyObject operatorApplyForeignAclsRequest(const OperatorApplyForeignAclsRequest &request); void onOperatorUpdateVisiblePartiesByExerciseRequest(const rti::core::SampleIdentity &cookie, const OperatorUpdateVisiblePartiesByExerciseRequest &request) override; Core::FunctionReplyObject operatorUpdateVisiblePartiesByExerciseRequest(const OperatorUpdateVisiblePartiesByExerciseRequest &request); QSet getEffectiveAcls(int primaryGroupId) const; static std::vector getExercisesForOperator(const QVector &mapping, int operatorId); int getLoggedOperatorId(int workstationId) const; // dtc void onOperatorWorkstationAliveChanged(const OperatorManagement::OperatorWorkstationAlive &data, DataModification modType); private Q_SLOTS: void onCheckAliveTimeout(); private: QHash> m_aliveData; QHash m_operatorObjMap; QTimer *m_aliveCheckTimer; MainHandler *m_mainHandler; NGL::INGLLogger &m_logger; }; }