# RuoYi 后台操作教程:课程资源分享(权限与菜单) 更新时间:2025-11-04 - 目标:配置“课程资源分享”管理端菜单与按钮权限;门户入口无需配置菜单,仅需用户登录即可访问。 - 角色建议:user(普通用户)、major_lead(专业负责人)、admin/super_admin(管理员)。 ## 一、菜单结构(建议) 1) 进入:系统管理 → 菜单管理 → 新增 - 新增目录 - 菜单类型:目录 - 菜单名称:课程资源 - 路由地址:/manage/course-resource - 权限标识:无 - 新增菜单:专业管理 - 菜单类型:菜单 - 菜单名称:专业管理 - 路由路径:/manage/course-resource/major - 组件路径:views/manage/course-resource/major/index(按你前端实现填写) - 权限标识:manage:major:list - 新增菜单:课程管理 - 菜单类型:菜单 - 菜单名称:课程管理 - 路由路径:/manage/course-resource/course - 组件路径:views/manage/course-resource/course/index - 权限标识:manage:course:list - 新增菜单:待审核 - 菜单类型:菜单 - 菜单名称:待审核 - 路由路径:/manage/course-resource/audit - 组件路径:views/manage/course-resource/audit/index - 权限标识:manage:courseResource:list - 新增菜单:已上架 - 菜单类型:菜单 - 菜单名称:已上架 - 路由路径:/manage/course-resource/approved - 组件路径:views/manage/course-resource/approved/index - 权限标识:manage:courseResource:list - 新增菜单:回收站 - 菜单类型:菜单 - 菜单名称:回收站 - 路由路径:/manage/course-resource/trash - 组件路径:views/manage/course-resource/trash/index - 权限标识:manage:courseResource:list - 新增菜单:专业负责人 - 菜单类型:菜单 - 菜单名称:专业负责人 - 路由路径:/manage/course-resource/major-lead - 组件路径:views/manage/course-resource/majorLead/index - 权限标识:manage:majorLead:list 说明:管理端“用户积分排行榜”暂不需要菜单(你已说明不用管理端榜单),保留接口 `GET /manage/score/user/rank` 但不配置菜单即可。 ## 二、按钮权限(建议) - 专业: - manage:major:add - manage:major:edit - manage:major:remove - 课程: - manage:course:add - manage:course:edit - manage:course:remove - 资源: - manage:courseResource:add - manage:courseResource:edit - manage:courseResource:remove - manage:courseResource:approve - manage:courseResource:reject - manage:courseResource:offline - manage:courseResource:online - manage:courseResource:best - manage:courseResource:download(可选,管理端下载专用) - 上传: - manage:upload:oss(上传到 OSS 所需) - 专业负责人: - manage:majorLead:add - manage:majorLead:remove ## 三、角色授权(建议) - 普通用户(user) - 门户:无需 `manage:*`,仅需登录即可浏览/下载/查看排行榜 - 如需上传与自管:分配 `manage:upload:oss`、`manage:courseResource:add|edit|remove|offline|online` - 专业负责人(major_lead) - 在“课程资源”目录下分配:课程管理 + 待审核 + 已上架 + 回收站 + 专业负责人 菜单 - 按钮:`manage:course:*`、`manage:courseResource:list|approve|reject|offline|best|remove` 等(可根据你实际界面精细勾选) - 管理员(admin/super_admin) - 全选 `manage:*` ## 四、常见校验 - 前端按钮 `v-hasPermi=['manage:courseResource:add']` 必须和后端 `@PreAuthorize("@ss.hasPermi('manage:courseResource:add')")` 一致 - 勾选/取消菜单后请重新登录或刷新 token 生效 - 门户接口需登录(无匿名):若下载 401,请确认客户端已携带 `Authorization: Bearer `(或在链接追加 `?token=`;本项目已在页面中对下载做兼容处理)。 - 新策略:上传与新增资源为“登录即可”权限;其他写操作仍由按钮权限控制。 ## 五、下载/上传权限说明 - 门户下载:仅需登录,不需要 `manage:*` 权限;页面已兼容携带 token 的两种方式(Header/Query)。 - 管理端下载:需 `manage:courseResource:download` 权限(可选功能)。 - 上传:统一走 `/manage/upload/oss`,需 `manage:upload:oss` 权限;返回 OSS URL 后用于资源提交。 --- 如需我帮你批量导入菜单(SQL)或提供可导入菜单 JSON,请告知你的现有菜单层级与字段差异(不同版本字段略有差异)。