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;
|
Project::~Project() = default;
|
||||||
|
|
||||||
dv::value Project::serialize() const {
|
dv::value Project::serialize() const {
|
||||||
|
auto permissionsList = dv::list();
|
||||||
|
for (const auto& perm : permissions) {
|
||||||
|
permissionsList.add(perm);
|
||||||
|
}
|
||||||
return dv::object({
|
return dv::object({
|
||||||
{"name", name},
|
{"name", name},
|
||||||
{"title", title},
|
{"title", title},
|
||||||
{"base_packs", dv::to_value(basePacks)},
|
{"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("name").get(name);
|
||||||
src.at("title").get(title);
|
src.at("title").get(title);
|
||||||
dv::get(src, "base_packs", basePacks);
|
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() {
|
void Project::loadProjectClientScript() {
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <set>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
@ -17,6 +18,7 @@ struct Project : Serializable {
|
|||||||
std::vector<std::string> basePacks;
|
std::vector<std::string> basePacks;
|
||||||
std::unique_ptr<scripting::IClientProjectScript> clientScript;
|
std::unique_ptr<scripting::IClientProjectScript> clientScript;
|
||||||
std::unique_ptr<Process> setupCoroutine;
|
std::unique_ptr<Process> setupCoroutine;
|
||||||
|
std::set<std::string> permissions;
|
||||||
|
|
||||||
~Project();
|
~Project();
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user