Browse Source

Revert "#382: Change misago user perms from django admin"

This reverts commit 72d775e346f92318129a445f8412490443c8fe80.
Rafał Pitoń 11 years ago
parent
commit
4e77f30327
3 changed files with 5 additions and 33 deletions
  1. 1 28
      misago/users/admin.py
  2. 1 1
      misago/users/migrations/0001_initial.py
  3. 3 4
      misago/users/models/user.py

+ 1 - 28
misago/users/admin.py

@@ -2,11 +2,8 @@ from django.conf.urls import url
 from django.conf.urls import url
 from django.contrib import admin as djadmin
 from django.contrib.auth import get_user_model
-from django.db import transaction
 from django.utils.translation import ugettext_lazy as _
 
-from misago.acl.models import Role
-
 from misago.users.views.admin.bans import BansList, NewBan, EditBan, DeleteBan
 from misago.users.views.admin.ranks import (RanksList, NewRank, EditRank,
                                             DeleteRank, MoveDownRank,
@@ -26,8 +23,6 @@ class UserAdmin(djadmin.ModelAdmin):
     fieldsets = (
         (_('User data'),
          {'fields': ('username', 'email', 'is_staff', 'is_superuser')}),
-        (_('Misago permissions'),
-         {'fields': ('rank', 'roles')}),
         (_('Change Django Permissions'),
          {'fields': ('groups', 'user_permissions')}),
     )
@@ -38,32 +33,10 @@ class UserAdmin(djadmin.ModelAdmin):
     def has_delete_permission(self, request, obj=None):
         return False
 
-    def save_related(self, request, form, formsets, change):
-        with transaction.atomic():
-            obj = form.instance
-
-            obj.roles.clear()
-            obj.roles.add(*form.cleaned_data['roles'])
-
-            member_role = Role.objects.get(special_role='authenticated')
-            if not member_role.pk in [r.pk for r in form.cleaned_data['roles']]:
-                obj.roles.add(member_role)
-
-            # Update ACL key
-            obj.update_acl_key()
-            obj.save(update_fields=['acl_key'])
-
-            obj.groups.clear()
-            if form.cleaned_data['groups']:
-                obj.groups.add(*form.cleaned_data['groups'])
-
-            obj.user_permissions.clear()
-            if form.cleaned_data['user_permissions']:
-                obj.user_permissions.add(*form.cleaned_data['user_permissions'])
-
 djadmin.site.register(get_user_model(), UserAdmin)
 
 
+
 class MisagoAdminExtension(object):
     def register_urlpatterns(self, urlpatterns):
         # Users section

+ 1 - 1
misago/users/migrations/0001_initial.py

@@ -117,7 +117,7 @@ class Migration(migrations.Migration):
         migrations.AddField(
             model_name='user',
             name='rank',
-            field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to_field='id', to='misago_users.Rank'),
+            field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to_field='id', blank=True, to='misago_users.Rank', null=True),
             preserve_default=True,
         ),
         migrations.CreateModel(

+ 3 - 4
misago/users/models/user.py

@@ -165,16 +165,15 @@ class User(AbstractBaseUser, PermissionsMixin):
 
     timezone = models.CharField(max_length=255, default='utc')
 
-    rank = models.ForeignKey('Rank', on_delete=models.PROTECT)
+    rank = models.ForeignKey(
+        'Rank', null=True, blank=True, on_delete=models.PROTECT)
     title = models.CharField(max_length=255, null=True, blank=True)
     requires_activation = models.PositiveIntegerField(
         default=ACTIVATION_REQUIRED_NONE)
     is_staff = models.BooleanField(
         _('staff status'), default=False,
         help_text=_('Designates whether the user can log into admin sites.'))
-    roles = models.ManyToManyField(
-        'misago_acl.Role',
-        help_text=_('Users always have "Member" role.'))
+    roles = models.ManyToManyField('misago_acl.Role')
     acl_key = models.CharField(max_length=12, null=True, blank=True)
 
     is_avatar_banned = models.BooleanField(default=False)