回文章列表
作者guessi.bbs@cpu.tfcis.org (沒) 看板: itoc
標題[修正] 板主選單: 正板主無法將自己從BMList刪除
時間動力核心 (2009/06/14 Sun 18:55:39)
說明:

原本的寫法 只有在bmlist第一位的user才能使用板主選單修改副板主

但這樣寫的話站務人員會無法使用板主選單... 因此做了以下的修正

以使得板主與站務人員均能正常透過板主選單增減副板主

: src/so/manage.c:post_changeBM()

  blist = oldbrd->BM;

- if (is_bm(blist, cuser.userid) != 1)
-   return XO_HEAD;

+ /* guessi.090614 只有正板主與站務人員可設定板主名單 */
+ if ((is_bm(blist, cuser.userid) != 1) && !HAS_PERM(PERM_ALLBOARD))
+   return XO_HEAD;

...
...

    else if (is_bm(buf, userid))        /* 刪除舊有的板主 */
    {
      len = strlen(userid);
+     /* guessi.090614 檢查是否為正板主 */
+     if (BMlen == len || is_bm(buf, userid) == 1)
-     if (BMlen == len)
      {
        vmsg("不可以將自己移出板主名單");
        continue;
      }

...
...

    else if (acct_load(&acct, userid) >= 0 && !is_bm(buf, userid))
    {
-     len = strlen(userid) + 1;     /* '/' + userid */
+     len = strlen(userid);

+     if (BMlen)    /* guessi.090614 若brd->BM不為空 */
+     {
+       len++;
        if (BMlen + len > BMLEN)
        {
          vmsg("板主名單過長,無法將這 ID 設為板主");
          continue;
        }
        sprintf(buf + BMlen, "/%s", acct.userid);
        BMlen += len;
+     }
+     else          /* guessi.090614 站務操作時 brd->BM可能是空的 */
+     {
+       strcpy(buf, acct.userid);
+       BMlen = len;
+     }
      acct_setperm(&acct, PERM_BM, 0);
    }




--
=[:摃��:﹎Origin ]|[  Ocpu.tfcis.org  ]|[�搟說:]=
=[:摃�╱�:Author ]|[118-161-224-62.dynamic.hin]|[�:]=
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻