--- lbbs/include/user_priv.h 2025/05/19 02:16:24 1.3 +++ lbbs/include/user_priv.h 2025/07/02 04:17:33 1.7 @@ -18,7 +18,7 @@ #define _USER_PRIV_H_ #include "bbs.h" -#include +#include // User privilege #define S_NONE 0x0 @@ -32,24 +32,25 @@ #define S_ALL 0xff #define S_DEFAULT 0x3 // 0x1 | 0x2 -#define P_GUEST 0x0 //游客 -#define P_USER 0x1 //普通用户 +#define P_GUEST 0x0 //娓稿 +#define P_USER 0x1 //鏅氱敤鎴 //#define P_AUTH_USER 0x2 // Reserved -#define P_MAN_S 0x4 //副版主 -#define P_MAN_M 0x8 //正版主 +#define P_MAN_S 0x4 //鍓増涓 +#define P_MAN_M 0x8 //姝g増涓 #define P_MAN_C 0x10 // Reserved -#define P_ADMIN_S 0x20 //副系统管理员 -#define P_ADMIN_M 0x40 //主系统管理员 +#define P_ADMIN_S 0x20 //鍓郴缁熺鐞嗗憳 +#define P_ADMIN_M 0x40 //涓荤郴缁熺鐞嗗憳 struct user_priv { - long int uid; + int uid; int level; int g_priv; struct { int sid; int s_priv; + int is_favor; } s_priv_list[BBS_max_section]; int s_count; }; @@ -75,15 +76,23 @@ inline int checklevel2(BBS_user_priv *p_ return ((p_priv->level >= level) ? 1 : 0); } -extern int setpriv(BBS_user_priv *p_priv, int sid, int priv); +extern int setpriv(BBS_user_priv *p_priv, int sid, int priv, int is_favor); -extern int getpriv(BBS_user_priv *p_priv, int sid); +extern int getpriv(BBS_user_priv *p_priv, int sid, int *p_is_favor); inline int checkpriv(BBS_user_priv *p_priv, int sid, int priv) { - return (((getpriv(p_priv, sid) & priv)) == priv ? 1 : 0); + int is_favor = 0; + return (((getpriv(p_priv, sid, &is_favor) & priv)) == priv ? 1 : 0); } -extern int load_priv(MYSQL *db, BBS_user_priv *p_priv, long int uid); +inline int is_favor(BBS_user_priv *p_priv, int sid) +{ + int is_favor = 0; + getpriv(p_priv, sid, &is_favor); + return is_favor; +} + +extern int load_priv(MYSQL *db, BBS_user_priv *p_priv, int uid); #endif //_USER_PRIV_H_