]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/views/auth.py
Fixes OSQA 276, Sidebar link to edit my subscriptions is wrong.
[osqa.git] / forum / views / auth.py
index 23059e2f7a11fda1f919047d5d732225bc6d6e94..9b41503120f3f9e8549d51a43da1de2f7e993e09 100644 (file)
@@ -147,6 +147,7 @@ def external_register(request):
 
             if User.objects.all().count() == 0:
                 user_.is_superuser = True
+                user_.is_staff = True
             
             user_.save()
             UserJoinsAction(user=user_, ip=request.META['REMOTE_ADDR']).save()
@@ -236,7 +237,7 @@ def temp_signin(request, user, code):
     user = get_object_or_404(User, id=user)
 
     if (ValidationHash.objects.validate(code, user, 'templogin', [user.id])):
-        return login_and_forward(request,  user, reverse('user_authsettings'),
+        return login_and_forward(request,  user, reverse('user_authsettings', kwargs={'id': user.id}),
                 _("You are logged in with a temporary access key, please take the time to fix your issue with authentication."))
     else:
         raise Http404()
@@ -267,10 +268,10 @@ def auth_settings(request, id):
 
     auth_keys = user_.auth_keys.all()
 
-    if user_.has_usable_password():
-        FormClass = ChangePasswordForm
-    else:
+    if request.user.is_superuser or (not user_.has_usable_password()):
         FormClass = SetPasswordForm
+    else:
+        FormClass = ChangePasswordForm
 
     if request.POST:
         form = FormClass(request.POST, user=user_)
@@ -279,13 +280,14 @@ def auth_settings(request, id):
                 request.user.message_set.create(message=_("Your password was changed"))
             else:
                 request.user.message_set.create(message=_("New password set"))
-                FormClass = ChangePasswordForm
+                if not request.user.is_superuser:
+                    form = ChangePasswordForm(user=user_)
                 
             user_.set_password(form.cleaned_data['password1'])
             user_.save()
             return HttpResponseRedirect(reverse('user_authsettings', kwargs={'id': user_.id}))
-    
-    form = FormClass(user=user_)
+    else:
+        form = FormClass(user=user_)
 
     auth_keys_list = []
 
@@ -304,7 +306,8 @@ def auth_settings(request, id):
         })
 
     return render_to_response('auth/auth_settings.html', {
-        'user': user_,
+        'view_user': user_,
+        "can_view_private": (user_ == request.user) or request.user.is_superuser,
         'form': form,
         'has_password': user_.has_usable_password(),
         'auth_keys': auth_keys_list,