回精華區
作者itoc, 信區: itoc
標題[功能] board.c 看板麻吉
時間04/02/07
作者: itoc (League) 看板: plan
標題: [功能] 看板麻吉
時間: 2004/02/07 Sat 12:49:14                           Updated: 2005/03/23

  要先做 "pal.c 麻吉名單" 這篇 patch

  被設看板麻吉的使用者可以看加密文章/把看板打包

: maple.p

int is_bgood(BPAL *bpal);
int is_bbad(BPAL *bpal);
+ int is_bmate(BPAL *bpal);

: pal.c:is_bmate() 加在 is_bgood() 前面

int
is_bmate(bpal)              /*  1: 我是該板的麻吉 */
  BPAL *bpal;
{
  return belong_pal(bpal->pal_spool, bpal->pal_max, cuser.userno | MATE_MASK);
}

: board.c:Ben_Perm()

  else if (ulevel & PERM_ALLBOARD)
    bits = BRD_L_BIT | BRD_R_BIT | BRD_W_BIT | BRD_X_BIT | BRD_M_BIT;

+ /* itoc.040207: 看板麻吉重新判斷 */
+ else if (is_bmate(bpal))
+   bits = BRD_L_BIT | BRD_R_BIT | BRD_W_BIT | BRD_M_BIT;

: boarc.c:XoPost()

-   if (bits & BRD_M_BIT)
+   if ((bits & BRD_M_BIT) && (bits & BRD_X_BIT))
    bbstate |= (STAT_BM | STAT_BOARD | STAT_POST);
+   else if (bits & BRD_M_BIT)
+     bbstate |= (STAT_BM | STAT_POST);
    else if (bits & BRD_X_BIT)
      bbstate |= (STAT_BOARD | STAT_POST);
    else if (bits & BRD_W_BIT)
      bbstate |= STAT_POST;

: account.c:init_bpal()

            do
            {
-             *userno++ = (up->ftype & PAL_BAD) ? -(up->userno) : up->userno;
+             *userno++ = (up->ftype & PAL_BAD) ? -(up->userno) :
+               (up->ftype & PAL_MATE) ? (up->userno | MATE_MASK) :
+               up->userno;
              up++;
            } while (--c);

: post.c:post_refuse()

  pos = xo->pos;
  cur = pos - xo->top;
  hdr = (HDR *) xo_pool + cur;

- if (!strcmp(hdr->owner, cuser.userid) || (bbstate & STAT_BM))
+ /* 看板麻吉不能加解密板上的文章 */
+ if (!strcmp(hdr->owner, cuser.userid) ||
+   ((bbstate & STAT_BM) && (bbstate & STAT_BOARD)))
  {
    hdr->xmode ^= POST_RESTRICT;
    currchrono = hdr->chrono;

--
□ 本文章由 itocitoc.Dorm11.NCTU.edu.tw 發表
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻