src/maintain.c
任免版主函数 set_BM
if (!HAS_PERM(currentuser, PERM_ADMIN) || !HAS_PERM(currentuser, PERM_SYSOP)) {
move(3, 0);
clrtobot();
prints("抱歉, 只有ADMIN权限的管理员才能修改其他用户权限");
pressreturn();
return 0;
}
if条件里看起来像是限制“有PERM_ADMIN 或 PERM_SYSOP权限”的用户才能任免版主,而实际上如果要实现这样的功能,条件应该改成:
if (!HAS_PERM(currentuser, (PERM_ADMIN || PERM_SYSOP)))
如果只是限制有PERM_ADMIN权限的用户可以任免版主,那后半段判断是没用的。
类似的情况在xyz.c的x_level()和XCheckLevel()中也有出现。
昨天刚刚仔细看了看smth的权限设置,发现不方便的一个地方就是,我设置了PERM_SYSOP权限,却不能改用户权限,如果我想拥有最大权利,必须同时设置PERM_SYSOP和PERM_ADMIN(当然这也与menu.ini的设置有关)。而PERM_SYSOP和PERM_ADMIN的界定和分工又不是很清楚,容易造成混淆。
我想是否可以弱化甚至取消PERM_ADMIN权限,而壮大PERM_SYSOP?
有没有人有同感?或者无论什么想法讨论一下?
--
FROM 137.189.4.*