回精華區
作者itoc.bbs@wretch.twbbs.org (Midlife Crisis) 看板: plan
標題Re: [問題] 看板屬性
時間無名小站 (2004/01/28 Wed 18:09:28) Updated: 2004/03/24
※ 引述《cco.bbs@bbs.c-co.net (Micro-BOY!)》之銘言:
> 我想讓 特定看板 例如 KTV 板
> 點歌的人不能去該板自行把歌刪除掉
> 更詳細一點說就是制定看板刪除權限
> 設定某看板刪除權限歸 何人所有

  改 struct BRD,要轉換 .BRD

: global.h

#define MSG_READPERM    "閱\讀權限:"
#define MSG_POSTPERM    "發表權限:"
+ #define MSG_DELPERM    "刪除權限:"

: struct.h:struct BRD

  usint readlevel;              /* 閱讀文章的權限 */
  usint postlevel;              /* 發表文章的權限 */
+ usint dellevel;               /* 刪除文章的權限 */

: acct.c:brd_set()

  case 'c':
    brd->readlevel = PERM_SYSOP;        /* 秘密看板 */
    brd->postlevel = 0;
+   brd->dellevel = 0;
    brd->battr |= (BRD_NOSTAT | BRD_NOVOTE);
    break;

  case 'd':
    brd->readlevel = PERM_BOARD;        /* 好友看板 */
    brd->postlevel = 0;
+   brd->dellevel = 0;
    brd->battr |= (BRD_NOSTAT | BRD_NOVOTE);
    break;

  case 'a':
    brd->readlevel = 0;
    brd->postlevel = PERM_POST;
+   brd->dellevel = 0;
    brd->battr &= ~(BRD_NOSTAT | BRD_NOVOTE);
    break;

  case 'b':
    if (vget(++i, 0, "閱\讀權限(Y/N)?[N] ", buf, 3, LCECHO) == 'y')
    {
      brd->readlevel = bitset(brd->readlevel, NUMPERMS, NUMPERMS,
        MSG_READPERM, perm_tbl);
      move(2, 0);
      clrtobot();
      i = 1;
    }

    if (vget(++i, 0, "發表權限(Y/N)?[N] ", buf, 3, LCECHO) == 'y')
    {
      brd->postlevel = bitset(brd->postlevel, NUMPERMS, NUMPERMS,
        MSG_POSTPERM, perm_tbl);
      move(2, 0);
      clrtobot();
      i = 1;
    }

+   if (vget(++i, 0, "刪除權限(Y/N)?[N] ", buf, 3, LCECHO) == 'y')
+   {
+     brd->dellevel = bitset(brd->dellevel, NUMPERMS, NUMPERMS,
+       MSG_DELPERM, perm_tbl);
+     move(2, 0);
+     clrtobot();
+     i = 1;
+   }
    break;

: post.c:post_delete()

  if (!cuser.userlevel ||
    !strcmp(currboard, BN_DELETED) ||
    !strcmp(currboard, BN_JUNK))
    return XO_NONE;

+ if (!HAS_PERM((bshm->bcache + currbno)->dellevel))
+ {
+   vmsg("您無法刪除本板文章");
+   return XO_FOOT;
+ }

: post.c:post_rangedel()

  if (!(bbstate & STAT_BOARD))
    return XO_NONE;

+ if (!HAS_PERM((bshm->bcache + currbno)->dellevel))
+ {
+   vmsg("您無法刪除本板文章");
+   return XO_FOOT;
+ }

--
夫兵者不祥之器物或惡之故有道者不處君子居則貴左用兵則貴右兵者不祥之器非君子
之器不得已BLOG http://wretch.twbbs.org/blog 安西教練 我想寫日記 嗚嗚於天下
矣吉事尚左凶事尚右偏將軍居左上將軍居右言以喪禮處之殺人之眾以哀悲泣之戰勝以
喪禮處之道常無名樸雖小天下莫能臣侯王若能守之萬物將自賓天地相合以降甘露民莫
之令而自均始制有名名亦既有夫亦將知止知止可以 94.177.30.61.isp.tfn.net.tw
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻