【问题标题】:Modify view uploaded file access in Elgg在 Elgg 中修改查看上传文件的访问权限
【发布时间】:2015-08-31 10:57:08
【问题描述】:

管理员/登录用户可以在上传文件时设置当前访问控制。三种访问类型是:公共、私人和登录用户:

  • 公开:未登录的用户可以查看和访问上传的文件

  • private:除了用户和管理员之外,任何人都无法查看上传的文件

  • 登录用户:只有登录用户和管理员才能查看和访问上传的文件。

功能

根据用户设置的访问控制,可以查看和访问上传的文件。

因此,当公共用户(未登录帐户)可以查看和访问已将访问设置设置为公开的上传文件时,将无法查看已将控制访问设置设置为“任何一个”的文件私人”或“登录用户”。

任务

我想做的是更改控制访问权限,使公共用户(未登录帐户)无法查看或访问上传的文件。因此,即使用户将控制访问设置为公开,非登录用户也无法查看和访问上传的文件,因此,所有公开用户可以看到的只是一个空列表。

因此,我想问一下,我应该在 /Elgg/views/default/output/access.php 目录中更改 Elgg 框架以达到预期的结果,还是可以在插件 mod 的视图中更改它: Elgg/mod/plugin/views/default/object?

【问题讨论】:

    标签: php elgg


    【解决方案1】:

    Elgg 被设计为以插件为中心,因此正确的方法是创建您的自定义插件,该插件将覆盖您需要的核心插件和第 3 方插件等元素。我们在这里解释动机:http://learn.elgg.org/en/1.12/guides/dont-modify-core.html

    据我了解,您不会强制将文件限制为登录用户或更多用户。已经有一个访问级别,您只需要强制执行它。

    我们需要改变两个元素:

    1. 文件保存显示的编辑表单不显示不需要的访问级别
    2. 文件保存操作以拒绝不需要的访问值

    广告。 1 您可以 override the view forms/file/uploads 并将对 input/access 的调用替换为过滤不需要值的自定义版本。这比更改到处使用的input/access 视图要好。

    广告。 2 您可以覆盖整个file/upload 操作(由于复制大量逻辑而令人讨厌),或者只使用plugin hook 来进行额外的控制。这里有一个钩子,当您检测到无效输入值时可以中断操作:http://learn.elgg.org/en/1.12/guides/hooks-list.html#action-hooks

    【讨论】:

    • 请允许我再次与您确认,以减少任何误解。编辑 Elgg 核心是一个很大的问题,因为它会弄乱整个框架,并且 Elgg 的未来维护会很困难。其次,我确实知道已经有访问级别,但是我确实需要覆盖公共设置,这样未登录的用户将无法看到任何上传的文件,而不管访问设置如何。一种方法是从选项中删除“PUBLIC”,另一种方法是覆盖 Ad.1 中所述的视图。此外,我对您更改 2 个元素的观点感到困惑。
    • cont... 我想知道您所指的 2 个元素是什么意思。我同意编辑输入/访问是不切实际的,因为它在其他模组和其他目录中被广泛使用,它会非常混乱。
    • 谢谢我已经解决了,我只需要添加gatekeeper() 以使未登录的用户无法访问该页面。我已将其添加到以下路径目录:mod/plugin/pages /plugin/all.php
    【解决方案2】:

    正如 Paweł Sroka 所说,修改主要的 Elgg 核心框架是非常不可取的。因此,正确的方法是创建插件或修改现有插件。

    因此,如问题中所述,主要任务是防止任何非登录用户有权查看和访问列出的项目。因此,我所做的就是实现'gatekeeper()'

    gatekeeper() -> 函数允许用户通过应用访问控制规则来管理代码的执行方式。此外,在应用时,它会将非登录用户转发到首页,从而保护受限页面的内容不被查看。

    最后,'gatekeeper()' 在我的问题之前的以下目录中实现:elgg/mod/plugin/pages/plugin/all.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 2016-05-16
      相关资源
      最近更新 更多