権限を使用してファイルブラウザへのユーザーアクセスを制限する必要があります。たとえば、「can_upload_files」という権限を持つユーザだけが、私のカスタムダッシュボードでFilebrowserを見ることができます。djangoの認証許可を使用してgrappelliファイルブラウザへのアクセスを制限する方法は?
これは可能ですか?
ありがとうございます!
権限を使用してファイルブラウザへのユーザーアクセスを制限する必要があります。たとえば、「can_upload_files」という権限を持つユーザだけが、私のカスタムダッシュボードでFilebrowserを見ることができます。djangoの認証許可を使用してgrappelliファイルブラウザへのアクセスを制限する方法は?
これは可能ですか?
ありがとうございます!
あなたが達成したい事は、単にあなたがあなたの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 adminの他のモデル、リンクなどへのアクセスを制限するのにも適しています。ありがとう! – zzart
これはミドルウェアで行うことができます。以下のような何か:
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')
は私がsuperuser
をチェックしています。この例では、あなたのsettings.py
MIDDLEWARE_CLASSES = (
...
"myapp.middleware.MediaLibraryAccess",
)
にミドルウェアをアクティブにすることを忘れないでくださいしかし、あなたは簡単に特定の権限をチェックすることができ ...
どのカスタムダッシュボードを使用していますか?管理テンプレートを変更し、そこにファイルブラウザへのリンクを条件付きで追加することができます。ログインしたユーザーにアクセス権がない場合、リンクは表示されません。 –