Controlling course creation rights

来源:互联网 发布:智能硬件编程 编辑:程序博客网 时间:2024/05/21 21:35

场景要求

默认情况下,用户注册创建studio账户,就拥有了studio端创建课程的权限。现实情况是拥有审核机制,实际的使用场景可能只有允许的教师账户才能创建课程权限。官方wiki已经给出两种解决方案。我结合官方wiki和@种瓜博客,结合自己的本地测试经验,梳理了一下中间的流程。

控制课程创建权限

首先studio里面有两种不同的权限,django站点级别的is_staff和课程级别的course staff的权限,前者拥有站点内容编辑权限(好比登录admin),而后者只是作为课程团队成员,拥有的编辑课程内容的权限,是application级别的。

方案一、取消非”is_staff”级别用户的课程权限

经过以下设置,课程团队成员(course staff)依然可以编辑课程内容,而创建课程则需要被审核为is_staff的用户才可.
至于如何设置用户为is_staff,则需要使用管理员账户登录到admin,更改auth表就行(/admin/auth/user),或者进入mysql数据库(使用mysql -u root -p 命令) 直接需改’is_staff’属性值。

禁止普通账户创建课程

cd /edx/app/edxapp/edx-platform
sudo vim cms/envs/common.py

设置属性值

DISABLE_COURSE_CREATION: true

提升账户权限至’is_staff’

  • 使用 Django admin命令,./manage.py lms set_staff emailaddress
  • 管理员账户登录到admin,更改auth表就行(/admin/auth/user)

设置联系邮箱

如否你做了以上设置,那么一般注册用户默认就没法创建课程,而他又确实想创建,他怎么请求你把他标记为is_staff?

cd /edx/app/edxapp/edx-platform
sudo vim cms/envs/common.py

设置属性值

'STUDIO_REQUEST_EMAIL':YOUR_EMAIL_ADDRESS

重启服务

sudo /edx/bin/supervisorctl restart all

方案二、选择性地允许课程创建

已被标记为is_staff的用户,不受以下方法影响,永远可以创建课程

启用课程创建权限

sudo vim /edx/app/edxapp/edx-platform/cms/envs/common.py在FEATURES里添加'ENABLE_CREATOR_GROUP': true 需要注意的是,如果采用这个方案,方案一中提到的DISABLE_COURSE_CREATION不应当为true,因为DISABLE_COURSE_CREATION的优先级更高

cd /edx/app/edxapp/edx-platform

更新数据库

sudo -u www-data /edx/bin/python.edxapp ./manage.py cms syncdb --migrate --settings aws --migrate --noinput

重启服务

sudo /edx/bin/supervisorctl restart all

用户studio端使用流程

如果将ENABLE_CREATOR_GROUP设置为true,一个新的Studio用户的工作流是这样的:

  • 用户创建新账号,他们在admin table中的状态是“未请求”.
  • 当用户进入到Studio面板中,他们将看到一条关于如何成为课程创建者的消息
  • 用户可以发送创建课程的请求,如此一来他们的状态变成”待决定”。
  • 如果他们的请求被通过,他们将收到一封通知邮件
  • 如果请求没通过,他们也将收到一封通知邮件

课程创建者管理

/admin/course_creators/coursecreator/

设置联系邮箱

如否你做了以上设置,那么一般注册用户默认就没法创建课程,而他又确实想创建,他怎么请求你把他标记为is_staff?

cd /edx/app/edxapp/edx-platform
sudo vim cms/envs/common.py

设置属性值

'STUDIO_REQUEST_EMAIL':YOUR_EMAIL_ADDRESS

处理既有的课程创建者

既有课程创建者授权,可通过这条指令cd /edx/app/edxapp/edx-platform python manage.py cms populate_creators --settings=aws

0 0
原创粉丝点击