diff options
-rw-r--r-- | pttbbs/mbbsd/bbs.c | 12 | ||||
-rw-r--r-- | pttbbs/mbbsd/board.c | 6 |
2 files changed, 15 insertions, 3 deletions
diff --git a/pttbbs/mbbsd/bbs.c b/pttbbs/mbbsd/bbs.c index f4c2a195..d0cbef01 100644 --- a/pttbbs/mbbsd/bbs.c +++ b/pttbbs/mbbsd/bbs.c @@ -472,8 +472,18 @@ is_tn_allowed(const char *title) return 1; #else // TN_ANNOUNCE is prohibited for non-BMs - if (currmode & MODE_BOARD) + if ((currmode & MODE_BOARD) || HasUserPerm(PERM_SYSOP) || + HasUserPerm(PERM_ACCOUNTS | PERM_BOARD | PERM_BBSADM | + PERM_VIEWSYSOP| PERM_POLICE_MAN)) return 1; + + // Note: 關於 subgroup op 的判定目前也是一團糟 - 小組長要從自己的分類 + // 進去才會有 GROUPOP(). 不過反正小組長跟群組長的人沒那麼多,就開放他們 + // always 可以使用 TN_ANNOUNCE 吧。 + if (HasUserPerm(PERM_SYSSUPERSUBOP) || + HasUserPerm(PERM_SYSSUBOP)) + return 1; + if (is_tn_announce(title)) return 0; return 1; diff --git a/pttbbs/mbbsd/board.c b/pttbbs/mbbsd/board.c index c5074e58..4de19565 100644 --- a/pttbbs/mbbsd/board.c +++ b/pttbbs/mbbsd/board.c @@ -1372,9 +1372,11 @@ set_menu_BM(char *BM) { if (!HasUserPerm(PERM_NOCITIZEN) && (HasUserPerm(PERM_ALLBOARD) || is_uBM(BM, cuser.userid))) { currmode |= MODE_GROUPOP; - // XXX 不是很確定是否該在這邊 save level? - pwcuBitEnableLevel(PERM_SYSSUBOP | PERM_BM); } + + // XXX 不是很確定是否該在這邊 save level? + if (!HasUserPerm(PERM_SYSSUPERSUBOP) || !HasUserPerm(PERM_BM)) + pwcuBitEnableLevel(PERM_SYSSUBOP | PERM_BM); } static void replace_link_by_target(boardstat_t *board) |