Role
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
#include "User.h"
|
||||
#include "db/SQLHelper.h"
|
||||
#include <QMetaProperty>
|
||||
#include <event/EventCenter.h>
|
||||
#include <QUuid>
|
||||
#include <qdebug.h>
|
||||
User* User::currentUser = nullptr;
|
||||
@@ -57,14 +58,24 @@ bool User::QueryUser(QString userID, QString Pwd) {
|
||||
SQLHelper::QueryFirst(sql, map, ¶ms);
|
||||
if(!map.isEmpty())
|
||||
{
|
||||
if (!currentUser) currentUser = new User;
|
||||
// first login
|
||||
if (!currentUser) {
|
||||
currentUser = new User;
|
||||
// currentUser->roleName = getRoleName(map["RoleID"].toString());
|
||||
}
|
||||
QString roleN = getRoleName(map["RoleID"].toString());
|
||||
|
||||
#define USER_READONLY_PROPERTY(name) currentUser->m_##name = map[#name].toString();
|
||||
#define USER_PROPERTY(name) currentUser->mf_##name = false;\
|
||||
USER_READONLY_PROPERTY(name)
|
||||
USER_PROPERTIES_MACRO()
|
||||
#undef USER_PROPERTY
|
||||
#undef USER_READONLY_PROPERTY
|
||||
currentUser->isAdminFlag = -1;
|
||||
// trigger LoginRoleChanged event
|
||||
if (roleN != currentUser->roleName){
|
||||
currentUser->roleName = roleN;
|
||||
EventCenter::Default()->triggerEvent(LoginRoleChanged, nullptr, nullptr);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -99,15 +110,6 @@ bool User::getUser(QString userUID, User& user) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool User::isAdmin() {
|
||||
if (isAdminFlag<0)
|
||||
{
|
||||
auto RoleName = getRoleName(this->m_RoleID);
|
||||
isAdminFlag = RoleName == "admin"?1:0 ;
|
||||
}
|
||||
return isAdminFlag;
|
||||
}
|
||||
|
||||
static bool LOAD_ALL_ROLE = false;
|
||||
static QMap<QString,QString> roleCache;
|
||||
|
||||
@@ -180,5 +182,14 @@ bool User::resetPassword() {
|
||||
}
|
||||
|
||||
|
||||
bool User::isAdmin() {
|
||||
return roleName == "admin" ;
|
||||
}
|
||||
|
||||
bool User::isEngineer() {
|
||||
return roleName == "engineer";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -63,6 +63,7 @@ public:
|
||||
}
|
||||
bool submitChange();
|
||||
bool isAdmin();
|
||||
bool isEngineer();
|
||||
bool resetPassword();
|
||||
static QString getRoleName(QString RoleID);
|
||||
static QString getRoleID(QString RoleName);
|
||||
@@ -77,7 +78,7 @@ private:
|
||||
USER_PROPERTIES_MACRO()
|
||||
#undef USER_PROPERTY
|
||||
#undef USER_READONLY_PROPERTY
|
||||
int isAdminFlag = -1;
|
||||
QString roleName;
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user