我来注释一下代码
【 在 tombcy (tombcy) 的大作中提到: 】
: 这个~
: 自己喜欢的就往上加
: int uleveltochar(char *buf, struct userec *lookupuser)
: { /* 取用户权限中文说明 Bigman 2001.6.24 */
: unsigned lvl;
: char userid[IDLEN + 2];
: #ifdef HAVE_CUSTOM_USER_TITLE
: if (lookupuser->title != 0) {
: strcpy(buf, get_user_title(lookupuser->title));
: if (buf[0] != 0)
: return 0;
: }
: #endif
以上:如果定义了HAVE_CUSTOM_USER_TITLE,就把用户职务字符串返回
: lvl = lookupuser->userlevel;
: strncpy(userid, lookupuser->userid, IDLEN + 2);
: if (!(lvl & PERM_BASIC) && !(lookupuser->flags & GIVEUP_FLAG)) {
: strcpy(buf, "新人");
: return 0;
: }
如果没有PERM_BASIC权限,或者自杀了,就显示“新人”
: /* if( lvl < PERM_DEFAULT )
: {
: strcpy( buf, "- --" );
: return 1;
: }
: */
: /*
: * Bigman: 增加中文查询显示 2000.8.10
: */
: /*
: * if( lvl & PERM_ZHANWU ) strcpy(buf,"站务");
: */
: if ((lvl & PERM_ANNOUNCE) && (lvl & PERM_OBOARDS))
: strcpy(buf, "站务");
同时拥有精华区总管和讨论区总管的显示“站务”
: else if (lvl & PERM_JURY)
: strcpy(buf, "仲裁"); /* stephen :增加中文查询"仲裁" 2001.10.31 */
否则,如果有仲裁权,就显示“仲裁”
: else if (lvl & PERM_BMAMANGER)
再否则,如果有实习站务权,就显示“实习站务”
: strcpy(buf, "实习站务");
: else if (lvl & PERM_COLLECTIVE)
: strcpy(buf, "专用");
再否则,如果是集体帐号,就显示“专用”
: else if (lvl & PERM_CHATCLOAK)
: strcpy(buf, "元老");
再否则,如果有智囊团权限,就显示“元老”
: else if (lvl & PERM_CHATOP)
: strcpy(buf, "ChatOP");
再否则,如果有ChatOP权,显示ChatOP
: else if (lvl & PERM_BOARDS)
: strcpy(buf, "版主");
再否则,如果有版主权限,显示“版主”
: else if (lvl & PERM_HORNOR)
: strcpy(buf, "荣誉");
再否则,如果有荣誉帐号身份,显示“荣誉”
: else if ((lvl & PERM_SECANC) && !(lvl & PERM_CHECKCD))
: strcpy(buf, "交大校友");
: else if ((lvl & PERM_CHECKCD) && !(lvl & PERM_SECANC))
: strcpy(buf, "校外友人");
: else if ((lvl & PERM_CHECKCD) && (lvl & PERM_SECANC))
: strcpy(buf, "校内师生");
再否则……这部分是你自己改的吧?
: /*
: * Bigman: 修改显示 2001.6.24
: */
: else if (lvl & (PERM_LOGINOK)) {
: if (lookupuser->flags & GIVEUP_FLAG)
: strcpy(buf, "戒网");
如果使用者资料正确,且正在戒毒,显示戒毒
: else if (!(lvl & (PERM_CHAT)) || !(lvl & (PERM_PAGE)) || !(lvl & (PERM_POST))
: || (lvl & (PERM_DENYMAIL)) || (lvl & (PERM_DENYRELAX)))
: strcpy(buf, "受限");
否则,判断其基本的聊天、呼叫、发帖权限,以及是否封禁Mail和娱乐权限
如果有,显示“受限”
: else
: strcpy(buf, "用户");
最后才是显示“用户”
: } else if (lookupuser->flags & GIVEUP_FLAG)
: strcpy(buf, "戒网");
如果使用者资料不正确,且正在戒毒,显示戒毒
: else if (!(lvl & (PERM_CHAT)) && !(lvl & (PERM_PAGE)) && !(lvl & (PERM_POST)))
: strcpy(buf, "新人");
这部分是为广大改权限爱好者准备的
: else
: strcpy(buf, "受限");
: /* else {
: buf[0] = (lvl & (PERM_SYSOP)) ? 'C' : ' ';
: buf[1] = (lvl & (PERM_XEMPT)) ? 'L' : ' ';
: buf[2] = (lvl & (PERM_BOARDS)) ? 'B' : ' ';
: buf[3] = !(lvl & (PERM_POST)) ? 'p' : ' ';
: if( lvl & PERM_ACCOUNTS ) buf[3] = 'A';
: if( lvl & PERM_SYSOP ) buf[3] = 'S';
: buf[4] = '\0';
: }
: */
: return 1;
: }
--
修改:JulyClyde FROM 222.137.187.*
FROM 222.137.187.*