feat: project permissions loading
This commit is contained in:
parent
6fca6eab56
commit
8831d676d4
@ -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() {
|
||||
|
||||
@ -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();
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user