主要是转载和发帖时检查是否是俱乐部成员和是否被封,并给出提示。 此外还对系统记录区作了保护,包括不能转载到系统记录区和在系统记录区发帖 =================================================================== RCS file: D:\ythtcvs\bbs\src\bbs.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- bbs.c 2005/00/06 01:23:20 1.5 +++ bbs.c 2005/00/09 07:15:33 1.6 @@ -645,6 +645,12 @@ clrtoeol(); prints("转载 ' %s ' 到 %s 版 ", quote_title, bname); move(6, 0); + if (!strcmp(bname,"syssecurity")) { + prints("抱歉,你不能将文章转载到系统安全记录区"); + pressreturn(); + clear(); + return FULLUPDATE; + } if (innd_board(bname)) { getdata(7, 0, "(S)发表 (L)不转信 (A)取消? [A]: ", ispost, 9, DOECHO, YEA); @@ -669,23 +675,47 @@ islocal = 1; } if (ispost[0] == 's' || ispost[0] == 'S') { - if (deny_me(bname) && !USERPERM(currentuser, PERM_SYSOP)) { - move(8, 0); - clrtobot(); - prints - ("\n\n 很抱歉,您已经被版主停止了发 贴的权利。"); - pressreturn(); - clear(); - return FULLUPDATE; + if (deny_me(bname)){ + if (USERPERM(currentuser,PERM_SYSOP)) { + move(8,0); + clrtobot(); + if (askyn("您已经被版主停止了发帖权利,强制发文 吗?",NA,NA)==NA) { + prints("\n\n 很抱歉,您已 经被版主停止了发贴的权利。"); + pressreturn(); + clear(); + return FULLUPDATE; + } + } else { + if (!USERPERM(currentuser, PERM_SYSOP)) { + move(8, 0); + clrtobot(); + prints + ("\n\n 很抱歉,您已经被 版主停止了发贴的权利。"); + pressreturn(); + clear(); + return FULLUPDATE; + } + } } - if (deny_me_global() && !USERPERM(currentuser, PERM_SYSOP)) { - move(8, 0); + if (deny_me_global()) { + move(8,0); clrtobot(); - prints - ("\n\n 很抱歉,您已经被站务停止了全 站的发贴权利。"); - pressreturn(); - clear(); - return FULLUPDATE; + if (USERPERM(currentuser,PERM_SYSOP)) { + if (askyn("您已经被站务停止了全站发帖权利,强制 发文吗?",NA,NA)==NA) { + prints("\n\n 很抱歉,您已 经被站务停止了全站发贴的权利。"); + pressreturn(); + clear(); + return FULLUPDATE; + } + } else { + if (!USERPERM(currentuser, PERM_SYSOP)) { + prints + ("\n\n 很抱歉,您已 经被站务停止了全站的发贴权利。"); + pressreturn(); + clear(); + return FULLUPDATE; + } + } } if (club_board(bname, 0)) { if (USERPERM(currentuser, PERM_SYSOP) && (!clubtest(bnam e))) { @@ -695,7 +725,7 @@ clear(); return FULLUPDATE; } - } + } else { if (!clubtest(bname) && !USERPERM(currentuser, PERM_SYSOP)) { move(8, 0); @@ -707,6 +737,7 @@ clear(); return FULLUPDATE; } + } } strcpy(quote_board, currboard); ddigestmode = digestmode; @@ -1739,6 +1770,14 @@ replytitle = sfh->title; modify_user_mode(POSTING); bnum = getbnum(currboard); + if (!strcmp(currboard,"syssecurity")) { + move(3,0); + clrtobot(); + prints("\n\n 抱歉,您不能在系统记录区发帖"); + pressreturn(); + clear(); + return FULLUPDATE; + } if (!haspostperm(bnum)) { move(3, 0); clrtobot(); @@ -1771,18 +1810,53 @@ }
if (club_board(currboard, bnum)) { - if (!clubtest(currboard) && !USERPERM(currentuser, PERM_SYSOP)) { - move(3, 0); - clrtobot(); - prints - ("\n\n %s为俱乐部版面,请向版务申请发文 权限", - currboard); - pressreturn(); - clear(); - return FULLUPDATE; + if (!clubtest(currboard)) { + if (USERPERM(currentuser,PERM_SYSOP)) { + move(3,0); + clrtobot(); + if (askyn("您并不是本俱乐部的成员,强制发文吗?", NA,NA)==NA) { + prints("\n\n %s为俱乐部版 面,请向版务申请发文权限。",currboard); + pressreturn(); + clear(); + return FULLUPDATE; + } + } else { + if (!USERPERM(currentuser, PERM_SYSOP)) { + move(3, 0); + clrtobot(); + prints + ("\n\n %s为俱乐部版面,请向 版务申请发文权限", + currboard); + pressreturn(); + clear(); + return FULLUPDATE; + } + } } } - if (deny_me(currboard) && !USERPERM(currentuser, PERM_SYSOP)) { + if (deny_me(currboard)) { + if (USERPERM(currentuser,PERM_SYSOP)) { + move(3,0); + clrtobot(); + if (askyn("您已经被版主停止了发帖权利,强制发文 吗?",NA,NA)==NA) { + prints("\n\n 很抱歉,您已 经被版主停止了发贴的权利。"); + pressreturn(); + clear(); + return FULLUPDATE; + } + } else { + if (!USERPERM(currentuser, PERM_SYSOP)) { + move(3, 0); + clrtobot(); + prints + ("\n\n 很抱歉,您已经被 版主停止了发贴的权利。"); + pressreturn(); + clear(); + return FULLUPDATE; + } + } + } +/* && !USERPERM(currentuser, PERM_SYSOP)) { move(3, 0); clrtobot(); prints @@ -1790,11 +1864,30 @@ pressreturn(); clear(); return FULLUPDATE; - } + }*/ if (deny_me_global() && strcmp(currboard, "sysop") - && strcmp(currboard, "Arbitration") - && !USERPERM(currentuser, PERM_SYSOP)) { + && strcmp(currboard, "Arbitration")) { + move(3,0); + clrtobot(); + if (USERPERM(currentuser,PERM_SYSOP)) { + if (askyn("您已经被站务停止了全站发帖权利,强制 发文吗?",NA,NA)==NA) { + prints("\n\n 很抱歉,您已 经被站务停止了全站发贴的权利。"); + pressreturn(); + clear(); + return FULLUPDATE; + } + } else { + if (!USERPERM(currentuser, PERM_SYSOP)) { + prints + ("\n\n 很抱歉,您已 经被站务停止了全站的发贴权利。"); + pressreturn(); + clear(); + return FULLUPDATE; + } + } + } + /*&& !USERPERM(currentuser, PERM_SYSOP)) { move(3, 0); clrtobot(); prints @@ -1802,7 +1895,7 @@ pressreturn(); clear(); return FULLUPDATE; - } + }*/ bzero(&postfile, sizeof (struct fileheader)); clear();

|