起因

默认情况下,Studio的注册用户都可以创建课程,这种默认行为似乎并不是通常的使用场景,平台拥有者更倾向于做个审核,才允许用户发布课程

思路

读wiki啊!!

对于折腾edX的新手而言,我觉得首要的工作就两点:
1. 让平台跑起来
2. 通读wiki(configuration wiki和edx-platform wiki)

如果你通读了wiki,起步阶段的多数的问题其实都不成问题。

解决方案

据说现在流行送鸡汤必须赠勺,我就写下可操作的解决方案好了。
跟官方的教程基本一样,官方wiki里有几处不够清晰,我加了自己的理解,没有直接翻译,没有完全按照它们的做法,在本地测试可用,你想按照wiki里的做法,可以自行阅读文后英文wiki。或者跟我往下做也行,有问题给我发邮件 : )

方法一

一些概念

首先得区分django站点级别的is_staff和课程级别的course staff的区别,前者拥有站点内容编辑权限(好比登录admin),而后者只是作为课程团队成员,拥有的编辑课程内容的权限,是application级别的 (不理解也没啥关系)

只允许被标记为is_staff的用户创建课程

经过以下设置,课程团队成员(course staff)依然可以编辑课程内容,而创建课程则需要被审核为is_staff的用户才可.这在逻辑上也好理解,只要平台认可的内部成员才有创建课程的权限
至于如何设置用户的is_staff为yes,则需要使用管理员账户登录到admin,更改auth表就行(/admin/auth/user)

禁止一般用户创建课程

cd /edx/app/edxapp/edx-platform
更改 edx-platform/cms/envs/common.py 在FEATURES里添加'DISABLE_COURSE_CREATION': True

将用户标记为is_staff

./manage.py lms set_staff emailaddress 
以上是命令行版本,我更喜欢直接去admin里标记:使用超级账号登录到admin,然后进入auth用户表(/admin/auth/user),选择相应用户,勾选对应选项就行

设置联系邮箱

如否你做了以上设置,那么一般注册用户默认就没法创建课程,而他又确实想创建,他怎么请求你把他标记为is_staff?
cd /edx/app/edxapp/edx-platform
更改 edx-platform/cms/envs/common.py 在FEATURES里添加'STUDIO_REQUEST_EMAIL':YOUR_EMAIL_ADDRESS,这个邮箱将收到用户的请求

重启edxapp

sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf restart edxapp:

ps : birch版本有些不同,改为:sudo /edx/bin/supervisorctl restart edxapp:

方法二:

方法一感觉有些hack,以下这个方案来得似乎更优雅些

选择性地允许课程创建

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

启用课程创建权限

cd /edx/app/edxapp/edx-platform
更改 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
# 重启edxapp, birch版本有些不同,改为:sudo /edx/bin/supervisorctl  restart edxapp:
sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf restart edxapp:

用户工作流

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

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

课程创建者管理

对应的管理地址是/admin/course_creators/coursecreator/

设置联系邮箱

和方法一相同

处理既有的课程创建者

如果你希望给既有课程创建者授权,可通过这条指令./manage.py cms populate_creators(嗯,你首先当然得在edx-platform目录下)

转载于:https://www.cnblogs.com/zhaojianwei/p/4666808.html

控制用户创建课程权限相关推荐

  1. oracle用户创建及权限设置

    权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> ...

  2. oracle 用户创建角色,oracle普通用户创建和加权限

    普通用户床架和加权限 create user test1 identified by test1; grant connect to test1; grant resource to test1; g ...

  3. Orace用户创建及权限分配

    权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> ...

  4. oracle数据库用户创建_权限分配_以及导入_导出数据,oracle数据库用户创建、权限分配,以及导入,导出数据...

    下面数据库所用的版本为ORACLE 9I (9.2.0),安装数据库时,数据库系统会创建一个数据库实例, 其中:安装目录选为:\oracle, 数据库名与数据库SID 号都输入:ora9i 数据库安装 ...

  5. linux 用户创建,权限,分组

    1) 新建用户natasha,uid为1000,gid为555,备注信息为"master"  ? 1.通过vim /etc/passwd 的命令,直接在另一个用户信息下,修改成na ...

  6. Oracle中的用户创建和权限的分配

    1.数据库安装时的参数设定 下面数据库所用的版本为ORACLE 9I (9.2.0),安装数据库时,数据库系统会创建一个数据库实例,其中:安装目录选为:\oracle,数据库名与数据库SID号都输入: ...

  7. MongoDB新建数据库、集合以及用户创建和权限设置

    有段时间没用MongoDB了,最近因为业务需要开始使用MongoDB.这里就简单总结一下常用命令. 1.连接及查看所有数据库 mongo 主机ip:端口号/连接的数据库名 -u 用户名 -p 密码 / ...

  8. mongo数据库用户创建及权限授予

    基础概念: Built-In Roles(内置角色):  1.数据库用户角色:read.readWrite;  2.数据库管理角色:dbAdmin.dbOwner.userAdmin:  3.集群管理 ...

  9. CEPH给用户创建读写权限

    背景 在一个CEPH集群中,用户想要使用存储池,有时为了方便,将Admin用户的kering拷贝给用户,那用户就能通过CEPH客户端,控制集群.倘若用户失手,删掉OSD等,将导致灾难.需要赋予该用户一 ...

  10. Mongo 用户创建及权限管理

    Mongo版本3.0之前使用的是db.addUser(),但3.0之后使用的是db.createUser() 内建的角色: 数据库用户角色:read.readWrite; 数据库管理角色:dbAdmi ...

最新文章

  1. centos7.1 RabbitMQ安装配置
  2. DCMTK:OFStandard中base64代码的测试程序
  3. nohup xxx 后台进程关闭,可以这样避免
  4. shopxo二次开发:商品管理添加、商品导入库存、设置库存量(教程)
  5. 【算法】多路查找树 B树 B+树
  6. 免费证书https://lamp.sh/ssl.html
  7. Java核心知识点学习----多线程中的阻塞队列,ArrayBlockingQueue介绍
  8. listen()函数中的SOMAXCONN含义
  9. UVA10196 Check The Check【模拟+回溯】
  10. Python实践基于直方图的梯度提升集成方法
  11. 【Protel】Protel99SE(附汉化包+SP6+增强工具+视频教程)
  12. 漫画 | 为什么美国人发明了互联网?
  13. jdbc常见异常及错误解决办法汇总
  14. java中的URLEncoder和URLDecoder类
  15. 给ssh服务添加谷歌双重认证
  16. 2019年清华计算机系本校保研推免机考题目
  17. WIN10下TensorFlow GPU版安装顺序
  18. 网页中HTML代码如何实现字体删除线效果
  19. LeetCode 325. Maximum Size Subarray Sum Equals k
  20. Android UI框架深度解析

热门文章

  1. Task5.NB_SVM_LDA
  2. MVC中单选按钮的实现
  3. Windows2008 Server r2 64位显示桌面图标的方法
  4. 导航 navigationbar 与 tabbar
  5. memcached系列之二
  6. Linux目录结构示意详解图
  7. no talloc stackframe at ../source3/param/loadparm.c:4864, leaking memory
  8. 项目管理团队建设成功经验
  9. 在iphone开发中的get请求和post请求
  10. 转 lucene3搜索引擎,索引建立搜索排序分页高亮显示, IKAnalyzer分词