std::string getPolicyFile(enum TemplateManager::Type policyFile,
const std::string &privFile = "") const ;
PrivMapping getPrivMapping(const std::string &privName) const;
- std::vector<std::string> getPrivMappingMapKeys() const;
std::string m_rootDir;
std::map<Path, Smack::TemplateRules> m_templateRules;
std::map<PrivilegeName, PrivMapping> m_privMapping;
+ std::vector<std::string> m_privs;
};
} // namespace SecurityManager
auto path = getPolicyFile(PRIV_RULES_TEMPLATE, privMapping.second.fileName);
m_templateRules[path] = Smack::fromConfig(path);
}
+
+ m_privs.resize(m_privMapping.size());
+ size_t i = 0;
+ for (auto &mapping : m_privMapping) {
+ m_privs[i++] = mapping.first;
+ }
}
bool TemplateManager::isPrivilegeMappingEnabled() const
return !m_privMapping.empty();
}
-std::vector<std::string> TemplateManager::getPrivMappingMapKeys() const
-{
- std::vector<std::string> keys;
- keys.reserve(m_privMapping.size());
- for (auto &mapping : m_privMapping) {
- keys.push_back(mapping.first);
- }
- return keys;
-}
-
const std::vector<std::string>& TemplateManager::getAllMappedPrivs() const
{
- static const std::vector<std::string> allMappedPrivs = getPrivMappingMapKeys();
- return allMappedPrivs;
+ return m_privs;
}
TemplateManager::PrivMapping