我需要限制用戶使用權限訪問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