summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2014-02-17 11:59:40 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2014-02-17 11:59:40 +0800
commitc2da76b2bb8dc6c3d065c2653614c609e388e84f (patch)
tree6d3107d795fdc05b9b9fdb6335736c5d58bee461
parent66906b7799f92c35e5c753d59ccad9f44c7cc134 (diff)
downloadpttbbs-c2da76b2bb8dc6c3d065c2653614c609e388e84f.tar
pttbbs-c2da76b2bb8dc6c3d065c2653614c609e388e84f.tar.gz
pttbbs-c2da76b2bb8dc6c3d065c2653614c609e388e84f.tar.bz2
pttbbs-c2da76b2bb8dc6c3d065c2653614c609e388e84f.tar.lz
pttbbs-c2da76b2bb8dc6c3d065c2653614c609e388e84f.tar.xz
pttbbs-c2da76b2bb8dc6c3d065c2653614c609e388e84f.tar.zst
pttbbs-c2da76b2bb8dc6c3d065c2653614c609e388e84f.zip
Fix new keys in b_config.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5929 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--pttbbs/mbbsd/board.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/pttbbs/mbbsd/board.c b/pttbbs/mbbsd/board.c
index d368bb96..a1b98a7c 100644
--- a/pttbbs/mbbsd/board.c
+++ b/pttbbs/mbbsd/board.c
@@ -330,6 +330,8 @@ b_config(void)
int touched = 0, finished = 0, check_mod = 1;
int i = 0, attr = 0, ipostres;
char isBM = (currmode & MODE_BOARD) || HasUserPerm(PERM_SYSOP);
+ char isPolice = HasUserPerm(PERM_POLICE);
+ char isSysGroupOP = (HasUserPerm(PERM_SYSSUPERSUBOP) && GROUPOP());
// perm cache
char hasres = 0,
cachePostPerm = CheckPostPerm(),
@@ -367,6 +369,7 @@ b_config(void)
// limits
uint8_t llogin = bp->post_limit_logins,
lbp = bp->post_limit_badpost;
+ char ansk;
move(ytitle-1, 0);
clrtobot();
@@ -595,7 +598,8 @@ b_config(void)
}
- if (!isBM)
+ // 'J' need police perm, which is very stupid.
+ if (!isBM && !isPolice && !isSysGroupOP)
{
pressanykey();
return FULLUPDATE;
@@ -607,7 +611,21 @@ b_config(void)
check_mod = 0;
}
- switch(vans("請輸入要改變的設定, 其它鍵結束: "))
+ ansk = vans("請輸入要改變的設定, 其它鍵結束: ");
+ if (isascii(ansk))
+ ansk = tolower(ansk);
+
+ // Now let's try to restrict the stupid perms.
+ if (!isBM) {
+ const char *sysgroupkeys = "ykd";
+ const char *policekeys = "j";
+
+ if (!(isSysGroupOP && strchr(sysgroupkeys, ansk)) &&
+ !(isPolice && strchr(policekeys, ansk)))
+ return FULLUPDATE;
+ }
+
+ switch(ansk)
{
#ifdef USE_AUTOCPLOG
case 'x':
@@ -716,7 +734,7 @@ b_config(void)
}
{
char ans[50];
- getdata(b_lines - 1, 0, "請輸入理由:", ans, sizeof(ans), DOECHO);
+ getdata(b_lines - 1, 0, "請輸入理由(空白放棄設定):", ans, sizeof(ans), DOECHO);
if (!*ans) {
vmsg("未輸入理由,放棄設定。");
break;