User Model for database access
This commit is contained in:
66
src/models/User.h
Normal file
66
src/models/User.h
Normal file
@@ -0,0 +1,66 @@
|
||||
//
|
||||
// Created by Krad on 2021/11/11.
|
||||
//
|
||||
|
||||
#ifndef GUI_USER_H
|
||||
#define GUI_USER_H
|
||||
|
||||
#define USER_PROPERTIES_MACRO()\
|
||||
USER_READONLY_PROPERTY(UserID)\
|
||||
USER_READONLY_PROPERTY(UserCode)\
|
||||
USER_PROPERTY(UserName)\
|
||||
USER_PROPERTY(Password)\
|
||||
USER_PROPERTY(RoleID)\
|
||||
USER_PROPERTY(Comment)
|
||||
|
||||
|
||||
#include <QObject>
|
||||
class User:public QObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
static bool QueryUser(QString userID, QString Pwd);
|
||||
static User* Current(){
|
||||
return currentUser;
|
||||
}
|
||||
explicit User(QObject *parent=nullptr);
|
||||
~User();
|
||||
QString getIndexName(){
|
||||
return "UserID";
|
||||
}
|
||||
QString getIndexValue(){
|
||||
return m_UserID;
|
||||
}
|
||||
// add properties setter and getter
|
||||
#define USER_READONLY_PROPERTY(name)\
|
||||
QString get##name(){\
|
||||
return m_##name;\
|
||||
}
|
||||
#define USER_PROPERTY(name)\
|
||||
USER_READONLY_PROPERTY(name)\
|
||||
void set##name(const QString & v)\
|
||||
{\
|
||||
if (m_##name == v) return;\
|
||||
m_##name = v;\
|
||||
mf_##name = true;\
|
||||
}
|
||||
USER_PROPERTIES_MACRO()
|
||||
#undef USER_PROPERTY
|
||||
#undef USER_READONLY_PROPERTY
|
||||
|
||||
bool submitChange();
|
||||
private:
|
||||
static User* currentUser;
|
||||
|
||||
// add properties store and modify flag
|
||||
#define USER_READONLY_PROPERTY(name) QString m_##name;
|
||||
#define USER_PROPERTY(name)\
|
||||
USER_READONLY_PROPERTY(name)\
|
||||
bool mf_##name = false;
|
||||
USER_PROPERTIES_MACRO()
|
||||
#undef USER_PROPERTY
|
||||
#undef USER_READONLY_PROPERTY
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif //GUI_USER_H
|
||||
Reference in New Issue
Block a user