PI only sees slices/users of your own institution
authorRezende & Pedro & Carlos & Raphael <rezende@land.ufrj.br>
Fri, 3 Oct 2014 20:10:32 +0000 (17:10 -0300)
committerRezende & Pedro & Carlos & Raphael <rezende@land.ufrj.br>
Fri, 3 Oct 2014 20:10:32 +0000 (17:10 -0300)
columns inverted in the Mgt/User tab
adding username in the resource tab

portal/actions.py
portal/sliceresourceview.py
portal/templates/fibre/fibre__widget-topmenu.html
portal/templates/fibre/fibre_institution.html

index 285b440..ccfa5e5 100644 (file)
@@ -469,6 +469,21 @@ def create_pending_slice(wsgi_request, request, email):
     try:
         # Send an email: the recipients are the PI of the authority
         recipients = authority_get_pi_emails(wsgi_request, request['authority_hrn'])
+       
+       pis = authority_get_pis(request, request['authority_hrn'])
+        pi_emails = []
+        for x in pis:
+            for e in x['pi_users']:
+                try:
+                    u = e.split(".")[1]
+                    y = User.objects.get(username = u)
+                   print y.username
+                    if y.username.count("@") != 0:
+                        if y.username.split("@")[1] == request['user_hrn'].split("@")[1]:
+                            pi_emails += [y.email]
+                           print y.email
+                except:
+                    print "fail"
 
         theme.template_name = 'slice_request_email.txt' 
         text_content = render_to_string(theme.template, request)
@@ -485,7 +500,7 @@ def create_pending_slice(wsgi_request, request, email):
         sender = sender.replace('\n', '')
 
         #sender = email
-        msg = EmailMultiAlternatives(subject, text_content, sender, recipients)
+        msg = EmailMultiAlternatives(subject, text_content, sender, pi_emails)
         msg.attach_alternative(html_content, "text/html")
         msg.send()
     except Exception, e:
index e5614b0..1bdbc77 100644 (file)
@@ -348,7 +348,8 @@ class SliceResourceView (LoginRequiredView, ThemeView):
 #        template_env['pending_resources'] = pending_resources.render(self.request)
         template_env['sla_dialog'] = '' # sla_dialog.render(self.request)
         template_env["theme"] = self.theme
-        template_env["username"] = request.user
+       template_env["username"] = self.request.user
+        template_env["person"] = self.request.user
         template_env["pi"] = pi
         template_env["slice"] = slicename
         template_env["section"] = "resources"
index a3ed9ff..088ba06 100644 (file)
@@ -37,7 +37,7 @@
                        {% if section != 'Registration' %}
                                {% if username %}
                                        {% if person.username %}
-                                               <div class="account">You are logged in as &nbsp;<a href="/portal/account/">{{ person.username }}</a> &nbsp;&nbsp;|&nbsp;&nbsp; <a id="logout" style="cursor:pointer;" data-username="{{ person.username }}"><span class="glyphicon glyphicon-off"></span> Logout</a></div>
+                                               <div class="account" id="username" >You are logged in as &nbsp;<a href="/portal/account/">{{ person.username }}</a> &nbsp;&nbsp;|&nbsp;&nbsp; <a id="logout" style="cursor:pointer;" data-username="{{ person.username }}"><span class="glyphicon glyphicon-off"></span> Logout</a></div>
                                        {% else %}
                                                <div class="account"> You are logged in as &nbsp;<a href="/portal/account/">{{ email }}</a> &nbsp;&nbsp;|&nbsp;&nbsp; <a id="logout" style="cursor:pointer;" data-username="{{ email }}"><span class="glyphicon glyphicon-off"></span> Logout</a></div>
                                        {% endif %}
index 50cbd8c..3ee7a55 100644 (file)
@@ -38,8 +38,8 @@
                                <table id="user-tab" class="table">
                                        <tr>
                                        <th>+/-</th>
+                                       <th>User hrn </th>
                                        <th>Email</th>
-                                       <th>User hrn</th>
                                        <th>First name</th>
                                        <th>Last name</th>
                                        <th>Enabled</th>
@@ -98,10 +98,13 @@ $(document).ready(function() {
     {% if user_details.parent_authority %}
 
         $.post("/rest/slice/",{'filters':{'parent_authority':'{{user_details.parent_authority}}'}}, function( data ) {
+           var username = "{{person.username}}";
             var list_slices = [];
             var table_slices = [];
             /* "slice_hrn", "slice_description", "slice_type", "parent_authority", "created", "nodes", "slice_url", "slice_last_updated", "users", "slice_urn", "slice_expires" */
             $.each( data, function( key, val ) {
+               if(String(val.users).indexOf("@") != -1){
+               if(String(val.users).split("@")[1] == username.split("@")[1]){
                 list_slices.push( "<li><a href=\"portal/slice/"+val.slice_hrn+"\">" + val.slice_hrn + "</a></li>" );
                 if(val.nodes=="undefined" || val.nodes==null){
                     nodes_length=0;
@@ -130,7 +133,8 @@ $(document).ready(function() {
                 slice_row += "<td>"+val.slice_expires+"</td>";
                 slice_row += "</tr>";
                 table_slices.push(slice_row);
-                
+               }
+                }
             });
            
             /* $("div#slice-list").html($( "<ul/>", { html: list_slices.join( "" ) })); */
@@ -141,23 +145,27 @@ $(document).ready(function() {
                
                
         $.post("/rest/user/",{'filters':{'parent_authority':'{{user_details.parent_authority}}'}}, function( data ) {
-            var list_users = [];
+           var username ="{{person.username}}";
+           var list_users = [];
             var table_users = [];
                    /* Available fields
                    user_gid, user_enabled, slices, pi_authorities, keys, parent_authority, user_first_name,
                    user_urn, user_last_name, user_phone, user_hrn, user_email, user_type
                    */
             $.each( data, function( key, val ) {
-                list_users.push( "<li><a href=\"portal/user/"+val.user_email+"\">" + val.user_email + "</a></li>" );
-                user_row = "<tr id='"+val.user_hrn+"'>";
-                user_row += "<td><input type='checkbox' class='user' id='"+val.user_hrn+"'></td>";
-                user_row += "<td>"+val.user_email+"</td>";
-                user_row += "<td>"+val.user_hrn+"</td>";
-                user_row += "<td>"+val.user_first_name+"</td>";
-                user_row += "<td>"+val.user_last_name+"</td>";
-                           user_row += "<td>"+val.user_enabled+"</td>";
-                user_row += "</tr>";
-                table_users.push(user_row);
+               if (val.user_hrn.indexOf('@') != -1 ){
+                 if (val.user_hrn.split("@")[1] == username.split("@")[1]){
+                    list_users.push( "<li><a href=\"portal/user/"+val.user_email+"\">" + val.user_email + "</a></li>" );
+                    user_row = "<tr id='"+val.user_hrn+"'>";
+                    user_row += "<td><input type='checkbox' class='user' id='"+val.user_hrn+"'></td>";
+                    user_row += "<td>"+val.user_hrn+"</td>";
+                    user_row += "<td>"+val.user_email+"</td>";
+                    user_row += "<td>"+val.user_first_name+"</td>";
+                    user_row += "<td>"+val.user_last_name+"</td>";
+                               user_row += "<td>"+val.user_enabled+"</td>";
+                    user_row += "</tr>";
+                table_users.push(user_row);}
+               }
             });
             $("table#user-tab tr:last").after(table_users.join( "" ));
             $("div#user-tab-loaded").css("display","block");