Merge branch 'master' of ssh://git.onelab.eu/git/myslice
[myslice.git] / portal / accountview.py
index 5f7a396..30e0b9a 100644 (file)
@@ -1,14 +1,16 @@
 from portal.templateviews            import LoginRequiredAutoLogoutView
 #
 from manifold.core.query             import Query
-from manifold.manifoldapi            import execute_query
-from portal.actions                  import manifold_update_user
+from manifold.manifoldapi               import execute_query
+from portal.actions                     import manifold_update_user, manifold_update_account
 #
-from myslice.viewutils               import topmenu_items, the_user
+from myslice.viewutils                  import topmenu_items, the_user
 #
-from django.http                     import HttpResponse
-from django.contrib.auth.decorators  import login_required
-import json
+from django.http                        import HttpResponse, HttpResponseRedirect
+from django.contrib                     import messages
+from django.contrib.auth.decorators     import login_required
+#
+import json, os, re
 
 # requires login
 class AccountView(LoginRequiredAutoLogoutView):
@@ -113,7 +115,10 @@ def account_process(request):
         #user_params = { 'config': updated_config}
         manifold_update_user(request,user_params)
         # this will be depricated, we will show the success msg in same page
-        return HttpResponse('Sucess: First Name and Last Name Updated!')       
+#        return HttpResponse('Sucess: First Name and Last Name Updated!')
+        # Redirect to same page with success message
+        messages.success(request, 'Sucess: First Name and Last Name Updated.')
+        return HttpResponseRedirect("/portal/account/")       
     elif 'submit_pass' in request.POST:
         edited_password = request.POST['password']
         
@@ -122,8 +127,10 @@ def account_process(request):
         #updating password in local:user
         user_params = { 'password': user_pass['password']}
         manifold_update_user(request,user_params)
+#        return HttpResponse('Success: Password Changed!!')
+        messages.success(request, 'Sucess: Password Updated.')
+        return HttpResponseRedirect("/portal/account/")
 
-        return HttpResponse('Success: Password Changed!!')
     elif 'generate' in request.POST:
         # Generate public and private keys using SFA Library
         from sfa.trust.certificate  import Keypair
@@ -138,9 +145,11 @@ def account_process(request):
 #        keypair = re.sub("\n", "\\n", keypair)
 #        #keypair = keypair.rstrip('\r\n')
 #        keypair = ''.join(keypair.split())
-        get_user.keypair = keypair
-        get_user.save()
-        return HttpResponse('Success: New Keypair Generated! %s' % keypair)
+        user_params = { 'config': keypair, 'auth_type':'managed'}
+        manifold_update_account(request,user_params)
+#        return HttpResponse('Success: New Keypair Generated!')
+        messages.success(request, 'Sucess: New Keypair Generated!')
+        return HttpResponseRedirect("/portal/account/")
 
     elif 'upload_key' in request.POST:
         up_file = request.FILES['pubkey']
@@ -150,15 +159,23 @@ def account_process(request):
         allowed_extension =  ['.pub','.txt']
         if file_extension in allowed_extension and re.search(r'ssh-rsa',file_content):
             file_content = '{"user_public_key":"'+ file_content +'"}'
-            file_content = re.sub("\r", "", file_content)
-            file_content = re.sub("\n", "\\n",file_content)
+            #file_content = re.sub("\r", "", file_content)
+            #file_content = re.sub("\n", "\\n",file_content)
             file_content = ''.join(file_content.split())
-            get_user.keypair = file_content
-            get_user.save()
-            return HttpResponse('Success: Publickey uploaded! Old records overwritten')
+            # update manifold account table
+            user_params = { 'config': file_content, 'auth_type':'user'}
+            manifold_update_account(request,user_params)
+#            return HttpResponse('Success: Publickey uploaded! Please delegate your credentials using SFA: http://trac.myslice.info/wiki/DelegatingCredentials')
+            messages.success(request, 'Publickey uploaded! Please delegate your credentials using SFA: http://trac.myslice.info/wiki/DelegatingCredentials')
+            return HttpResponseRedirect("/portal/account/")
+
         else:
-            return HttpResponse('Please upload a valid RSA public key [.txt or .pub].')    
-        
+#            return HttpResponse('Please upload a valid RSA public key [.txt or .pub].')    
+            messages.error(request, 'RSA key error: Please upload a valid RSA public key [.txt or .pub].')
+            return HttpResponseRedirect("/portal/account/")
+       
     else:
-        message = 'You submitted an empty form.'
-        return HttpResponse(message)
+        messages.info(request, 'Under Construction. Please try again later!')
+        return HttpResponseRedirect("/portal/account/")
+
+