Role
This commit is contained in:
@@ -126,10 +126,7 @@ void LoginWindow::doLogin()
|
|||||||
QString strPassWord = m_pPassWordEdit->text();
|
QString strPassWord = m_pPassWordEdit->text();
|
||||||
|
|
||||||
QString encryptedPassword = strPassWord;
|
QString encryptedPassword = strPassWord;
|
||||||
strPassWord = "12345678";
|
strPassWord = "123456";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
QString encryptPwd = User::getEncryptedPassword(strPassWord);
|
QString encryptPwd = User::getEncryptedPassword(strPassWord);
|
||||||
QString sql = QString("select UserCode from Account where UserCode='%1' and Password='%2'")
|
QString sql = QString("select UserCode from Account where UserCode='%1' and Password='%2'")
|
||||||
|
|||||||
@@ -82,14 +82,14 @@ MainWindow::MainWindow(QWidget* parent) :
|
|||||||
"QComboBox QAbstractItemView::item {min-height:60px;max-height:60px; border:1px solid white;}"
|
"QComboBox QAbstractItemView::item {min-height:60px;max-height:60px; border:1px solid white;}"
|
||||||
//"QScrollBar:vertical {min-width: 50px;}"
|
//"QScrollBar:vertical {min-width: 50px;}"
|
||||||
"QLabel{color:white; font-weight:bold; font-size:16px;}\n"
|
"QLabel{color:white; font-weight:bold; font-size:16px;}\n"
|
||||||
"QLabel#sliderPickerLabel{color:silver;padding:0;background:#505050;font-weight:normal;font-size:50px;}\n"
|
"QLabel#sliderPickerLabel{color:silver;padding:0;background:#505050;font-weight:normal;font-size:50px;}\n"
|
||||||
"QWidget#topbarWidget{min-height:36px;max-height:36px;}\n"
|
"QWidget#topbarWidget{min-height:36px;max-height:36px;}\n"
|
||||||
"QWidget#contentWidget{border-top:1px solid #515151;}\n"
|
"QWidget#contentWidget{border-top:1px solid #515151;}\n"
|
||||||
"QWidget#commandWidget{min-height:123px;max-height:123px;border-top:1px solid #515151; border-bottom:1px solid #323232;}\n"
|
"QWidget#commandWidget{min-height:123px;max-height:123px;border-top:1px solid #515151; border-bottom:1px solid #323232;}\n"
|
||||||
"QLabel#logo{min-width:30px;max-width:30px}\n"
|
"QLabel#logo{min-width:30px;max-width:30px}\n"
|
||||||
"QLabel#company{min-width:150px;max-width:150px; }\n"
|
"QLabel#company{min-width:150px;max-width:150px; }\n"
|
||||||
"QLabel#systemMsgBar{min-width:500px;}"
|
"QLabel#systemMsgBar{min-width:500px;}"
|
||||||
"QLabel#warn{color:#CCCC00;background:transparent;font-size:20px;}"
|
"QLabel#warn{color:#CCCC00;background:transparent;font-size:20px;}"
|
||||||
"QWidget QWidget#statusBarWidget{min-width:300px;}\n"
|
"QWidget QWidget#statusBarWidget{min-width:300px;}\n"
|
||||||
"QWidget QToolButton{border:none;border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}\n"
|
"QWidget QToolButton{border:none;border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}\n"
|
||||||
"QToolButton#btn_main{border:2px solid #0078d8;border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}\n"
|
"QToolButton#btn_main{border:2px solid #0078d8;border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}\n"
|
||||||
@@ -103,8 +103,8 @@ MainWindow::MainWindow(QWidget* parent) :
|
|||||||
"QDialog QWidget#innerWidget{ background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,"
|
"QDialog QWidget#innerWidget{ background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,"
|
||||||
"stop: 0.0 darkgray, stop: 0.5 lightgray, stop: 1.0 darkgray);"
|
"stop: 0.0 darkgray, stop: 0.5 lightgray, stop: 1.0 darkgray);"
|
||||||
"border-radius:20px;border:5px solid #0078d8; }"
|
"border-radius:20px;border:5px solid #0078d8; }"
|
||||||
"QDialog#MessageDialog QWidget QWidget{ background:transparent;color:#3078d8}"
|
"QDialog#MessageDialog QWidget QWidget{ background:transparent;color:#3078d8}"
|
||||||
"QDialog#MessageDialog QWidget QWidget QLabel{ font-size:30px}"
|
"QDialog#MessageDialog QWidget QWidget QLabel{ font-size:30px}"
|
||||||
"#spacer_1, #spacer_2{min-width:2px;max-width:2px;margin-top:6px;margin-bottom:6px;border-right:1px solid #0078d8;}"
|
"#spacer_1, #spacer_2{min-width:2px;max-width:2px;margin-top:6px;margin-bottom:6px;border-right:1px solid #0078d8;}"
|
||||||
//FormDialog
|
//FormDialog
|
||||||
"QPushButton{border:1px solid silver ;padding-left:50px;padding-right:50px; border-radius:5px; min-height:28px; max-height:28px; background:#4c5052}"
|
"QPushButton{border:1px solid silver ;padding-left:50px;padding-right:50px; border-radius:5px; min-height:28px; max-height:28px; background:#4c5052}"
|
||||||
@@ -147,6 +147,10 @@ MainWindow::MainWindow(QWidget* parent) :
|
|||||||
tab->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
tab->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||||
QVBoxLayout* layout = new QVBoxLayout(this);
|
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||||
layout->setMargin(0);
|
layout->setMargin(0);
|
||||||
|
layout->setSpacing(0);
|
||||||
|
QWidget * top = new TopBarWidget(this);
|
||||||
|
top->setObjectName("topbarWidget");
|
||||||
|
layout->addWidget(top);
|
||||||
layout->addWidget(tab);
|
layout->addWidget(tab);
|
||||||
|
|
||||||
ui->centralWidget->setLayout(layout);
|
ui->centralWidget->setLayout(layout);
|
||||||
@@ -171,11 +175,11 @@ MainWindow::MainWindow(QWidget* parent) :
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
connect(EventCenter::Default(), &EventCenter::InvokeOperationStart, [=](QObject*, QObject* msg) {
|
connect(EventCenter::Default(), &EventCenter::InvokeOperationStart, [=](QObject*, QObject* msg) {
|
||||||
if (msgDialog) {
|
if (msgDialog){
|
||||||
msgDialog->hide();
|
msgDialog->hide();
|
||||||
delete msgDialog;
|
delete msgDialog;
|
||||||
}
|
}
|
||||||
msgDialog = new GUIMessageDialog(this);
|
msgDialog = new GUIMessageDialog(this);
|
||||||
if (msg)
|
if (msg)
|
||||||
{
|
{
|
||||||
QString* str = (QString*)msg;
|
QString* str = (QString*)msg;
|
||||||
@@ -187,11 +191,11 @@ MainWindow::MainWindow(QWidget* parent) :
|
|||||||
msgDialog->hideExitButton();
|
msgDialog->hideExitButton();
|
||||||
msgDialog->startLoading();
|
msgDialog->startLoading();
|
||||||
AppGlobalValues::setInProcessing(true);
|
AppGlobalValues::setInProcessing(true);
|
||||||
// msgDialog->showFullScreen();
|
// msgDialog->showFullScreen();
|
||||||
if (msgDialog->isHidden()) {
|
if (msgDialog->isHidden()){
|
||||||
msgDialog->show();
|
msgDialog->show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
connect(EventCenter::Default(), &EventCenter::InvokeOperationProgress, [=](QObject*, QObject* msg) {
|
connect(EventCenter::Default(), &EventCenter::InvokeOperationProgress, [=](QObject*, QObject* msg) {
|
||||||
if (!msgDialog) msgDialog = new GUIMessageDialog(this);
|
if (!msgDialog) msgDialog = new GUIMessageDialog(this);
|
||||||
if (msg)
|
if (msg)
|
||||||
@@ -202,8 +206,8 @@ MainWindow::MainWindow(QWidget* parent) :
|
|||||||
else {
|
else {
|
||||||
msgDialog->hideMessage();
|
msgDialog->hideMessage();
|
||||||
}
|
}
|
||||||
// msgDialog->showFullScreen();
|
// msgDialog->showFullScreen();
|
||||||
if (msgDialog->isHidden())msgDialog->show();
|
if (msgDialog->isHidden())msgDialog->show();
|
||||||
});
|
});
|
||||||
connect(EventCenter::Default(), &EventCenter::InvokeOperationEnd, [=]() {
|
connect(EventCenter::Default(), &EventCenter::InvokeOperationEnd, [=]() {
|
||||||
if (!msgDialog) return;
|
if (!msgDialog) return;
|
||||||
@@ -215,6 +219,23 @@ MainWindow::MainWindow(QWidget* parent) :
|
|||||||
connect(EventCenter::Default(), &EventCenter::RequestLogin, [=](QObject*, QObject* msg) {
|
connect(EventCenter::Default(), &EventCenter::RequestLogin, [=](QObject*, QObject* msg) {
|
||||||
this->requestLogin();
|
this->requestLogin();
|
||||||
});
|
});
|
||||||
|
connect(EventCenter::Default(), &EventCenter::LoginRoleChanged, [=](QObject*, QObject*) {
|
||||||
|
if (User::Current()->isAdmin() )
|
||||||
|
{
|
||||||
|
if (admin_tab_index == -1)
|
||||||
|
{
|
||||||
|
AdminSettingForm * form = new AdminSettingForm(this);
|
||||||
|
admin_tab_index = tab->addTab(form,"Admin");
|
||||||
|
}
|
||||||
|
} else{
|
||||||
|
if (admin_tab_index != -1){
|
||||||
|
tab->removeTab(admin_tab_index);
|
||||||
|
admin_tab_index = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
qApp->processEvents();
|
||||||
|
});
|
||||||
|
|
||||||
GUIErrorHandle::Default()->init();
|
GUIErrorHandle::Default()->init();
|
||||||
DeviceManager::Default()->initDevice();
|
DeviceManager::Default()->initDevice();
|
||||||
|
|
||||||
@@ -255,25 +276,11 @@ void MainWindow::changeEvent(QEvent* event)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::centerWidgetHide() {
|
void MainWindow::centerWidgetHide() {
|
||||||
ui->centralWidget->setVisible(false);
|
ui->centralWidget->setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::centerWidgetShow() {
|
void MainWindow::centerWidgetShow() {
|
||||||
if (User::Current()->isAdmin())
|
|
||||||
{
|
|
||||||
if (admin_tab_index == -1)
|
|
||||||
{
|
|
||||||
AdminSettingForm* form = new AdminSettingForm(this);
|
|
||||||
admin_tab_index = tab->addTab(form, "Admin");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (admin_tab_index != -1) {
|
|
||||||
tab->removeTab(admin_tab_index);
|
|
||||||
admin_tab_index = -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
qApp->processEvents();
|
|
||||||
ui->centralWidget->setVisible(true);
|
ui->centralWidget->setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -284,19 +291,19 @@ QTextEdit* MainWindow::getEdit()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::requestLogin() {
|
void MainWindow::requestLogin() {
|
||||||
LoginWindow l(this);
|
LoginWindow l(this);
|
||||||
l.setWindowModality(Qt::WindowModal);
|
l.setWindowModality(Qt::WindowModal);
|
||||||
l.showFullScreen();
|
l.showFullScreen();
|
||||||
this->centerWidgetHide();
|
this->centerWidgetHide();
|
||||||
while (l.result() != QDialog::Accepted)
|
while(l.result() != QDialog::Accepted)
|
||||||
{
|
{
|
||||||
l.exec();
|
l.exec();
|
||||||
}
|
}
|
||||||
this->centerWidgetShow();
|
this->centerWidgetShow();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::debugConsoleOn() {
|
void MainWindow::debugConsoleOn() {
|
||||||
QTextEdit* text_edit = new QTextEdit(this);
|
QTextEdit* text_edit = new QTextEdit(this);
|
||||||
ui->centralWidget->layout()->addWidget(text_edit);
|
ui->centralWidget->layout()->addWidget(text_edit);
|
||||||
const QString edit_style =
|
const QString edit_style =
|
||||||
"QScrollBar:vertical{border: 0px solid grey; background:#2d2d2d; width: 15px; margin: 0px 0 0px 0; }"
|
"QScrollBar:vertical{border: 0px solid grey; background:#2d2d2d; width: 15px; margin: 0px 0 0px 0; }"
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
#include "User.h"
|
#include "User.h"
|
||||||
#include "db/SQLHelper.h"
|
#include "db/SQLHelper.h"
|
||||||
#include <QMetaProperty>
|
#include <QMetaProperty>
|
||||||
|
#include <event/EventCenter.h>
|
||||||
#include <QUuid>
|
#include <QUuid>
|
||||||
#include <qdebug.h>
|
#include <qdebug.h>
|
||||||
User* User::currentUser = nullptr;
|
User* User::currentUser = nullptr;
|
||||||
@@ -57,14 +58,24 @@ bool User::QueryUser(QString userID, QString Pwd) {
|
|||||||
SQLHelper::QueryFirst(sql, map, ¶ms);
|
SQLHelper::QueryFirst(sql, map, ¶ms);
|
||||||
if(!map.isEmpty())
|
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_READONLY_PROPERTY(name) currentUser->m_##name = map[#name].toString();
|
||||||
#define USER_PROPERTY(name) currentUser->mf_##name = false;\
|
#define USER_PROPERTY(name) currentUser->mf_##name = false;\
|
||||||
USER_READONLY_PROPERTY(name)
|
USER_READONLY_PROPERTY(name)
|
||||||
USER_PROPERTIES_MACRO()
|
USER_PROPERTIES_MACRO()
|
||||||
#undef USER_PROPERTY
|
#undef USER_PROPERTY
|
||||||
#undef USER_READONLY_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 true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -99,15 +110,6 @@ bool User::getUser(QString userUID, User& user) {
|
|||||||
return false;
|
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 bool LOAD_ALL_ROLE = false;
|
||||||
static QMap<QString,QString> roleCache;
|
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 submitChange();
|
||||||
bool isAdmin();
|
bool isAdmin();
|
||||||
|
bool isEngineer();
|
||||||
bool resetPassword();
|
bool resetPassword();
|
||||||
static QString getRoleName(QString RoleID);
|
static QString getRoleName(QString RoleID);
|
||||||
static QString getRoleID(QString RoleName);
|
static QString getRoleID(QString RoleName);
|
||||||
@@ -77,7 +78,7 @@ private:
|
|||||||
USER_PROPERTIES_MACRO()
|
USER_PROPERTIES_MACRO()
|
||||||
#undef USER_PROPERTY
|
#undef USER_PROPERTY
|
||||||
#undef USER_READONLY_PROPERTY
|
#undef USER_READONLY_PROPERTY
|
||||||
int isAdminFlag = -1;
|
QString roleName;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user