ensure that created users are put in everyone group + new version V01.59.02
authorymh <ymh.work@gmail.com>
Wed, 16 Sep 2015 22:18:24 +0200
changeset 1434 e0ba7a35e9df
parent 1433 a138be8195e8
child 1435 94c2be677bc4
ensure that created users are put in everyone group + new version
src/ldt/ldt/__init__.py
src/ldt/ldt/user/forms.py
src/ldt/ldt/user/models.py
--- a/src/ldt/ldt/__init__.py	Wed Sep 16 17:31:31 2015 +0200
+++ b/src/ldt/ldt/__init__.py	Wed Sep 16 22:18:24 2015 +0200
@@ -1,6 +1,6 @@
 __all__ = ["VERSION", "get_version", "__version__", "default_app_config"]
 
-VERSION = (1, 59, 1, "final", 0)
+VERSION = (1, 59, 2, "final", 0)
 
 
 def get_version():
--- a/src/ldt/ldt/user/forms.py	Wed Sep 16 17:31:31 2015 +0200
+++ b/src/ldt/ldt/user/forms.py	Wed Sep 16 22:18:24 2015 +0200
@@ -66,6 +66,27 @@
         except User.DoesNotExist:
             return username
         raise forms.ValidationError(self.error_messages['duplicate_username'])
+    
+    def save(self, commit=True):
+        user = super(AdminUserCreationForm, self).save(commit=False)
+        
+        public_group_name = getattr(settings,'PUBLIC_GROUP_NAME', None)
+        
+        if public_group_name:
+            def save_m2m():
+                everyone, _ = Group.objects.get_or_create(name=public_group_name)
+                user.groups.add(everyone)
+            if commit:
+                user.save()
+                save_m2m()
+                user.save()
+            else:
+                old_save_m2m = getattr(self, 'save_m2m', lambda: None)
+                self.save_m2m = lambda: [old_save_m2m(), save_m2m()]
+        
+        return user
+
+
 
 class AdminUserChangeForm(UserChangeForm):
     language = forms.ChoiceField(label=_("Language"), choices=[(k,_(v)) for k,v in settings.LANGUAGES], initial=settings.LANGUAGE_CODE[:2])
--- a/src/ldt/ldt/user/models.py	Wed Sep 16 17:31:31 2015 +0200
+++ b/src/ldt/ldt/user/models.py	Wed Sep 16 22:18:24 2015 +0200
@@ -32,6 +32,7 @@
         user.save(using=self._db)
         everyone, _ = Group.objects.get_or_create(name=settings.PUBLIC_GROUP_NAME)
         user.groups.add(everyone)
+        user.save(using=self._db)
         return user
 
     def create_superuser(self, username, email, password, **extra_fields):