First permissions restriction

This commit is contained in:
Blue 2025-03-15 00:06:58 +02:00
parent 60c8782bdd
commit f03f392cee
Signed by: blue
GPG key ID: 9B203B252A63EE38
6 changed files with 34 additions and 13 deletions

View file

@ -16,20 +16,25 @@ namespace Module {
class Module {
public:
typedef std::vector<std::string> Tokens;
typedef std::vector<std::string> List;
typedef std::map<std::string, List> Permissions;
protected:
Module(const std::shared_ptr<Core>& core, const std::shared_ptr<Connection>& connection);
Module(const std::shared_ptr<Core>& core, const std::shared_ptr<Connection>& connection, const Permissions& permissions);
bool hasPermission(const std::string& permission, const std::shared_ptr<::Actor>& actor) const;
public:
virtual ~Module() noexcept;
static Tokens split(const std::string& string, const std::string& delimiter = " ");
virtual void message(const std::shared_ptr<Actor>& actor, const Tokens& args) = 0;
virtual void message(const std::shared_ptr<::Actor>& actor, const Tokens& args) = 0;
protected:
std::shared_ptr<Core> core;
std::shared_ptr<Connection> connection;
Permissions permissions;
};