回精華區
作者guessi.bbs@bbs.wretch.cc (沒) 看板: plan
標題[修正] 雙重認證
時間無名小站 (2006/03/31 Fri 18:02:59) Updated: 2006/06/09
[修正] user.c 需站長審核註冊單後才算註冊成功 ←┐
                                               │
 針對此篇做細節修正 修正過認證後寄送信件內容 ┬┘
 對於原修正文內容說明文字缺漏補齊 供各位參考 ┘

  先完成 Email 認證,才能填註冊單
  註冊單審核通過後才能拿到 PERM_VALID


:/src/include/perm.h 新增權限
- #define PERM_9          0x00000100
+ #define PERM_MVALID     0x00000100      /* VALID 初步認證 */


!#define STR_PERM        "bctpjm#xM------@PTCM--L*B#-RACBS"

- "保留",                       /* PERM_9 */
+ "通過初步認證",               /* PERM_MVALID */


:/src/include/global.h  (同時新建檔案etc/mjustified)
  #define FN_ETC_JUSTIFIED "etc/justified"
+ #define FN_ETC_JUSTIFIED "etc/mjustified"

  #define MSG_REG_VALID   "您已經通過身分認證,請重新上站"
+ #define MSG_REG_MVALID  "您已經通過初步認證,請重新上站"

  VAR char *msg_reg_valid INI(MSG_REG_VALID);
+ VAR char *msg_reg_mvalid INI(MSG_REG_MVALID);


:/src/so/admutil.c:a_xfile()
-   "認證通過通知",
+   "通過完整認證",
+   "通過初步認證",

    FN_ETC_JUSTIFIED,
+   FN_ETC_MJUSTIFIED,


:/src/daemon/bmtad.c:bbs_valid()

  /* 提升權限 */
- acct.userlevel |= PERM_VALID;
+ acct.userlevel |= PERM_MVALID;

- if (!hdr_stamp(folder, HDR_LINK, &hdr, FN_ETC_JUSTIFIED))
+ if (!hdr_stamp(folder, HDR_LINK, &hdr, FN_ETC_MJUSTIFIED))


:/src/util/mailpost.c:verify_user()
-  acct.userlevel |= PERM_VALID;
+  acct.userlevel |= PERM_MVALID;


:/src/util/mailpost.c:justify_user()

-  if (!hdr_stamp(fpath, HDR_LINK, &hdr, FN_ETC_JUSTIFIED))
+  if (!hdr_stamp(fpath, HDR_LINK, &hdr, FN_ETC_MJUSTIFIED))
   {
-    strcpy(hdr.title, "您已經通過身分認證了!");
+    strcpy(hdr.title, "您已經通過初步認證了!");


:/src/maple/user.c:do_pop3()
-     acct_setperm(&acct, PERM_VALID, 0);
+     acct_setperm(&acct, PERM_MVALID, 0);

      /* 寄信通知使用者 */
-     mail_self(FN_ETC_JUSTIFIED, str_sysop, msg_reg_valid, 0);
+     mail_self(FN_ETC_MJUSTIFIED, str_sysop, msg_reg_mvalid, 0);
      cutmp->status |= STATUS_BIFF;
-     vmsg(msg_reg_valid);
+     vmsg(msg_reg_mvalid);


:/src/maple/user.c:u_verify()

- if (HAS_PERM(PERM_VALID))
+ if (HAS_PERM(PERM_MVALID))
  {
-   zmsg("您的身分確認已經完成,不需填寫認證碼");
+   zmsg("您的初步確認已經完成,不需填寫認證碼");

-         acct_setperm(&acct, PERM_VALID, 0);
+         acct_setperm(&acct, PERM_MVALID, 0);

        /* 寄信通知使用者 */
-       mail_self(FN_ETC_JUSTIFIED, str_sysop, msg_reg_valid, 0);
+       mail_self(FN_ETC_MJUSTIFIED, str_sysop, msg_reg_mvalid, 0);

-       vmsg(msg_reg_valid);
+       vmsg(msg_reg_mvalid);


:/src/maple/user.c:u_register()

+ if (!HAS_PERM(PERM_MVALID))
+ {
+   zmsg("您尚未通過初步認證,無法填註冊單");
+   return XEASY;
+ }

:/src/maple/bbsd.c:login_level()

#ifdef JUSTIFY_PERIODICAL
    if ((level & PERM_VALID) && (cuser.tvalid + VALID_PERIOD < ap_start))
    {
-     level ^= PERM_VALID;
+     level &= ~PERM_VALID;
+     level &= ~PERM_MVALID; /* 直接拿除VALID & MVALID */
                             /* 重新認證 資料都update  */

      /* itoc.011116: 主動發信通知使用者,一直送信不知道會不會太耗空間 !? */
      mail_self(FN_ETC_REREG, str_sysop, "您的認證已經過期,請重新認證", 0);
    }
#endif

最後 當然別忘了修正以下檔案 文字說明內容

etc/justified
etc/mjustified
gem/@/@notify
gem/@/@e-mail


--
夫兵者不祥之器物或惡之故有道者不處君子居則貴左用兵則貴右兵者不祥之器非君子
之器不得已而用之恬淡為上勝而不美而美之者是樂殺人夫樂殺人者則不可得志於天下
矣吉事尚左凶事尚右偏將軍居左上將軍居右言以喪禮處之殺人之眾以哀悲泣之戰勝以
喪禮處之道常無名樸雖小天下莫能臣侯王若能守之萬物將自賓天地相合以降甘露民莫
之令而自均始制有名名亦既有夫亦將知止知止 61-231-204-84.dynamic.hinet.net
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻