根据Discuz系统架构的特性,可以通过以下两种方式实现仅创始人访问管理中心的效果:
1. **文件权限验证法**(推荐方案)
在`/admin.php`入口文件第17行后插入以下代码:
- if(!defined('IN_ADMINCP') || !is_array($_config['admincp']['founder']) || !in_array($_G['uid'], $_config['admincp']['founder'])) {
- showmessage('undefined_action', '', array(), array('adminid' => 0));
- }
复制代码
此代码将强制验证当前用户UID是否在`config_global.php`配置的创始人列表中
2. **路由拦截方案**(兼容性方案)
在`/source/admincp/admincp_login.php`第68行后添加:
- if(!in_array($_G['uid'], $_config['admincp']['founder'])) {
- cpmsg('admincp_nopermission', '', 'error');
- }
复制代码
此方法会拦截所有非创始人用户的管理请求
**注意事项:**
1. 创始人UID需在`config_global.php`中明确配置:
- $_config['admincp']['founder'] = '1,2'; // 多个UID用英文逗号分隔
复制代码
2. 修改前请务必备份原文件
3. 该方案适用于Discuz X3.4及后续版本
4. 建议配合「安全提问」功能增强创始人账户安全
如需更灵活的权限控制方案,可基于DZ插件网的SDK开发定制化权限模块,建议参考《Discuz!插件开发规范》中的权限控制章节进行深度扩展。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |