feat: project permissions loading

This commit is contained in:
MihailRis 2025-12-06 23:44:07 +03:00 committed by ShiftyX1
parent 6fca6eab56
commit 8831d676d4
2 changed files with 17 additions and 0 deletions

View File

@ -11,10 +11,15 @@ static debug::Logger logger("project");
Project::~Project() = default;
dv::value Project::serialize() const {
auto permissionsList = dv::list();
for (const auto& perm : permissions) {
permissionsList.add(perm);
}
return dv::object({
{"name", name},
{"title", title},
{"base_packs", dv::to_value(basePacks)},
{"permissions", std::move(permissionsList)}
});
}
@ -22,6 +27,16 @@ void Project::deserialize(const dv::value& src) {
src.at("name").get(name);
src.at("title").get(title);
dv::get(src, "base_packs", basePacks);
if (src.has("permissions")) {
std::vector<std::string> perms;
dv::get(src, "permissions", perms);
permissions = std::set<std::string>(perms.begin(), perms.end());
}
logger.info() << "permissions: ";
for (const auto& perm : permissions) {
logger.info() << " - " << perm;
}
}
void Project::loadProjectClientScript() {

View File

@ -1,5 +1,6 @@
#pragma once
#include <set>
#include <string>
#include <vector>
#include <memory>
@ -17,6 +18,7 @@ struct Project : Serializable {
std::vector<std::string> basePacks;
std::unique_ptr<scripting::IClientProjectScript> clientScript;
std::unique_ptr<Process> setupCoroutine;
std::set<std::string> permissions;
~Project();