Actions.py: created generic funtion for delete local:account
authorYasin <mohammed-yasin.rahman@lip6.fr>
Wed, 18 Dec 2013 12:35:16 +0000 (13:35 +0100)
committerYasin <mohammed-yasin.rahman@lip6.fr>
Wed, 18 Dec 2013 12:35:16 +0000 (13:35 +0100)
portal/accountview.py
portal/actions.py
portal/templates/account-view.html

index 06425a0..1ddea18 100644 (file)
@@ -2,7 +2,7 @@ from unfold.loginrequired               import LoginRequiredAutoLogoutView
 #
 from manifold.core.query                import Query
 from manifold.manifoldapi               import execute_query
-from portal.actions                     import manifold_update_user, manifold_update_account, manifold_add_account
+from portal.actions                     import manifold_update_user, manifold_update_account, manifold_add_account, manifold_delete_account
 #
 from ui.topmenu                         import topmenu_items, the_user
 #
@@ -426,10 +426,8 @@ def account_process(request):
         for platform_detail in platform_details:
             if platform_detail['platform'] == "fuseco":
                 platform_id = platform_detail['platform_id']
-        # generic function is not possible. [filter is not constant]
-        query = Query.delete('local:account').filter_by('platform_id','==',platform_id)
-        results = execute_query(request,query)
-
+        user_params = {'user_id':user_id}
+        manifold_delete_account(request,platform_id,user_params)
         messages.info(request, 'Reference Account is removed from Fuseco platform. You have no access to Fuseco resources anymore.')
         return HttpResponseRedirect("/portal/account/")
 
@@ -437,9 +435,8 @@ def account_process(request):
         for platform_detail in platform_details:
             if platform_detail['platform'] == "ple":
                 platform_id = platform_detail['platform_id']
-        # generic function is not possible. [filter is not constant]
-        query = Query.delete('local:account').filter_by('platform_id','==',platform_id)
-        results = execute_query(request,query)
+        user_params = {'user_id':user_id}
+        manifold_delete_account(request,platform_id,user_params)
         messages.info(request, 'Reference Account is removed from PLE platform. You have no access to PLE resources anymore.')
         return HttpResponseRedirect("/portal/account/")
     
@@ -447,9 +444,8 @@ def account_process(request):
         for platform_detail in platform_details:
             if platform_detail['platform'] == "omf":
                 platform_id = platform_detail['platform_id']
-        # generic function is not possible. [filter is not constant]
-        query = Query.delete('local:account').filter_by('platform_id','==',platform_id)
-        results = execute_query(request,query)
+        user_params = {'user_id':user_id}
+        manifold_delete_account(request,platform_id,user_params)
         messages.info(request, 'Reference Account is removed from OMF:Nitos platform. You have no access to OMF:Nitos resources anymore.')
         return HttpResponseRedirect("/portal/account/")
     
@@ -457,7 +453,8 @@ def account_process(request):
         for platform_detail in platform_details:
             if platform_detail['platform'] == "wilab":
                 platform_id = platform_detail['platform_id']
-        # generic function is not possible. [filter is not constant]
+        user_params = {'user_id':user_id}
+        manifold_delete_account(request,platform_id,user_params)
         query = Query.delete('local:account').filter_by('platform_id','==',platform_id)
         results = execute_query(request,query)
         messages.info(request, 'Reference Account is removed from Wilab platform. You have no access to Wilab resources anymore.')
@@ -467,9 +464,8 @@ def account_process(request):
         for platform_detail in platform_details:
             if platform_detail['platform'] == "iotlab":
                 platform_id = platform_detail['platform_id']
-        # generic function is not possible. [filter is not constant]
-        query = Query.delete('local:account').filter_by('platform_id','==',platform_id)
-        results = execute_query(request,query)
+        user_params = {'user_id':user_id}
+        manifold_delete_account(request,platform_id,user_params)
         messages.info(request, 'Reference Account is removed from IOTLab platform. You have no access to IOTLab resources anymore.')
         return HttpResponseRedirect("/portal/account/")
 
index 3ad61fd..97b8ac8 100644 (file)
@@ -90,9 +90,16 @@ def manifold_update_account(request,account_params):
     #result, = results
     return results
 
+#explicitly mention the platform_id
+def manifold_delete_account(request, platform_id, account_params):
+    query = Query.delete('local:account').filter_by('platform_id', '==', platform_id).set(account_params).select('user_id')
+    results = execute_query(request,query)
+    return results
+
 
+#not tested
 def manifold_add_platform(request, platform_params):
-    query = Query.create('local:platform').set(account_params).select(['user', 'platform'])
+    query = Query.create('local:platform').set(platform_params).select(['user', 'platform'])
     results = execute_admin_query(request,query)
     if not results:
         raise Exception, "Failed creating manifold  platform %s for user: %s" % (platform_params['platform'], platform_params['user'])
index 1da1514..81cca78 100644 (file)
                        <tr class="odd"> 
                        <th>Platform</th> 
                        <th>Account Type</th>
-                               <th>Account_delegation</th>
-                       <th>user_hrn</th>
+                               <th>Account Delegation</th>
+                       <th>User hrn</th>
                        <!--<th>Pub Key</th> -->
                </tr>   
                        {% for row in principal_acc %}         
 
 
 
-<h3>Testbed Accounts <small>User accounts in other testbeds</small></h3>
+<h3>Testbed Accounts <small>Reference accounts in the following testbeds</small></h3>
 <div id="middle" align="center">
     <div class="well">
         <table class="mytable table table-bordered table-hover"> 
                 <td class="odd"> {{ row.account_type }} </td>
                                <td class="odd"> {{ row.account_reference }} </td>
                                <td class="odd">
-                               <button class="btn btn-danger btn-xs" name="delete_{{row.platform_name}}" type="submit" title="Delete account from this platform">Delete {{row.platform_name}}</button>
+                               <button class="btn btn-danger btn-xs" name="delete_{{row.platform_name}}" type="submit" title="Delete account from this platform">Delete</button>
                                </td>
             </tr> 
             {%endfor%}               
     </div>
 </div>
 
-<h3>Add Accounts</h3>
+<h3>Add Accounts <small>Add ref. account to the following testbeds</small></h3>
 <div id="middle" align="center">
     <div class="well">
         <table class="mytable table table-bordered table-hover"> 
             <tr class="odd"> 
                 <th>Platforms</th> 
-                <th>Request Access</th>
+                <th>Add Account</th>
             </tr>   
             {% for platform in platform_list %}         
             <tr class="border_bottom">
                 <td class="odd"> {{ platform.platform_no_access }} </td>
                 <td class="odd">
-                                       <button class="btn btn-default btn-xs" name= "add_{{platform.platform_no_access}}" type="submit" title="Add account to this platform">Add {{platform.platform_no_access}}</button>
+                                       <button class="btn btn-success btn-xs" name= "add_{{platform.platform_no_access}}" type="submit" title="Add account to this platform">Add</button>
                                </td>
             </tr> 
             {%endfor%}