diff --git a/preferences/migrations/0057_optionaluser_all_users_active.py b/preferences/migrations/0057_optionaluser_all_users_active.py
new file mode 100644
index 00000000..3f0cc8c1
--- /dev/null
+++ b/preferences/migrations/0057_optionaluser_all_users_active.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.7 on 2019-01-05 17:15
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('preferences', '0056_4_radiusoption'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='optionaluser',
+ name='all_users_active',
+ field=models.BooleanField(default=False, help_text='If True, all new created and connected users are active. If False, only when a valid registration has been paid'),
+ ),
+ ]
diff --git a/preferences/models.py b/preferences/models.py
index 104c261d..228807a6 100644
--- a/preferences/models.py
+++ b/preferences/models.py
@@ -116,6 +116,11 @@ class OptionalUser(AclMixin, PreferencesModel):
default=False,
help_text=_("A new user can create their account on Re2o")
)
+ all_users_active = models.BooleanField(
+ default=False,
+ help_text=_("If True, all new created and connected users are active.\
+ If False, only when a valid registration has been paid")
+ )
class Meta:
permissions = (
diff --git a/preferences/templates/preferences/display_preferences.html b/preferences/templates/preferences/display_preferences.html
index 0e34d6e9..e4321f5b 100644
--- a/preferences/templates/preferences/display_preferences.html
+++ b/preferences/templates/preferences/display_preferences.html
@@ -122,6 +122,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
{% trans "Delete not yet active users after" %} |
{{ useroptions.delete_notyetactive }} days |
+
+ {% trans "All users are active by default" %} |
+ {{ useroptions.all_users_active|tick }} |
+
{% trans "Users general permissions" %}
diff --git a/users/forms.py b/users/forms.py
index 81c31cae..d4110dcd 100644
--- a/users/forms.py
+++ b/users/forms.py
@@ -117,6 +117,7 @@ class PassForm(FormRevMixin, FieldPermissionFormMixin, forms.ModelForm):
"""Changement du mot de passe"""
user = super(PassForm, self).save(commit=False)
user.set_password(self.cleaned_data.get("passwd1"))
+ user.set_active()
user.save()
@@ -387,6 +388,20 @@ class AdherentCreationForm(AdherentForm):
#gtu_check.label = mark_safe("{} {}{}".format(
# _("I commit to accept the"), GeneralOption.get_cached_value('GTU'), _("General Terms of Use"), _(".")))
+ class Meta:
+ model = Adherent
+ fields = [
+ 'name',
+ 'surname',
+ 'pseudo',
+ 'email',
+ 'school',
+ 'comment',
+ 'telephone',
+ 'room',
+ 'state',
+ ]
+
def __init__(self, *args, **kwargs):
super(AdherentCreationForm, self).__init__(*args, **kwargs)
diff --git a/users/models.py b/users/models.py
index e4c25956..c5287fb6 100755
--- a/users/models.py
+++ b/users/models.py
@@ -337,7 +337,7 @@ class User(RevMixin, FieldPermissionModelMixin, AbstractBaseUser,
def set_active(self):
"""Enable this user if he subscribed successfully one time before"""
if self.state == self.STATE_NOT_YET_ACTIVE:
- if self.facture_set.filter(valid=True).filter(Q(vente__type_cotisation='All') | Q(vente__type_cotisation='Adhesion')).exists():
+ if self.facture_set.filter(valid=True).filter(Q(vente__type_cotisation='All') | Q(vente__type_cotisation='Adhesion')).exists() or OptionalUser.get_cached_value('all_users_active'):
self.state = self.STATE_ACTIVE
self.save()