You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
2.3 KiB
C

#pragma once
#include "GlobalDefine.h"
#include "module.h"
#define ACCOUNT_NO_LOGIN "δ<><CEB4>¼"
#define ACCOUNT_USER "<22><><EFBFBD><EFBFBD>Ա"
#define ACCOUNT_ADMIN "<22><><EFBFBD><EFBFBD>Ա"
#define ACCOUNT_FACTORY "<22><><EFBFBD><EFBFBD>"
enum AUTHORITY_TYPE
{
_NO_LOGIN = 0,//δ<><CEB4>¼
_USER,//<2F><><EFBFBD><EFBFBD>Ա
_ADMIN,//<2F><><EFBFBD><EFBFBD>Ա
_FACTORY,//<2F><><EFBFBD><EFBFBD>
};
//<2F>˺<EFBFBD>
class CAccount
{
public:
CAccount()
{
m_Authority = _NO_LOGIN;
}
void Serialize(CArchive& ar)
{
if(ar.IsStoring())
{
ar<<(int)m_Authority;
ar<<m_Name;
ar<<m_PassWord;
}
else
{
int tmp;
ar>>tmp;
m_Authority = (AUTHORITY_TYPE)tmp;
ar>>m_Name;
ar>>m_PassWord;
}
}
public:
AUTHORITY_TYPE m_Authority;//Ȩ<><C8A8>
CString m_Name;//<2F>û<EFBFBD><C3BB><EFBFBD>
CString m_PassWord;//<2F><><EFBFBD><EFBFBD>
};
//Ȩ<>޹<EFBFBD><DEB9><EFBFBD>
class CAuthorityMgr:public CModule
{
public:
CAuthorityMgr(void);
~CAuthorityMgr(void);
virtual void Ini();
virtual MODULE GetModuleType(){return _AUTHORITY_PROP;};
virtual CMFCPropertyGridProperty *CreatGridProperty();
void SetAuthority(AUTHORITY_TYPE authority){m_CurAuthority = authority;};//<2F><><EFBFBD>õ<EFBFBD>ǰȨ<C7B0><C8A8>
bool CheckAuthority(AUTHORITY_TYPE authority,bool bShowMsgbox = false);//<2F><><EFBFBD>鵱ǰȨ<C7B0><C8A8>
AUTHORITY_TYPE GetCurAuthority(){return m_CurAuthority;};
void AddAccount(CAccount Account);
bool Login(CString name,CString PassWord);
CString GetAccountName(AUTHORITY_TYPE authority);
void SaveOrLoad(bool bSave);
void InsertToList(CListCtrl &List);
void DelUser(int idx);
CString GetCurAccountName();
CString GetCurUserName(){return m_CurUserName;};
bool IsAutoFactory(){return m_AutoFactory;};
void Lock();
bool IsLogin();
private:
void SaveOrLoadExt(CArchive &ar);
void SortUserVec();
private:
AUTHORITY_TYPE m_CurAuthority;//<2F><>ǰȨ<C7B0><C8A8>
CString m_CurUserName;//<2F><>ǰ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>
vector<CAccount> m_UserVec;//<2F><><EFBFBD>е<EFBFBD><D0B5>û<EFBFBD>
bool m_AutoFactory;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԱȨ<D4B1><C8A8>
};
extern CAuthorityMgr *gAuthorityMgr;