mirror of
https://github.com/Relintai/rcpp_framework.git
synced 2024-11-14 04:57:21 +01:00
MIgrations for the rbac module.
This commit is contained in:
parent
e1ceb543f3
commit
32d370bfa3
@ -14,6 +14,10 @@ void RBACController::handle_request_main(Request *request) {
|
|||||||
void RBACController::create_validators() {
|
void RBACController::create_validators() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RBACController::admin_handle_request_main(Request *request) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void RBACController::admin_add_section_links(Vector<AdminSectionLinkInfo> *links) {
|
void RBACController::admin_add_section_links(Vector<AdminSectionLinkInfo> *links) {
|
||||||
links->push_back(AdminSectionLinkInfo("Test", "test"));
|
links->push_back(AdminSectionLinkInfo("Test", "test"));
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ public:
|
|||||||
void handle_request_main(Request *request);
|
void handle_request_main(Request *request);
|
||||||
void create_validators();
|
void create_validators();
|
||||||
|
|
||||||
|
void admin_handle_request_main(Request *request);
|
||||||
void admin_add_section_links(Vector<AdminSectionLinkInfo> *links);
|
void admin_add_section_links(Vector<AdminSectionLinkInfo> *links);
|
||||||
|
|
||||||
static RBACController *get_singleton();
|
static RBACController *get_singleton();
|
||||||
|
@ -6,29 +6,46 @@
|
|||||||
#include "core/database/query_result.h"
|
#include "core/database/query_result.h"
|
||||||
#include "core/database/table_builder.h"
|
#include "core/database/table_builder.h"
|
||||||
|
|
||||||
|
#define RBAC_RANK_TABLE "rbac_ranks"
|
||||||
|
#define RBAC_PERMISSION_TABLE "rbac_permissions"
|
||||||
|
|
||||||
void RBACModel::create_table() {
|
void RBACModel::create_table() {
|
||||||
Ref<TableBuilder> tb = DatabaseManager::get_singleton()->ddb->get_table_builder();
|
Ref<TableBuilder> tb = DatabaseManager::get_singleton()->ddb->get_table_builder();
|
||||||
|
|
||||||
tb->create_table(_table_name);
|
tb->create_table(RBAC_RANK_TABLE);
|
||||||
tb->integer("id")->auto_increment()->next_row();
|
tb->integer("id")->auto_increment()->next_row();
|
||||||
tb->varchar("username", 60)->not_null()->next_row();
|
tb->varchar("name", 60)->not_null()->next_row();
|
||||||
tb->varchar("email", 100)->not_null()->next_row();
|
tb->varchar("name_internal", 100)->not_null()->next_row();
|
||||||
tb->integer("rank")->not_null()->next_row();
|
tb->varchar("settings", 200)->not_null()->next_row();
|
||||||
tb->varchar("pre_salt", 100)->next_row();
|
tb->integer("rank_permissions")->not_null()->next_row();
|
||||||
tb->varchar("post_salt", 100)->next_row();
|
|
||||||
tb->varchar("password_hash", 100)->next_row();
|
|
||||||
tb->integer("banned")->next_row();
|
|
||||||
tb->varchar("password_reset_token", 100)->next_row();
|
|
||||||
tb->integer("locked")->next_row();
|
|
||||||
tb->primary_key("id");
|
tb->primary_key("id");
|
||||||
tb->ccreate_table();
|
tb->ccreate_table();
|
||||||
|
//tb->run_query();
|
||||||
|
//tb->print();
|
||||||
|
|
||||||
|
//tb->result = "";
|
||||||
|
|
||||||
|
tb->create_table(RBAC_PERMISSION_TABLE);
|
||||||
|
tb->integer("id")->auto_increment()->next_row();
|
||||||
|
tb->integer("rank_id")->not_null()->next_row();
|
||||||
|
tb->varchar("name", 60)->not_null()->next_row();
|
||||||
|
tb->varchar("url", 100)->not_null()->next_row();
|
||||||
|
|
||||||
|
tb->integer("revoke")->not_null()->next_row();
|
||||||
|
tb->integer("sort_order")->not_null()->next_row();
|
||||||
|
tb->integer("permissions")->not_null()->next_row();
|
||||||
|
|
||||||
|
tb->primary_key("id");
|
||||||
|
tb->foreign_key("rank_id")->references(RBAC_RANK_TABLE, "id");
|
||||||
|
tb->ccreate_table();
|
||||||
tb->run_query();
|
tb->run_query();
|
||||||
//tb->print();
|
//tb->print();
|
||||||
}
|
}
|
||||||
void RBACModel::drop_table() {
|
void RBACModel::drop_table() {
|
||||||
Ref<TableBuilder> tb = DatabaseManager::get_singleton()->ddb->get_table_builder();
|
Ref<TableBuilder> tb = DatabaseManager::get_singleton()->ddb->get_table_builder();
|
||||||
|
|
||||||
tb->drop_table_if_exists(_table_name)->run_query();
|
tb->drop_table_if_exists(RBAC_PERMISSION_TABLE)->drop_table_if_exists(RBAC_RANK_TABLE)->run_query();
|
||||||
|
//tb->print();
|
||||||
}
|
}
|
||||||
void RBACModel::migrate() {
|
void RBACModel::migrate() {
|
||||||
drop_table();
|
drop_table();
|
||||||
|
@ -5,7 +5,6 @@ RBACPermission::RBACPermission() :
|
|||||||
|
|
||||||
id = 0;
|
id = 0;
|
||||||
rank_id = 0;
|
rank_id = 0;
|
||||||
permission_id = 0;
|
|
||||||
revoke = false;
|
revoke = false;
|
||||||
sort_order = 0;
|
sort_order = 0;
|
||||||
permissions = 0;
|
permissions = 0;
|
||||||
|
@ -11,7 +11,6 @@ class RBACPermission : public Resource {
|
|||||||
public:
|
public:
|
||||||
int id;
|
int id;
|
||||||
int rank_id;
|
int rank_id;
|
||||||
int permission_id;
|
|
||||||
std::string name;
|
std::string name;
|
||||||
std::string url;
|
std::string url;
|
||||||
bool revoke;
|
bool revoke;
|
||||||
|
@ -4,8 +4,9 @@ RBACRank::RBACRank() :
|
|||||||
Resource() {
|
Resource() {
|
||||||
|
|
||||||
id = 0;
|
id = 0;
|
||||||
|
rank_permissions = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
RBACRank::~RBACRank() {
|
RBACRank::~RBACRank() {
|
||||||
groups.clear();
|
permissions.clear();
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,9 @@ public:
|
|||||||
std::string name_internal;
|
std::string name_internal;
|
||||||
std::string settings;
|
std::string settings;
|
||||||
|
|
||||||
std::vector<Ref<RBACPermission> > groups;
|
int rank_permissions;
|
||||||
|
|
||||||
|
std::vector<Ref<RBACPermission> > permissions;
|
||||||
|
|
||||||
RBACRank();
|
RBACRank();
|
||||||
~RBACRank();
|
~RBACRank();
|
||||||
|
Loading…
Reference in New Issue
Block a user