Institution: restrict button visibilities based on user status [pi/use]
authorYasin <mohammed-yasin.rahman@lip6.fr>
Fri, 21 Mar 2014 14:32:29 +0000 (15:32 +0100)
committerYasin <mohammed-yasin.rahman@lip6.fr>
Fri, 21 Mar 2014 14:32:29 +0000 (15:32 +0100)
portal/institution.py
portal/templates/institution.html
portal/templates/onelab/onelab_institution.html

index 30ef186..6c55517 100644 (file)
@@ -53,11 +53,29 @@ class InstitutionView (FreeAccessView, ThemeView):
                     env['user_details'] = {'parent_authority': user_local_authority}
             except Exception,e:
                 env['error'] = "Please check your Manifold user config"
+            ## check user is pi or not
+            platform_query  = Query().get('local:platform').select('platform_id','platform','gateway_type','disabled')
+            account_query  = Query().get('local:account').select('user_id','platform_id','auth_type','config')
+            platform_details = execute_query(self.request, platform_query)
+            account_details = execute_query(self.request, account_query)
+            for platform_detail in platform_details:
+                for account_detail in account_details:
+                    if platform_detail['platform_id'] == account_detail['platform_id']:
+                        if 'config' in account_detail and account_detail['config'] is not '':
+                            account_config = json.loads(account_detail['config'])
+                            if 'myslice' in platform_detail['platform']:
+                                acc_auth_cred = account_config.get('delegated_authority_credentials','N/A')
+            # assigning values
+            if acc_auth_cred == {}:
+                pi = "is_not_pi"
+            else:
+                pi = "is_pi"
+
         else: 
             env['person'] = None
     
         env['theme'] = self.theme
-    
+        env['pi'] = pi 
         env['username']=the_user(request)
         env['topmenu_items'] = topmenu_items(None, request)
         if state: env['state'] = state
index 7a84e9b..ea404fc 100644 (file)
        <div class="tab-pane row" id="users" data-authority="{{user_details.parent_authority}}">
                <div class="col-md-12">
                        <table class="table"><tr><td><img src="{{ STATIC_URL }}img/loading.gif" alt="Loading Slices" /></td></tr></table>
+                       {%if 'is_pi'  in pi %}  
                        <div>
                                <button id="deleteusers" type="button" class="btn btn-default"><span class="glyphicon glyphicon-remove"></span> Delete Users</button>
                        </div>
+                       {%endif%}
                </div>
        </div>
        <div class="tab-pane row" id="slices">
+               {%if 'is_pi'  in pi %}
                <button id="createslice" type="button" class="btn btn-default"><span class="glyphicon glyphicon-plus"></span> create slice</button>
+               {%else%}
+               <button id="createslice" type="button" class="btn btn-default"><span class="glyphicon glyphicon-plus"></span> request slice</button>
+               {%endif%}
            <div id="slice-tab-loading"><img src="{{ STATIC_URL }}img/loading.gif" alt="Loading Slices" /></div>
            <div id="slice-tab-loaded" style="display:none;">
                <table id="slice-tab">
                    </tr>
                </table>
                <br>
+                       {%if 'is_pi'  in pi %}
                <div>
                    <button id="renewslices" type="button" class="btn btn-default"><span class="glyphicon glyphicon-refresh"></span> Renew Slices</button>
                    <button id="deleteslices" type="button" class="btn btn-default"><span class="glyphicon glyphicon-remove"></span> Delete Slices</button>
                </div>
+                       {%endif%} 
            </div>
        </div>
 </div>
index f7c8187..ad4f236 100644 (file)
                        <div id="authority-tab-loading"><img src="{{ STATIC_URL }}img/loading.gif" alt="Loading Authority" /></div>
                    <div id="authority-tab-loaded" style="display:none;">
                        <div id="authority-data" style="float:left; width:50%;"></div>
-                       <div id="onelab_membership" style="float:right; width:50%;">
-                           <img src="{{ STATIC_URL }}img/onelab-logo.png" alt="" /><br>
-                           <div id="onelab-data"></div>
-                       </div>
+                               <div id="onelab_membership" style="float:right; width:50%;">
+                                   <img src="{{ STATIC_URL }}img/onelab-logo.png" alt="" /><br>
+                               <div id="onelab-data"></div>
+                               </div>
                    </div>
           </div>
        </div>
        <div class="tab-pane row" id="users" data-authority="{{user_details.parent_authority}}">
                <div class="col-md-12">
                        <table class="table"><tr><td><img src="{{ STATIC_URL }}img/loading.gif" alt="Loading Slices" /></td></tr></table>
+                       {%if 'is_pi'  in pi %}  
                        <div>
                                <button id="deleteusers" type="button" class="btn btn-default"><span class="glyphicon glyphicon-remove"></span> Delete Users</button>
                        </div>
+                       {%endif%}
                </div>
        </div>
        <div class="tab-pane row" id="slices">
+               {%if 'is_pi'  in pi %}
                <button id="createslice" type="button" class="btn btn-default"><span class="glyphicon glyphicon-plus"></span> create slice</button>
+               {%else%}
+               <button id="createslice" type="button" class="btn btn-default"><span class="glyphicon glyphicon-plus"></span> request slice</button>
+               {%endif%}
            <div id="slice-tab-loading"><img src="{{ STATIC_URL }}img/loading.gif" alt="Loading Slices" /></div>
            <div id="slice-tab-loaded" style="display:none;">
                <table id="slice-tab">
                    </tr>
                </table>
                <br>
+                       {%if 'is_pi'  in pi %}
                <div>
                    <button id="renewslices" type="button" class="btn btn-default"><span class="glyphicon glyphicon-refresh"></span> Renew Slices</button>
                    <button id="deleteslices" type="button" class="btn btn-default"><span class="glyphicon glyphicon-remove"></span> Delete Slices</button>
                </div>
+                       {%endif%} 
            </div>
        </div>
 </div>
                 authority_row = "<img src='{{ STATIC_URL }}img/institutions/{{user_details.parent_authority}}.gif' alt='' /><br>";
                 authority_row += "<br>";
                 authority_row += "<b>authority:</b> "+val.authority_hrn+"<br>";
-                authority_row += "<br>";
-                authority_row += "<b>"+val.name+"</b><br>";
-                authority_row += "<br>";
-                authority_row += "<b>Address:</b> "+val.address+"<br>";
-                authority_row += "<b>City:</b> "+val.postcode+" "+val.city+"<br>";
-                authority_row += "<br>";
-                authority_row += "<b>Country:</b> "+val.country+"<br>";
-                authority_row += "<br>";
-                authority_row += "<br>";
-                authority_row += "<h2>Contacts</h2>";
-                authority_row += "<b>Legal:</b> ";
-                /*
-
-                TODO: find a way to express JSON correctly given the constrains: CSV / JSON
-
-                legal = jQuery.parseJSON(val.legal);
-                if($.isArray(legal)){
-                    $.each(legal, function(k,v){
-                        authority_row += k+" "+v+"<br>";
-                    });
-                }else{
-                */
-                    authority_row += val.legal+"<br>";
-                //}
-                authority_row += "<br>";
-                authority_row += "<b>Scientific:</b> ";
-                /*
-                scientific = jQuery.parseJSON(val.scientific);
-                if($.isArray(scientific)){
-                    $.each(scientific, function(v){
-                        authority_row += v+", ";
-                    });
-                }else{
-                */
-                    authority_row += val.scientific+"<br>";
-                //}
-                onelab_membership = "<b>Status: </b>"+val.onelab_membership;
-                onelab_data.push(onelab_membership);
                 authority_data.push(authority_row);
             });
             $("div#authority-data").html(authority_data.join( "" ));