mirror of
https://github.com/Relintai/rcpp_framework.git
synced 2025-05-02 13:47:56 +02:00
Added support for a default user rank id. It's not yet properly settable, only from code.
This commit is contained in:
parent
adda93bc3a
commit
3817221dbd
@ -568,6 +568,7 @@ void RBACController::clear_registered_permissions() {
|
|||||||
void RBACController::initialize() {
|
void RBACController::initialize() {
|
||||||
_ranks = RBACModel::get_singleton()->load_ranks();
|
_ranks = RBACModel::get_singleton()->load_ranks();
|
||||||
_default_rank_id = RBACModel::get_singleton()->get_default_rank();
|
_default_rank_id = RBACModel::get_singleton()->get_default_rank();
|
||||||
|
_default_user_rank_id = RBACModel::get_singleton()->get_default_user_rank();
|
||||||
|
|
||||||
register_permissions();
|
register_permissions();
|
||||||
}
|
}
|
||||||
@ -586,6 +587,13 @@ Ref<RBACRank> RBACController::get_rank(int rank_id) {
|
|||||||
return _ranks[rank_id];
|
return _ranks[rank_id];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int RBACController::get_default_user_rank_id() {
|
||||||
|
return _default_user_rank_id;
|
||||||
|
}
|
||||||
|
Ref<RBACRank> RBACController::get_default_user_rank() {
|
||||||
|
return _ranks[get_default_user_rank_id()];
|
||||||
|
}
|
||||||
|
|
||||||
int RBACController::get_default_rank_id() {
|
int RBACController::get_default_rank_id() {
|
||||||
return _default_rank_id;
|
return _default_rank_id;
|
||||||
}
|
}
|
||||||
@ -615,6 +623,7 @@ RBACController::RBACController() :
|
|||||||
}
|
}
|
||||||
|
|
||||||
_default_rank_id = 0;
|
_default_rank_id = 0;
|
||||||
|
_default_user_rank_id = 0;
|
||||||
|
|
||||||
_self = this;
|
_self = this;
|
||||||
}
|
}
|
||||||
|
@ -65,6 +65,10 @@ public:
|
|||||||
virtual void register_permissions();
|
virtual void register_permissions();
|
||||||
|
|
||||||
Ref<RBACRank> get_rank(int rank_id);
|
Ref<RBACRank> get_rank(int rank_id);
|
||||||
|
|
||||||
|
int get_default_user_rank_id();
|
||||||
|
Ref<RBACRank> get_default_user_rank();
|
||||||
|
|
||||||
int get_default_rank_id();
|
int get_default_rank_id();
|
||||||
Ref<RBACRank> get_default_rank();
|
Ref<RBACRank> get_default_rank();
|
||||||
|
|
||||||
@ -81,6 +85,7 @@ protected:
|
|||||||
static RBACController *_self;
|
static RBACController *_self;
|
||||||
|
|
||||||
int _default_rank_id;
|
int _default_rank_id;
|
||||||
|
int _default_user_rank_id;
|
||||||
std::map<int, Ref<RBACRank> > _ranks;
|
std::map<int, Ref<RBACRank> > _ranks;
|
||||||
String _redirect_url;
|
String _redirect_url;
|
||||||
|
|
||||||
|
@ -149,6 +149,11 @@ int RBACModel::get_default_rank() {
|
|||||||
return 3;
|
return 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int RBACModel::get_default_user_rank() {
|
||||||
|
//todo, load this, and save it to a table (probably a new settings class)
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
String RBACModel::get_redirect_url() {
|
String RBACModel::get_redirect_url() {
|
||||||
//todo, load this, and save it to a table (probably a new settings class)
|
//todo, load this, and save it to a table (probably a new settings class)
|
||||||
return String("/user/login");
|
return String("/user/login");
|
||||||
|
@ -20,6 +20,7 @@ public:
|
|||||||
virtual void save_rank(const Ref<RBACRank> &rank);
|
virtual void save_rank(const Ref<RBACRank> &rank);
|
||||||
virtual void save_permission(const Ref<RBACPermission> &permission);
|
virtual void save_permission(const Ref<RBACPermission> &permission);
|
||||||
virtual int get_default_rank();
|
virtual int get_default_rank();
|
||||||
|
virtual int get_default_user_rank();
|
||||||
virtual String get_redirect_url();
|
virtual String get_redirect_url();
|
||||||
|
|
||||||
void create_table();
|
void create_table();
|
||||||
|
@ -41,7 +41,7 @@ Ref<User> RBACUserModel::create_user() {
|
|||||||
Ref<RBACUser> u;
|
Ref<RBACUser> u;
|
||||||
u.instance();
|
u.instance();
|
||||||
|
|
||||||
u->rank = RBACController::get_singleton()->get_default_rank_id();
|
u->rank = RBACController::get_singleton()->get_default_user_rank_id();
|
||||||
u->rbac_rank = RBACController::get_singleton()->get_rank(u->rank);
|
u->rbac_rank = RBACController::get_singleton()->get_rank(u->rank);
|
||||||
|
|
||||||
return u;
|
return u;
|
||||||
|
Loading…
Reference in New Issue
Block a user