#ifndef PERMISSION_H #define PERMISSION_H #include #include #include #include "user.h" #include "role.h" class PermissionManager { public: static PermissionManager& getInstance(); void addRole(const Role& role); void removeRole(const QString& roleName); Role* getRole(const QString& roleName); bool checkPermission(const User& user, const QString& permission) const; QSet getAllPermissions() const; private: PermissionManager() = default; PermissionManager(const PermissionManager&) = delete; PermissionManager& operator=(const PermissionManager&) = delete; QMap m_roles; QSet m_allPermissions; }; #endif // PERMISSION_H