我需要限制用户使用权限访问filebrowser。例如,只有拥有“can_upload_files”权限的用户才能在自定义仪表板中看到Filebrowser。如何使用django auth权限限制对grappelli filebrowser的访问?
这可能吗?
谢谢!
我需要限制用户使用权限访问filebrowser。例如,只有拥有“can_upload_files”权限的用户才能在自定义仪表板中看到Filebrowser。如何使用django auth权限限制对grappelli 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,只需隐藏链接。
这也有利于限制访问其他模型,链接等在Django管理。谢谢! – zzart 2013-04-25 09:11:57
这可以通过中间件完成。喜欢的东西:
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
但你可以很容易地检查特定权限...
你在使用什么自定义仪表板?您可以修改管理模板并有条件地向该文件浏览器添加链接。如果登录的用户没有访问权限,则不显示该链接。 – 2012-04-03 17:13:39