1

我需要使用权限限制用户对文件浏览器的访问。例如,只有具有“can_upload_files”权限的用户才能在我的自定义仪表板中看到 Filebrowser。

这可能吗?

谢谢!

4

2 回答 2

4

如果您想要完成的事情只是从仪表板中隐藏“媒体管理”组,您可以在dashboard.py代码中使用以下条件:

if context.get('user').has_perm('accounts.can_upload_files'):
    self.children.append(modules.LinkList(
        _('Media Management'),
        column=2,
        children=[
            {
                'title': _('FileBrowser'),
                'url': '/admin/filebrowser/browse/',
                'external': False,
            },
        ]
    ))

请注意,这实际上不会限制对 FileBrowser 的访问,只是隐藏链接。

于 2012-04-05T18:59:06.280 回答
0

这可以通过中间件来完成。就像是:

from django.http import HttpResponseForbidden

class MediaLibraryAccess(object):
    def process_request(self, request):
        if not request.path.startswith('/admin/media-library'):
            return None
        if request.user and request.user.is_superuser:
            return None
        return HttpResponseForbidden('Access Forbidden')

不要忘记激活你的中间件settings.py

MIDDLEWARE_CLASSES = (
       ...
       "myapp.middleware.MediaLibraryAccess",
)

在此示例中,我正在检查,superuser但您可以轻松检查特定权限...

于 2016-08-02T10:14:16.610 回答