diff options
-rw-r--r-- | mbbsd/mbbsd.c | 14 | ||||
-rw-r--r-- | mbbsd/passwd.c | 3 | ||||
-rw-r--r-- | mbbsd/user.c | 2 | ||||
-rw-r--r-- | mbbsd/var.c | 3 |
4 files changed, 14 insertions, 8 deletions
diff --git a/mbbsd/mbbsd.c b/mbbsd/mbbsd.c index a99a5145..f10bec3d 100644 --- a/mbbsd/mbbsd.c +++ b/mbbsd/mbbsd.c @@ -1049,11 +1049,6 @@ setup_utmp(int mode) strip_nonebig5((unsigned char *)currutmp->nickname, sizeof(currutmp->nickname)); strip_nonebig5((unsigned char *)currutmp->mind, sizeof(currutmp->mind)); - // XXX 這個 check 花不少時間,有點間隔比較好 - // TODO XXX 使用 numlogindays 有點問題,同一天內多次 login 會狂檢查... - if ((cuser.userlevel & PERM_BM) && !(cuser.numlogindays % 20)) - check_BM(); /* Ptt 自動取下離職板主權力 */ - // resolve fromhost #if defined(WHERE) @@ -1260,9 +1255,16 @@ user_login(void) check_bad_login(); check_mailbox_quota(); check_register(); - pwcuLoginSave(); + pwcuLoginSave(); // is_first_login_of_today is only valid after pwcuLoginSave. restore_backup(); + // XXX 這個 check 花不少時間,有點間隔比較好 + if (HasUserPerm(PERM_BM) && + (cuser.numlogindays % 10 == 0) && // when using numlogindays, check with is_first_login_of_today + is_first_login_of_today ) + check_BM(); /* 自動取下離職板主權力 */ + + } else if (strcmp(cuser.userid, STR_GUEST) == 0) { /* guest */ init_guest_info(); diff --git a/mbbsd/passwd.c b/mbbsd/passwd.c index 3bb8e352..bfb64224 100644 --- a/mbbsd/passwd.c +++ b/mbbsd/passwd.c @@ -468,7 +468,10 @@ int pwcuLoginSave () // calculate numlogindays (only increase one per each key) if (regdays > prev_regdays) + { ++u.numlogindays; + is_first_login_of_today = 1; + } cuser.numlogindays = u.numlogindays; // update last login time diff --git a/mbbsd/user.c b/mbbsd/user.c index 8d93d95e..1656869c 100644 --- a/mbbsd/user.c +++ b/mbbsd/user.c @@ -176,7 +176,7 @@ user_display(const userec_t * u, int adminmode) prints("\t\t使用記錄: " STR_LOGINDAYS " %d " STR_LOGINDAYS_QTY ,u->numlogindays); if (u->old_numlogins) - prints(" (轉換新制前: %d)", u->old_numlogins); + prints("(轉換新制前結算:%d)", u->old_numlogins); prints(" / 文章 %d 篇\n", u->numposts); sethomedir(genbuf, u->userid); diff --git a/mbbsd/var.c b/mbbsd/var.c index 727e9163..eb178940 100644 --- a/mbbsd/var.c +++ b/mbbsd/var.c @@ -371,9 +371,10 @@ char local_article; char fromhost[STRLEN] = "\0"; char fromhost_masked[32] = "\0"; // masked 'fromhost' char water_usies = 0; +char over18 = 0; +char is_first_login_of_today = 0; FILE *fp_writelog = NULL; water_t *water, *swater[6], *water_which; -char over18 = 0; /* chc_play.c */ |