admin.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from django.contrib import admin
  2. from django.contrib.auth.models import User
  3. from django.contrib.auth.admin import UserAdmin as AuthUserAdmin
  4. from django.core.exceptions import PermissionDenied
  5. from adhesions.admin import ProfileInline, AdherentInline
  6. class UserAdmin(AuthUserAdmin):
  7. inlines = (ProfileInline, AdherentInline,)
  8. def get_readonly_fields(self, request, obj=None):
  9. readonly_fields = super().get_readonly_fields(request, obj)
  10. if not request.user.is_superuser:
  11. readonly_fields += ('username',)
  12. return readonly_fields
  13. def get_fieldsets(self, request, obj=None):
  14. if request.user.is_superuser:
  15. return AuthUserAdmin.fieldsets
  16. else:
  17. return (
  18. (None, {'fields': ('username',)}),
  19. AuthUserAdmin.fieldsets[1],
  20. )
  21. def user_change_password(self, request, id):
  22. if not request.user.is_superuser:
  23. raise PermissionDenied
  24. return super().user_change_password(request, id)
  25. admin.site.unregister(User)
  26. admin.site.register(User, UserAdmin)