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 に答える