#pragma once #include "Signature.hpp" #include #include #include namespace odhtdb { class Group; class UserNameTooLongException : public std::runtime_error { public: UserNameTooLongException(const std::string &userName) : std::runtime_error(std::string("The username ") + userName + " is longer than 255 bytes") { } }; class User { public: virtual ~User(){} void addToGroup(Group *group); const std::string& getName() const { return name; } const std::vector& getGroups() const { return groups; } virtual const Signature::PublicKey& getPublicKey() const = 0; protected: User(const std::string &name, Group *group); private: std::string name; std::vector groups; }; }