作者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