mimes.push_back(mime);
}
+ std::vector<std::string> privileges;
+ for (auto& item : parser::GetOneOrMany(
+ &dict, tpk_app_keys::kPrivilegeKey, "")) {
+ std::string privilege;
+ if (!item->GetString(tpk_app_keys::kPrivilegeTextKey, &privilege) ||
+ privilege.empty()) {
+ *error = "appcontrol privilege is missing privilege text";
+ return false;
+ }
+ privileges.push_back(privilege);
+ }
+
if (uris.empty())
uris.push_back("");
if (mimes.empty())
mimes.push_back("");
+ if (privileges.empty())
+ privileges.push_back("");
for (const auto& uri : uris) {
for (const auto& mime : mimes) {
- info->app_control.emplace_back(operation, uri, mime);
+ info->app_control.emplace_back(operation, uri, mime, privileges);
}
}
}
public:
AppControlInfo(const std::string& operation,
const std::string& uri,
- const std::string& mime)
+ const std::string& mime,
+ const std::vector<std::string>& privileges)
: operation_(operation),
uri_(uri),
- mime_(mime) {}
+ mime_(mime),
+ privileges_(privileges) {}
const std::string& operation() const {
return operation_;
return mime_;
}
+ const std::vector<std::string> privileges() const {
+ return privileges_;
+ }
+
private:
std::string operation_;
std::string uri_;
std::string mime_;
+ std::vector<std::string> privileges_;
};
// Background-category