diff --git a/accounts/forms.py b/accounts/forms.py index 83bf2ca..3e61dff 100644 --- a/accounts/forms.py +++ b/accounts/forms.py @@ -4,15 +4,15 @@ from django.forms.widgets import PasswordInput from accounts.models import * -__all__ = ['AddUserForm', 'EditUserForm', 'GroupForm', 'TeamForm'] +__all__ = ['UserForm', 'UserFormWithoutUsername', 'GroupForm', 'TeamForm'] -user_fields=['first_name', 'last_name', 'email', 'is_superuser'] +user_fields=['first_name', 'last_name', 'email'] -AddUserForm = modelform_factory(User, - fields=['username']+user_fields) -EditUserForm = modelform_factory(User, - fields=user_fields) +UserForm = modelform_factory(User, + fields=['username']+user_fields+['is_superuser']) +UserFormWithoutUsername = modelform_factory(User, + fields=user_fields+['is_superuser']) GroupForm = modelform_factory(Group, fields=['name']) TeamForm = modelform_factory(Team, diff --git a/accounts/views.py b/accounts/views.py index 37068c6..5e0b4bc 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -32,6 +32,7 @@ def profile(request): def user_list(request): return render(request, 'accounts/user_list.html', { 'users': User.objects.all(), + 'external_auth': settings.EXTERNAL_AUTH, }) @@ -43,7 +44,7 @@ def user_details(request, user): 'directteams': Team.objects.filter(users__id=user), 'tab': tab, 'group_managment': settings.GROUP_MANAGMENT, - 'password_editable': settings.PASSWORD_EDITABLE, + 'external_auth': settings.EXTERNAL_AUTH, }) @@ -52,9 +53,12 @@ def user_edit(request, user=None): if user: user = get_object_or_404(User, id=user) - form = EditUserForm(request.POST or None, instance=user) + if settings.EXTERNAL_AUTH: + form = UserFormWithoutUsername(request.POST or None, instance=user) + else: + form = UserForm(request.POST or None, instance=user) else: - form = AddUserForm(request.POST or None) + form = UserForm(request.POST or None) if request.method == 'POST' and form.is_valid(): newuser = form.save() @@ -72,7 +76,7 @@ def user_edit(request, user=None): @project_perm_required('manage_accounts') def user_edit_password(request, user): - if not settings.PASSWORD_EDITABLE: + if not settings.EXTERNAL_AUTH: raise Http404() user = get_object_or_404(User, id=user) form = AdminPasswordChangeForm(user, request.POST or None) diff --git a/ponytracker/settings.py b/ponytracker/settings.py index 04aa4b9..e3f7db1 100644 --- a/ponytracker/settings.py +++ b/ponytracker/settings.py @@ -170,4 +170,4 @@ RESERVED_PROJECT_URLS = [ ] GROUP_MANAGMENT = True -PASSWORD_EDITABLE = True +EXTERNAL_AUTH = False diff --git a/templates/accounts/user_details.html b/templates/accounts/user_details.html index 03278be..197b784 100644 --- a/templates/accounts/user_details.html +++ b/templates/accounts/user_details.html @@ -32,7 +32,7 @@ {% else %} activate {% endif %} - {% if password_editable %} + {% if not external_auth %} change password {% endif %} edit