summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mbbsd/board.c1
-rw-r--r--mbbsd/read.c10
2 files changed, 11 insertions, 0 deletions
diff --git a/mbbsd/board.c b/mbbsd/board.c
index a1ca7006..bc7ae394 100644
--- a/mbbsd/board.c
+++ b/mbbsd/board.c
@@ -558,6 +558,7 @@ b_config(void)
bp->brdattr |= BRD_HIDE;
bp->brdattr |= BRD_POSTMASK;
}
+ bp->perm_reload = now;
touched = 1;
break;
diff --git a/mbbsd/read.c b/mbbsd/read.c
index 97621725..85347d9e 100644
--- a/mbbsd/read.c
+++ b/mbbsd/read.c
@@ -1226,6 +1226,7 @@ i_read(int cmdmode, const char *direct, void (*dotitle) (),
int bottom_line = 0;
fileheader_t *headers0 = headers;
int headers_size0 = headers_size;
+ time4_t enter_time = now;
strlcpy(currdirect0, currdirect, sizeof(currdirect0));
#define FHSZ sizeof(fileheader_t)
@@ -1237,6 +1238,15 @@ i_read(int cmdmode, const char *direct, void (*dotitle) (),
mode = NEWDIRECT;
do {
+ /* 檢查權限是否已改 */
+ if (currbid > 0 && getbcache(currbid)->perm_reload > enter_time)
+ {
+ boardheader_t *bp = getbcache(currbid);
+ if(!HasBoardPerm(bp))
+ break;
+ enter_time = bp->perm_reload;
+ }
+
/* 依據 mode 顯示 fileheader */
setutmpmode(cmdmode);
switch (mode) {