|
@@ -37,7 +37,7 @@ class UserForm(Form):
|
|
|
[
|
|
|
_("Sign-in Credentials"),
|
|
|
[
|
|
|
- ('email', {'label': _("E-mail Address"), 'help_text': _("Username is name under which user is known to other users.")}),
|
|
|
+ ('email', {'label': _("E-mail Address"), 'help_text': _("Member e-mail address.")}),
|
|
|
('new_password', {'label': _("Change User Password"), 'help_text': _("If you wish to change user password, enter here new password. Otherwhise leave this field blank."), 'has_value': False}),
|
|
|
],
|
|
|
],
|
|
@@ -116,6 +116,73 @@ class UserForm(Form):
|
|
|
return ''
|
|
|
|
|
|
|
|
|
+class NewUserForm(Form):
|
|
|
+ username = forms.CharField(max_length=255)
|
|
|
+ title = forms.CharField(max_length=255,required=False)
|
|
|
+ rank = forms.ModelChoiceField(queryset=Rank.objects.order_by('order').all(),required=False,empty_label=_('No rank assigned'))
|
|
|
+ roles = False
|
|
|
+ email = forms.EmailField(max_length=255)
|
|
|
+ password = forms.CharField(max_length=255,widget=forms.PasswordInput)
|
|
|
+
|
|
|
+ layout = [
|
|
|
+ [
|
|
|
+ _("Basic Account Settings"),
|
|
|
+ [
|
|
|
+ ('username', {'label': _("Username"), 'help_text': _("Username is name under which user is known to other users. Between 3 and 15 characters, only letters and digits are allowed.")}),
|
|
|
+ ('title', {'label': _("User Title"), 'help_text': _("To override user title with custom one, enter it here.")}),
|
|
|
+ ('rank', {'label': _("User Rank"), 'help_text': _("This user rank.")}),
|
|
|
+ ('roles', {'label': _("User Roles"), 'help_text': _("This user roles. Roles are sets of user permissions")}),
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ _("Sign-in Credentials"),
|
|
|
+ [
|
|
|
+ ('email', {'label': _("E-mail Address"), 'help_text': _("Member e-mail address.")}),
|
|
|
+ ('password', {'label': _("User Password"), 'help_text': _("Member password."), 'has_value': False}),
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ ]
|
|
|
+
|
|
|
+ def __init__(self, *args, **kwargs):
|
|
|
+ self.request = kwargs['request']
|
|
|
+
|
|
|
+ # Roles list
|
|
|
+ if self.request.user.is_god():
|
|
|
+ self.base_fields['roles'] = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple,queryset=Role.objects.order_by('name').all(),error_messages={'required': _("User must have at least one role assigned.")})
|
|
|
+ else:
|
|
|
+ self.base_fields['roles'] = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple,queryset=Role.objects.filter(protected__exact=False).order_by('name').all(),required=False)
|
|
|
+
|
|
|
+ super(NewUserForm, self).__init__(*args, **kwargs)
|
|
|
+
|
|
|
+ def clean_username(self):
|
|
|
+ new_user = User.objects.get_blank_user()
|
|
|
+ new_user.set_username(self.cleaned_data['username'])
|
|
|
+ try:
|
|
|
+ new_user.full_clean()
|
|
|
+ except ValidationError as e:
|
|
|
+ new_user.is_username_valid(e)
|
|
|
+ return self.cleaned_data['username']
|
|
|
+
|
|
|
+ def clean_email(self):
|
|
|
+ new_user = User.objects.get_blank_user()
|
|
|
+ new_user.set_email(self.cleaned_data['email'])
|
|
|
+ try:
|
|
|
+ new_user.full_clean()
|
|
|
+ except ValidationError as e:
|
|
|
+ new_user.is_email_valid(e)
|
|
|
+ return self.cleaned_data['email']
|
|
|
+
|
|
|
+ def clean_password(self):
|
|
|
+ new_user = User.objects.get_blank_user()
|
|
|
+ new_user.set_password(self.cleaned_data['password'])
|
|
|
+ try:
|
|
|
+ new_user.full_clean()
|
|
|
+ except ValidationError as e:
|
|
|
+ new_user.is_password_valid(e)
|
|
|
+ validate_password(self.cleaned_data['password'])
|
|
|
+ return self.cleaned_data['password']
|
|
|
+
|
|
|
+
|
|
|
class SearchUsersForm(Form):
|
|
|
username = forms.CharField(max_length=255, required=False)
|
|
|
email = forms.CharField(max_length=255, required=False)
|