mirror of
https://github.com/Relintai/rcpp_framework.git
synced 2025-02-20 15:14:26 +01: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() {
|
||||
_ranks = RBACModel::get_singleton()->load_ranks();
|
||||
_default_rank_id = RBACModel::get_singleton()->get_default_rank();
|
||||
_default_user_rank_id = RBACModel::get_singleton()->get_default_user_rank();
|
||||
|
||||
register_permissions();
|
||||
}
|
||||
@ -586,6 +587,13 @@ Ref<RBACRank> RBACController::get_rank(int 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() {
|
||||
return _default_rank_id;
|
||||
}
|
||||
@ -615,6 +623,7 @@ RBACController::RBACController() :
|
||||
}
|
||||
|
||||
_default_rank_id = 0;
|
||||
_default_user_rank_id = 0;
|
||||
|
||||
_self = this;
|
||||
}
|
||||
|
@ -65,6 +65,10 @@ public:
|
||||
virtual void register_permissions();
|
||||
|
||||
Ref<RBACRank> get_rank(int rank_id);
|
||||
|
||||
int get_default_user_rank_id();
|
||||
Ref<RBACRank> get_default_user_rank();
|
||||
|
||||
int get_default_rank_id();
|
||||
Ref<RBACRank> get_default_rank();
|
||||
|
||||
@ -81,6 +85,7 @@ protected:
|
||||
static RBACController *_self;
|
||||
|
||||
int _default_rank_id;
|
||||
int _default_user_rank_id;
|
||||
std::map<int, Ref<RBACRank> > _ranks;
|
||||
String _redirect_url;
|
||||
|
||||
|
@ -149,6 +149,11 @@ int RBACModel::get_default_rank() {
|
||||
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() {
|
||||
//todo, load this, and save it to a table (probably a new settings class)
|
||||
return String("/user/login");
|
||||
|
@ -20,6 +20,7 @@ public:
|
||||
virtual void save_rank(const Ref<RBACRank> &rank);
|
||||
virtual void save_permission(const Ref<RBACPermission> &permission);
|
||||
virtual int get_default_rank();
|
||||
virtual int get_default_user_rank();
|
||||
virtual String get_redirect_url();
|
||||
|
||||
void create_table();
|
||||
|
@ -41,7 +41,7 @@ Ref<User> RBACUserModel::create_user() {
|
||||
Ref<RBACUser> u;
|
||||
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);
|
||||
|
||||
return u;
|
||||
|
Loading…
Reference in New Issue
Block a user