作者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 ]|[ ���O���� cpu.tfcis.org ]|[�搟說�﹎:]=
=[﹊:�摃�╱��:﹊Author ]|[118-161-224-62.dynamic.hin]|[���插�﹊:]=