Moodle 3.6权限异常求助:频繁出现无课程列表查看权限错误
Moodle 3.6 频繁触发"you don't have permission to view this list of courses"错误的修复方案
问题场景
访问Moodle 3.6主页时,页面频繁弹出错误提示:you don't have permission to view this list of courses,需多次刷新才能正常加载主页;尝试进入登录区域时也会触发该错误,同样需多次刷新才能访问登录页。已确认课程未隐藏,且完成以下操作:
- 进入
Site administration / Users / Permissions / Define roles / Authenticated user,将「View list of courses you are not enrolled in [moodle/category:viewcourselist]」权限设置为Allow - 清理站点缓存
排查与修复步骤
1. 补全Guest角色权限配置
未登录状态下访问主页会使用Guest角色权限,若该角色的moodle/category:viewcourselist权限未开放,会导致未登录时触发错误,而刷新时会话状态波动引发间歇性正常:
- 进入
Site administration / Users / Permissions / Define roles / Guest,将「View list of courses you are not enrolled in [moodle/category:viewcourselist]」设置为Allow - 进入
Site administration / Users / Permissions / Site permissions,搜索moodle/category:viewcourselist,确认Guest、Authenticated user角色的权限均为允许,且无分类级别的局部权限覆盖。
2. 深度清理缓存
- 后台执行完整缓存清理:进入
Site administration / Development / Purge all caches,点击Purge all caches(此操作会清除所有缓存类型,包括配置、页面、组件缓存) - 强制清理浏览器缓存:使用
Ctrl+Shift+Delete(Windows)或Cmd+Shift+Delete(Mac),勾选所有缓存类型后清除,避免旧权限规则缓存干扰。
3. 排查第三方插件冲突
- 进入
Site administration / Plugins / Installed plugins,逐个禁用近期安装的非核心插件,每禁用一个后测试主页访问情况,排查是否有插件干扰权限校验逻辑 - 重点关注权限类、访问控制类插件,这类插件容易覆盖核心权限规则。
4. 修复会话与数据库异常
- 清理数据库过期会话:登录数据库服务器,执行以下SQL语句清理24小时以上的过期会话:
DELETE FROM mdl_sessions WHERE timemodified < UNIX_TIMESTAMP(NOW() - INTERVAL 24 HOUR);
- 校验权限表数据:查询
mdl_role_capabilities表,确认Guest、Authenticated user角色对应的moodle/category:viewcourselist权限记录中,permission字段值为1(代表允许)。
5. 校验核心文件完整性
- 进入
Site administration / Server / Environment,选择Check system requirements,检查Moodle核心文件是否损坏或缺失 - 若存在文件异常,重新上传对应版本的Moodle核心文件覆盖(注意备份
config.php等自定义配置文件)
内容的提问来源于stack exchange,提问作者Sumu
相关产品推荐
相关产品推荐

