作者itoc, 信區: itoc
標題[功能] manage.c 板主自訂看板:不可加密文章
時間05/05/26
作者: itoc (核心動力) 看板: itoc
標題: Re: 不可加密
時間: 2004/06/16 Wed 08:41:11 Updated: 2005/05/26
※ 引述《Uizmp (黑袍法師)》之銘言:
> 請問可否限制某看板文章不得加密呀?
: battr.h
#define BRD_ANONYMOUS 0x20 /* 匿名看板 */
+ #define BRD_NORESTRICT 0x40 /* 不可加密看板 */
...
...
- #define NUMBATTRS 6
+ #define NUMBATTRS 7
- #define STR_BATTR "zTcsvA"
+ #define STR_BATTR "zTcsvAR"
: battr.h:battr_tbl[]
"匿名看板", /* BRD_ANONYMOUS */
+ "不可加密看板", /* BRD_NORESTRICT */
: edit.c:ve_filer()
#ifdef HAVE_REFUSEMARK
case 'x':
- if (ve_op < 0) /* itoc.010301: 不能儲存 */
+ if (ve_op < 0 || currbattr & BRD_NORESTRICT)
return VE_FOOTER;
curredit |= EDIT_RESTRICT;
curredit &= ~EDIT_OUTGO; /* 加密必是 local save */
break;
#endif
: post.c:post_refuse()
if (!cuser.userlevel) /* itoc.020114: guest 不能對其他 guest 的文章加密 */
return XO_NONE;
+ if (currbattr & BRD_NORESTRICT)
+ return XO_NONE;
: post.c:post_cross()
#ifdef HAVE_REFUSEMARK
- else if (rc == 'x')
+ else if (rc == 'x' && !(currbattr & BRD_NORESTRICT))
xpost.xmode = POST_RESTRICT;
#endif
> ──────────────────────────────────── <
如果希望開放給板主自行設定
: manage.c 把以下這段加在 post_battr_noscore() 後面
static int
post_battr_norestrict(xo)
XO *xo;
{
BRD *oldbrd, newbrd;
oldbrd = bshm->bcache + currbno;
memcpy(&newbrd, oldbrd, sizeof(BRD));
switch (vans("1)可以加密文章 2)不可加密文章 [Q] "))
{
case '1':
newbrd.battr &= ~BRD_NORESTRICT;
break;
case '2':
newbrd.battr |= BRD_NORESTRICT;
break;
default:
return XO_FOOT;
}
if (memcmp(&newbrd, oldbrd, sizeof(BRD)) && vans(msg_sure_ny) == 'y')
{
memcpy(oldbrd, &newbrd, sizeof(BRD));
rec_put(FN_BRD, &newbrd, sizeof(BRD), currbno, NULL);
}
return XO_FOOT;
}
: manage.c:post_manage()
# ifdef HAVE_SCORE
"Score 設定可否評分",
# endif
+ "Xrefuse 加密文章設定",
...
...
# ifdef HAVE_SCORE
" (S)評分"
# endif
+ " (X)加密"
...
...
#ifdef HAVE_SCORE
case 's':
return post_battr_noscore(xo);
#endif
+ case 'x':
+ return post_battr_norestrict(xo);
--
╭┼ Origin: Maple-itoc˙動力核心 processor.tfcis.org
┼┘ Author: itoc 從 itoc.Dorm11.NCTU.edu.tw 發表