#pragma once
+#include <vist/query-builder.hpp>
+
#include <string>
+using namespace vist::tsqb;
+
namespace vist {
namespace policy {
namespace schema {
std::string ivalue;
};
+inline Table admin { "ADMIN", Column("name", &Admin::name),
+ Column("activated", &Admin::activated) };
+
+inline Table policyManaged { "POLICY_MANAGED", Column("admin", &PolicyManaged::admin),
+ Column("policy", &PolicyManaged::policy),
+ Column("value", &PolicyManaged::value) };
+
+inline Table policyDefinition { "POLICY_DEFINITION",
+ Column("name", &PolicyDefinition::name),
+ Column("ivalue", &PolicyDefinition::ivalue) };
+
} // namespace schema
} // namespace policy
} // namespace vist
#include <algorithm>
#include <fstream>
-using namespace vist::tsqb;
-using namespace vist::policy::schema;
-
namespace {
-Table adminTable { "ADMIN", Column("name", &Admin::name),
- Column("activated", &Admin::activated) };
-
-Table polManagedTable { "POLICY_MANAGED", Column("admin", &PolicyManaged::admin),
- Column("policy", &PolicyManaged::policy),
- Column("value", &PolicyManaged::value) };
-
-Table polDefinitionTable { "POLICY_DEFINITION", Column("name", &PolicyDefinition::name),
- Column("ivalue", &PolicyDefinition::ivalue) };
-
const std::string SCRIPT_BASE = SCRIPT_INSTALL_DIR;
const std::string SCRIPT_CREATE_SCHEMA = "create-schema";
void PolicyStorage::syncPolicyDefinition()
{
this->definitions.clear();
- std::string query = polDefinitionTable.selectAll();
+ std::string query = schema::policyDefinition.selectAll();
database::Statement stmt(*database, query);
while (stmt.step()) {
void PolicyStorage::syncAdmin()
{
this->admins.clear();
- std::string query = adminTable.selectAll();
+ std::string query = schema::admin.selectAll();
database::Statement stmt(*database, query);
while (stmt.step()) {
void PolicyStorage::syncPolicyManaged()
{
this->managedPolicies.clear();
- std::string query = polManagedTable.selectAll();
+ std::string query = schema::policyManaged.selectAll();
database::Statement stmt(*database, query);
while (stmt.step()) {
PolicyDefinition pd = { policy, ivalue.dump() };
- std::string query = polDefinitionTable.insert(&PolicyDefinition::name,
- &PolicyDefinition::ivalue);
+ std::string query = schema::policyDefinition.insert(&PolicyDefinition::name,
+ &PolicyDefinition::ivalue);
database::Statement stmt(*database, query);
stmt.bind(1, pd.name);
stmt.bind(2, pd.ivalue);
/// Make admin deactivated as default.
Admin admin = {name , 0};
- std::string query = adminTable.insert(&Admin::name, &Admin::activated);
+ std::string query = schema::admin.insert(&Admin::name, &Admin::activated);
database::Statement stmt(*database, query);
stmt.bind(1, admin.name);
stmt.bind(2, admin.activated);
this->admins.erase(name);
}
- std::string query = adminTable.remove().where(expr(&Admin::name) == name);
+ std::string query = schema::admin.remove().where(expr(&Admin::name) == name);
database::Statement stmt(*database, query);
stmt.bind(1, name);
if (!stmt.exec())
THROW(ErrCode::LogicError) << "Not exist admin: " << admin;
DEBUG(VIST) << "Activate admin: " << admin;
- std::string query = adminTable.update(&Admin::activated)
- .where(expr(&Admin::name) == admin);
+ std::string query = schema::admin.update(&Admin::activated)
+ .where(expr(&Admin::name) == admin);
database::Statement stmt(*this->database, query);
stmt.bind(1, static_cast<int>(state));
stmt.bind(2, admin);
if (this->definitions.find(policy) == this->definitions.end())
THROW(ErrCode::LogicError) << "Not exist policy: " << policy;
- std::string query = polManagedTable.update(&PolicyManaged::value)
- .where(expr(&PolicyManaged::admin) == admin &&
- expr(&PolicyManaged::policy) == policy);
+ std::string query = schema::policyManaged.update(&PolicyManaged::value)
+ .where(expr(&PolicyManaged::admin) == admin &&
+ expr(&PolicyManaged::policy) == policy);
database::Statement stmt(*this->database, query);
stmt.bind(1, value.dump());
stmt.bind(2, admin);