/*! * \brief Manager for AccessRights * * \copyright Copyright (c) 2020-2021 Governikus GmbH & Co. KG, Germany */ #pragma once #include "asn1/CVCertificate.h" #include "paos/retrieve/DidAuthenticateEac1.h" #include #include #include #include class test_ChatModel; namespace governikus { class AccessRightManager : public QObject { Q_OBJECT private: friend class ::test_ChatModel; public: explicit AccessRightManager(QSharedPointer pDIDAuthenticateEAC1, QSharedPointer pTerminalCvc); [[nodiscard]] const QSharedPointer& getTerminalCvc() const { return mTerminalCvc; } [[nodiscard]] const QSet& getOptionalAccessRights() const { return mOptionalAccessRights; } [[nodiscard]] const QSet& getRequiredAccessRights() const { return mRequiredAccessRights; } [[nodiscard]] const QSet& getEffectiveAccessRights() const { return mEffectiveAccessRights; } void operator+=(AccessRight pAccessRight); void operator-=(AccessRight pAccessRight); void operator=(const QSet& pAccessRights); operator QByteArray() const; Q_SIGNALS: void fireEffectiveAccessRightsChanged(); private: QSharedPointer mTerminalCvc; QSharedPointer mDIDAuthenticateEAC1; QSet mOptionalAccessRights; QSet mEffectiveAccessRights; QSet mRequiredAccessRights; void removeForbiddenAccessRights(QSet& pAccessRights); }; } // namespace governikus