【问题标题】:Integrating Forum into Django CMS将论坛集成到 Django CMS
【发布时间】:2018-07-15 05:39:30
【问题描述】:

我想将我现有的应用程序(比如论坛)集成到 Django CMS 中。

问题是我不希望用户拥有任何 Django CMS 功能。

他们应该看不到编辑栏或任何与 Django CMS 相关的东西。

我只希望他们能够访问其他 Django 应用程序。没有 Django CMS 特定的东西,例如页面、插件等。

有可能吗?怎么样?

【问题讨论】:

    标签: django-cms django-apps


    【解决方案1】:

    最简单的方法是将 CMS 工具栏限制为超级用户;

    {% if request.user.is_authenticated and request.user.is_superuser %}
        {% cms_toolbar %}
    {% endif %}
    

    工具栏也是请求对象的一部分,因此在您的应用视图中,您可以通过执行request.toolbar.show_toolbar = False (docs) 之类的操作来禁用它

    【讨论】:

    • 我认为这是一个非常危险的想法。接受创建页面的后端代码仍然存在。因此,如果有人使用自定义代码或自己嵌入 js 对后端进行这些调用,从安全角度来看,这将是一个巨大的问题
    • @Kotlinboy 这绝不是危险的。在视图或模板中执行此操作是标准的 django。 {% 标签通过 django 的模板引擎转换为 HTML 以呈现到浏览器中,因此如果您没有登录或不是超级用户,则不会呈现工具栏。检查文档; docs.djangoproject.com/en/2.0/topics/auth/default/…
    • 但是幕后的 Django CMS 视图仍然接受这些页面创建和编辑方法或 API。因此,如果有人知道我们正在使用 Django CMS,他们可以通过从全新的 Django CMS 安装中复制和添加浏览器调试工具栏来为工具栏添加 JS。或者他们可以在以任何语言创建的机器人中重新实现 JS API 调用,并能够添加页面。我们必须在后端处理这些权限。在前端隐藏管理按钮并且您的项目仍然接受可以由普通用户执行管理操作的 API 调用是不好的
    • 我认为 Django CMS 有权限。但我不知道它是如何工作的。您需要阻止用户在后端和前端进行编辑和添加。
    猜你喜欢
    • 1970-01-01
    • 2011-01-11
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 2015-09-19
    • 2011-02-02
    • 1970-01-01
    • 2012-08-02
    相关资源
    最近更新 更多