permission.h 727 B

1234567891011121314151617181920212223242526272829
  1. #ifndef PERMISSION_H
  2. #define PERMISSION_H
  3. #include <QString>
  4. #include <QMap>
  5. #include <QSet>
  6. #include "user.h"
  7. #include "role.h"
  8. class PermissionManager {
  9. public:
  10. static PermissionManager& getInstance();
  11. void addRole(const Role& role);
  12. void removeRole(const QString& roleName);
  13. Role* getRole(const QString& roleName);
  14. bool checkPermission(const User& user, const QString& permission) const;
  15. QSet<QString> getAllPermissions() const;
  16. private:
  17. PermissionManager() = default;
  18. PermissionManager(const PermissionManager&) = delete;
  19. PermissionManager& operator=(const PermissionManager&) = delete;
  20. QMap<QString, Role> m_roles;
  21. QSet<QString> m_allPermissions;
  22. };
  23. #endif // PERMISSION_H