回精華區
作者itoc, 信區: itoc
標題[修正] menu.c 已有權限就不載入選項
時間04/05/18
作者: itoc (核心動力) 看板: itoc
標題: Re: [問題]menu載入的權限
時間: 2004/05/18 Tue 02:11:40                           Updated: 2005/04/05

※ 引述《chwaian (無言)》之銘言:
> #ifdef HAVE_REGKEY_CHECK
>   u_verify, PERM_BASIC, M_UFILES,
>   "Verify     《 填認證碼 》",
> #endif
> 像這一種的
> 如果要改成 !(PERM_POST) 才會出現選單
> 讓 !(PERM_XXXX) 可以 work
> menu()要怎麼修正比較好?

: menu.c

#define PERM_MENU       PERM_PURGE
+ #define PERM_INVERSE    PERM_DENYLOGIN

: menu.c:menu()

+       if (cc & PERM_INVERSE)
+       {
+         if (cc & level || !level)  /* 沒有該權限才秀出,guest 不秀出 */
+           continue;
+       }
+       else
+       {
          if (cc && !(cc & level))   /* 有該權限才秀出 */
            continue;
+       }

: menu.c:menu_user[]
: 已有 PERM_XXXX 權限就不載入的選項,其權限改為 PERM_INVERSE | PERM_XXXX

#ifdef HAVE_REGISTER_FORM
- u_register, PERM_BASIC, M_UFILES,
+ u_register, PERM_INVERSE | PERM_VALID, M_UFILES,
  "Register   《 填註冊單 》",
#endif

#ifdef HAVE_REGKEY_CHECK
- u_verify, PERM_BASIC, M_UFILES,
+ u_verify, PERM_INVERSE | PERM_VALID, M_UFILES,
  "Verify     《 填認證碼 》",
#endif

- u_deny, PERM_BASIC, M_XMODE,
+ u_deny, PERM_BASIC | PERM_VALID, M_XMODE,
  "Perm       《 恢復權限 》",

: user.c:u_register()  這個函式就不需要檢查權限

-#ifdef JUSTIFY_PERIODICAL
- if (HAS_PERM(PERM_VALID) &&
-   cuser.tvalid + VALID_PERIOD - 10 * 86400 >= ap_start)
-#else
- if (HAS_PERM(PERM_VALID))
-#endif
- {
-   zmsg("您的身分確認已經完成,不需填寫申請表");
-   return XEASY;
- }

: user.c:u_verify()  這個函式就不需要檢查權限

- if (HAS_PERM(PERM_VALID))
- {
-   zmsg("您的身分確認已經完成,不需填寫認證碼");
- }
- else
- {
    ...
- }

  return XEASY;

: user.c:u_deny()  這個函式就不需要檢查權限

- if (!HAS_PERM(PERM_ALLDENY))
- {
-   zmsg("您沒被停權,不需復權");
- }
- else
- {
    ...
- }

  return XEASY;

--
  Origin:  Maple-itoc˙動力核心  processor.tfcis.org 
  Modify: 2004/05/18 Tue 02:17:15
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻