summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/common.h3
-rw-r--r--include/proto.h63
-rw-r--r--include/pttstruct.h29
3 files changed, 72 insertions, 23 deletions
diff --git a/include/common.h b/include/common.h
index f9377875..d5400070 100644
--- a/include/common.h
+++ b/include/common.h
@@ -115,6 +115,9 @@
#define STR_POST1 "看板:"
#define STR_POST2 "站內:"
+#define STR_LOGINDAYS "登入次數"
+#define STR_LOGINDAYS_QTY "次"
+
/* AIDS */
#define AID_DISPLAYNAME "文章代碼(AID)"
/* end of AIDS */
diff --git a/include/proto.h b/include/proto.h
index d49c8ae4..ea232c78 100644
--- a/include/proto.h
+++ b/include/proto.h
@@ -53,11 +53,7 @@ void BlogMain(int);
#endif
/* assess */
-int inc_goodpost(const char *, int num);
int inc_badpost(const char *, int num);
-int inc_goodsale(const char *, int num);
-int inc_badsale(const char *, int num);
-//void set_assess(int uid, unsigned char num, int type);
/* bbs */
void delete_allpost(const char *userid);
@@ -130,7 +126,7 @@ const char * postperm_msg(const char *bname);
int give_tax(int money);
const char* money_level(int money);
int vice(int money, const char* item);
-#define reload_money() cuser.money=moneyof(usernum)
+#define reload_money() // cuser.money=moneyof(usernum)
int lockutmpmode(int unmode, int state);
int unlockutmpmode(void);
int x_file(void);
@@ -458,7 +454,6 @@ int setupnewuser(const userec_t *user);
int regform_estimate_queuesize();
void new_register(void);
void check_register(void);
-void check_birthday(void);
int check_regmail(char *email); // check and prompt for invalid reason; will str_lower() mail domain.
void delregcodefile(void);
@@ -612,7 +607,7 @@ int kill_user(int num, const char *userid);
int u_editcalendar(void);
void user_display(const userec_t *u, int real);
int isvalidemail(char *email);
-void uinfo_query(userec_t *u, int real, int unum);
+void uinfo_query(const char *uid, int real, int unum);
int showsignature(char *fname, int *j, SigInfo *psi);
int u_cancelbadpost();
void kick_all(const char *user);
@@ -692,15 +687,61 @@ void passwd_force_update(int flag);
int passwd_sync_update (int num, userec_t * buf);
int passwd_sync_query (int num, userec_t * buf);
-// int passwd_add_my_numpost(int diff); // temporary hack before new account system ready.
-
// current user help utilities
+int pwcuBitEnableLevel (unsigned int mask);
+int pwcuBitDisableLevel (unsigned int mask);
+int pwcuIncNumPost ();
+int pwcuDecNumPost ();
+int pwcuSetGoodPost (unsigned int newgp);
+int pwcuViolateLaw ();
+int pwcuSaveViolateLaw ();
+int pwcuCancelBadpost ();
+int pwcuAddExMailBox (int m);
+int pwcuToggleOutMail ();
+int pwcuSetLoginView (unsigned int bits);
+int pwcuSetLastSongTime (time4_t clk);
+int pwcuSetMyAngel (const char *angel_uid);
+int pwcuSetNickname (const char *nickname);
+int pwcuChessResult (int sigType, ChessGameResult);
+int pwcuSetChessEloRating(uint16_t elo_rating);
+int pwcuSaveUserFlags ();
+int pwcuRegCompleteJustify (const char *justify);
+int pwcuRegSetTemporaryJustify(const char *justify, const char *email);
+int pwcuRegisterSetInfo (const char *rname,
+ const char *addr,
+ const char *career,
+ const char *phone,
+ const char *email,
+ int mobile,
+ uint8_t sex,
+ uint8_t year,
+ uint8_t month,
+ uint8_t day,
+ uint8_t is_foreign);
+
+// non-important based variables (only save on exit)
int pwcuSetSignature (unsigned char newsig);
-int pwcuBitSetLevel (unsigned int mask);
-int pwcuBitUnsetLevel (unsigned int mask);
+int pwcuSetWaterballMode(unsigned int bm);
+int pwcuToggleSortBoard ();
+int pwcuToggleFriendList();
+int pwcuToggleUserFlag (unsigned int mask); // not saved until pwcuSaveUserFlags
+int pwcuToggleUserFlag2 (unsigned int mask); // not saved until pwcuSaveUserFlags
+
+// session management
+int pwcuLoginSave ();
+int pwcuExitSave ();
+int pwcuReload ();
+
+// initialization
+void pwcuInitZero ();
+void pwcuInitGuestPerm ();
+void pwcuInitGuestInfo ();
+int pwcuInitAdminPerm ();
/* calendar */
int calendar(void);
int ParseDate(const char *date, int *year, int *month, int *day);
+int ParseDateTime(const char *date, int *year, int *month, int *day,
+ int *hour, int *min, int *sec);
#endif
diff --git a/include/pttstruct.h b/include/pttstruct.h
index 2c3591c4..4a8b76a9 100644
--- a/include/pttstruct.h
+++ b/include/pttstruct.h
@@ -63,10 +63,10 @@ typedef struct userec_t {
uint32_t uflag; /* 習慣1 , see uflags.h */
uint32_t uflag2; /* 習慣2 , see uflags.h */
uint32_t userlevel; /* 權限 */
- uint32_t numlogins; /* 上站次數 */
+ uint32_t numlogindays; /* 上線資歷 (每日最多+1的登入次數) */
uint32_t numposts; /* 文章篇數 */
time4_t firstlogin; /* 註冊時間 */
- time4_t lastlogin; /* 最近上站時間 */
+ time4_t lastlogin; /* 最近上站時間(包含隱身) */
char lasthost[IPV4LEN+1];/* 上次上站來源 */
int32_t money; /* Ptt幣 */
@@ -95,8 +95,10 @@ typedef struct userec_t {
char career[40]; /* 學歷職業 */
char phone[20]; /* 電話 */
- char chkpad1[52];
- time4_t chkpad2[3]; /* in case 有人忘了把 time4_t 調好... */
+ uint32_t old_numlogins; /* 轉換前的 numlogins, 備份檢視用 */
+ char chkpad1[48];
+ time4_t lastseen; /* 最近上站時間(隱身不計) */
+ time4_t chkpad2[2]; /* in case 有人忘了把 time4_t 調好... */
// 以上應為 sizeof(chicken_t) 同等大小
time4_t lastsong; /* 上次點歌時間 */
@@ -137,6 +139,15 @@ typedef struct userec_t {
char pad_tail[28];
} PACKSTRUCT userec_t;
+#ifndef NO_CONST_CUSER
+// const userec_t cuser;
+# define cuser_ref ((const userec_t*)&pwcuser)
+# define cuser (*cuser_ref)
+#else
+# define cuser_ref (&cuser)
+# define cuser pwcuser
+#endif
+
/* flags in userec_t.withme */
#define WITHME_ALLFLAG 0x55555555
#define WITHME_TALK 0x00000001
@@ -304,14 +315,8 @@ typedef struct msgque_t {
#define ALERT_NEW_MAIL (0x01)
#define ISNEWMAIL(utmp) (utmp->alerts & ALERT_NEW_MAIL)
-#define ALERT_PWD_PERM (0x02)
-#define ALERT_PWD_BADPOST (0x04)
-#define ALERT_PWD_GOODPOST (0x08)
-#define ALERT_PWD_JUSTIFY (0x10)
-// #define ALERT_PWD_LOGINS (0x20)
-#define ALERT_PWD_POSTS (0x40)
-#define ALERT_PWD_RELOAD (0x80) // reload entire pwd
-#define ALERT_PWD (ALERT_PWD_PERM|ALERT_PWD_BADPOST|ALERT_PWD_GOODPOST|ALERT_PWD_JUSTIFY|ALERT_PWD_POSTS|ALERT_PWD_RELOAD)
+#define ALERT_PWD_PERM (0x02)
+#define ISNEWPERM(utmp) (utmp->alerts & ALERT_PWD_PERM)
// userinfo_t.angelpause values
#define ANGELPAUSE_NONE (0) // reject none (accept all)