【问题标题】:django admin permissions - can edit user but can't edit his permissions - how to do it?django 管理员权限 - 可以编辑用户但不能编辑他的权限 - 怎么做?
【发布时间】:2010-12-21 23:57:20
【问题描述】:

我给了编辑这样的权限:

  • 认证 |用户 |可以添加/更改用户 - 开启

  • 认证 |权限 |可以添加/更改权限 - 关闭

不过,在编辑时,他们可以更改自己的权限(并允许自己执行不应执行的操作)。我找到了一张 2 年前的票:http://code.djangoproject.com/ticket/6519,它仍然可以这样工作。

如何允许用户编辑(电子邮件、密码等)但阻止权限更改?

【问题讨论】:

  • 看来你最好的办法是找到 thauber 并告诉他快点修复它。

标签: python django permissions django-admin


【解决方案1】:

下面的代码使您能够覆盖表单集,这实质上限制了非超级用户编辑权限的能力。他们仍然可以创建用户,但他们不能修改权限。他们甚至可以很好地编辑用户。

class UserAdmin(UserAdmin):

    def change_view(self, request, object_id):

        # we want to limit the ability of the normal user to edit permissions.
        if request.user.is_superuser:
            self.fieldsets = (
                (None, {'fields': ('username', 'password')}),
                (_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
                (_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser', 'user_permissions')}),
                (_('Important dates'), {'fields': ('last_login', 'date_joined')}),
                (_('Groups'), {'fields': ('groups',)}),
            )
        else:
            self.fieldsets = (
                (None, {'fields': ('username', 'password')}),
                (_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
                #(_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser', 'user_permissions')}),
                (_('Important dates'), {'fields': ('last_login', 'date_joined')}),
                #(_('Groups'), {'fields': ('groups',)}),
            )


        return super(UserAdmin, self).change_view(request, object_id,
            )

【讨论】:

    【解决方案2】:

    恐怕你目前的方法行不通。

    来自Django docs

    如果您有权添加用户,则有权创建超级用户,然后超级用户可以更改其他用户。

    因此,如果您设法阻止编辑者更改权限,这将无济于事,因为他们仍然可以创建可以这样做的超级用户。

    【讨论】:

      猜你喜欢
      • 2021-07-01
      • 1970-01-01
      • 2022-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-30
      • 2011-03-09
      • 2021-11-24
      相关资源
      最近更新 更多