Files
qt5-legatus-legacy/Lts/Services/OperatorManagement/object_operator.h
T
2026-08-13 18:33:10 +02:00

64 lines
2.1 KiB
C++
Executable File

/**
* Exercise object
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include <DDS/Core/function_reply_object.h>
#include <QSet>
// Generated
#include <OperatorManagement/opm_db.h>
#include <OperatorManagement/opm.hpp>
namespace OperatorManagement
{
class MainHandler;
class ObjectOperator final
{
public:
explicit ObjectOperator(MainHandler *mainHandler);
~ObjectOperator();
Core::FunctionReplyObject createObject(const Database::OpmOperator &data, const QVector<Database::OpmOperatorExercise> &vec);
Core::FunctionReplyObject updateObject(const Database::OpmOperator &data);
Core::FunctionReplyObject updateOperatorExercise(const Database::OpmOperatorExercise &data);
Core::FunctionReplyObject updateEffectiveAcls(const QSet<int> &effectiveAcls);
Core::FunctionReplyObject updateExercises(const std::vector<int> &exercises, bool dontUpdateDb = false);
Core::FunctionReplyObject removeObject();
Core::FunctionReplyObject setPrimaryGroupId(int primaryGroupId);
bool saveSettings(const QByteArray &settings);
bool loadSettings(QByteArray &settings);
int getId() const { return m_data.id; }
const Database::OpmOperator &data() const { return m_data; }
QString name() const { return m_data.name; }
QSet<int> effectiveAcls() const { return m_effectiveAcls; }
void reloadAcls(bool force = false);
protected:
void onPublishData();
private:
QSet<int> calculateEffectiveAcls() const;
MainHandler *m_mainHandler;
Database::OpmOperator m_data;
QVector<Database::OpmOperatorExercise> m_dataExercise;
Database::OpmSettings m_settings;
QSet<int> m_effectiveAcls;
std::vector<int> m_exercises;
int m_originalPrimaryGroupId;
NGL::INGLLogger &m_logger;
//Database::OpmOperatorExercise toDbData(const PartiesByExercise &ddsData);
std::vector<OperatorManagement::PartiesByExercise> toDdsData(const QVector<Database::OpmOperatorExercise> &dbData);
};
}