X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/9701b7ab4dc4cd709ad4dcaa750fc0021f15e231..0347d1faca21404b65dd648033e066029abdebb6:/include/stg/admin_conf.h diff --git a/include/stg/admin_conf.h b/include/stg/admin_conf.h index 32012f34..7fbf4440 100644 --- a/include/stg/admin_conf.h +++ b/include/stg/admin_conf.h @@ -7,9 +7,10 @@ #ifndef ADMIN_CONF_H #define ADMIN_CONF_H -#include - #include "os_int.h" +#include "resetable.h" + +#include #define ADM_LOGIN_LEN (32) #define ADM_PASSWD_LEN (32) @@ -23,20 +24,24 @@ struct PRIV userPasswd(0), userAddDel(0), adminChg(0), - tariffChg(0) - {}; - PRIV(uint16_t p) - : userStat((p & 0x0003) >> 0x00), - userConf((p & 0x000C) >> 0x02), - userCash((p & 0x0030) >> 0x04), - userPasswd((p & 0x00C0) >> 0x06), - userAddDel((p & 0x0300) >> 0x08), - adminChg((p & 0x0C00) >> 0x0A), - tariffChg((p & 0x3000) >> 0x0C) + tariffChg(0), + serviceChg(0), + corpChg(0) + {} + PRIV(uint32_t p) + : userStat((p & 0x00000003) >> 0x00), + userConf((p & 0x0000000C) >> 0x02), + userCash((p & 0x00000030) >> 0x04), + userPasswd((p & 0x000000C0) >> 0x06), + userAddDel((p & 0x00000300) >> 0x08), + adminChg((p & 0x00000C00) >> 0x0A), + tariffChg((p & 0x00003000) >> 0x0C), + serviceChg((p & 0x0000C000) >> 0x0E), + corpChg((p & 0x00030000) >> 0x10) {} - uint16_t ToInt() const; - void FromInt(uint16_t p); + uint32_t ToInt() const; + void FromInt(uint32_t p); uint16_t userStat; uint16_t userConf; @@ -45,6 +50,8 @@ struct PRIV uint16_t userAddDel; uint16_t adminChg; uint16_t tariffChg; + uint16_t serviceChg; + uint16_t corpChg; }; //----------------------------------------------------------------------------- struct ADMIN_CONF @@ -69,6 +76,30 @@ struct ADMIN_CONF std::string password; }; //----------------------------------------------------------------------------- +struct ADMIN_CONF_RES +{ + ADMIN_CONF_RES() {} + ADMIN_CONF_RES(const ADMIN_CONF & conf) + : priv(conf.priv), + login(conf.login), + password(conf.password) + {} + ADMIN_CONF_RES(const ADMIN_CONF_RES & rhs) + : priv(rhs.priv), + login(rhs.login), + password(rhs.password) + {} + ADMIN_CONF_RES & operator=(const ADMIN_CONF_RES & rhs) + { + priv = rhs.priv; + login = rhs.login; + password = rhs.password; + return *this; + } + RESETABLE priv; + RESETABLE login; + RESETABLE password; +}; #include "admin_conf.inc.h"