我需要使用权限限制用户对文件浏览器的访问。例如,只有具有“can_upload_files”权限的用户才能在我的自定义仪表板中看到 Filebrowser。
这可能吗?
谢谢!
我需要使用权限限制用户对文件浏览器的访问。例如,只有具有“can_upload_files”权限的用户才能在我的自定义仪表板中看到 Filebrowser。
这可能吗?
谢谢!
如果您想要完成的事情只是从仪表板中隐藏“媒体管理”组,您可以在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 的访问,只是隐藏链接。
这可以通过中间件来完成。就像是:
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
但您可以轻松检查特定权限...