zoukankan      html  css  js  c++  java
  • 控制用户创建课程权限

    起因

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

    思路

    读wiki啊!!

    对于折腾edX的新手而言,我觉得首要的工作就两点:
    1. 让平台跑起来
    2. 通读wiki(configuration wikiedx-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目录下)

  • 相关阅读:
    Blank page instead of the SharePoint Central Administration site
    BizTalk 2010 BAM Configure
    Use ODBA with Visio 2007
    Handling SOAP Exceptions in BizTalk Orchestrations
    BizTalk与WebMethods之间的EDI交换
    Append messages in BizTalk
    FTP protocol commands
    Using Dynamic Maps in BizTalk(From CodeProject)
    Synchronous To Asynchronous Flows Without An Orchestration的简单实现
    WSE3 and "Action for ultimate recipient is required but not present in the message."
  • 原文地址:https://www.cnblogs.com/zhaojianwei/p/4666808.html
Copyright © 2011-2022 走看看