Logging is easier now, assigned in runtime group is now stored in config

This commit is contained in:
Blue 2025-03-17 17:13:52 +02:00
parent 7f57cd3bf6
commit 1bda854139
Signed by: blue
GPG key ID: 9B203B252A63EE38
19 changed files with 153 additions and 53 deletions

View file

@ -4,7 +4,7 @@
#include "actor.h"
Module::Actor::Actor(const std::shared_ptr<Core>& core, const Shared::Permissions& permissions):
Module(core, permissions)
Module(core, permissions, "Actor")
{}
Module::Actor::~Actor() noexcept {}
@ -51,7 +51,7 @@ std::string Module::Actor::list() {
}
std::string Module::Actor::set(const std::string& jid, const std::string& group) {
core->setGroup(jid, group);
core->setGroup(lower(jid), group);
return jid + " is now " + core->router.getGroup(jid);
}

View file

@ -7,7 +7,8 @@
#include "gloox/message.h"
Module::Module::Module(const std::shared_ptr<Core>& core, const Shared::Permissions& permissions):
Module::Module::Module(const std::shared_ptr<Core>& core, const Shared::Permissions& permissions, const std::string& name):
Shared::Loggable(core->logger, {"Module", name}),
core(core),
permissions(permissions)
{}
@ -36,3 +37,7 @@ std::vector<std::string> Module::Module::split(const std::string& string, const
return result;
}
std::string Module::Module::lower(const std::string& text) {
return std::ranges::to<std::string>(text | std::views::transform(::tolower));
}

View file

@ -6,17 +6,20 @@
#include <string>
#include <memory>
#include <vector>
#include <ranges>
#include <cctype>
#include "shared/definitions.h"
#include "shared/result.h"
#include "shared/loggable.h"
#include "component/core.h"
#include "component/actor.h"
namespace Module {
class Module {
class Module : protected Shared::Loggable {
protected:
Module(const std::shared_ptr<Core>& core, const Shared::Permissions& permissions);
Module(const std::shared_ptr<Core>& core, const Shared::Permissions& permissions, const std::string& name);
bool hasPermission(const std::string& permission, const std::shared_ptr<::Actor>& actor) const;
@ -24,6 +27,7 @@ public:
virtual ~Module() noexcept;
static Shared::Strings split(const std::string& string, const std::string& delimiter = " ");
static std::string lower(const std::string& text);
virtual Shared::Result message(const std::shared_ptr<::Actor>& actor, const Shared::Strings& args) = 0;