A note on this patch: I changed the labels on a couple of the entities for consitancy sake, including:

Added 'HBAC' to the label for HBAC services
Capitalized SUDO
Removed the word Rule from the SUDO label

Not sure if these will have any effect on the CLI. I suspect not, and that the QW team isn't writing tests for SUDO yet that makes use of the Label field.


From 0ed90c1174c03db1cbe8301cff1f6ced435e240e Mon Sep 17 00:00:00 2001
From: Adam Young <ayo...@redhat.com>
Date: Mon, 29 Nov 2010 14:26:55 -0500
Subject: [PATCH] action panel sibling
 added function to get sibling entities from the tab set.
 remove explicit sibling code from entity pages
 Modified the Label fields on HBAC and SUDO to make them appear cleaner in the UI

---
 install/static/entity.js               |  143 ++++++++++++++++++++++++--------
 install/static/hbac.js                 |   36 +--------
 install/static/hbacsvc.js              |   22 +-----
 install/static/hbacsvcgroup.js         |   23 +-----
 install/static/sudocmd.js              |   17 +----
 install/static/sudocmdgroup.js         |   20 +----
 install/static/sudorule.js             |   37 +--------
 install/static/test/data/ipa_init.json |  109 ++++++++++--------------
 install/static/webui.js                |    2 +-
 ipalib/plugins/hbacsvc.py              |    2 +-
 ipalib/plugins/sudocmd.py              |    2 +-
 ipalib/plugins/sudocmdgroup.py         |    2 +-
 ipalib/plugins/sudorule.py             |    2 +-
 13 files changed, 166 insertions(+), 251 deletions(-)

diff --git a/install/static/entity.js b/install/static/entity.js
index 5d59b3c727287f062f96f7d6f279640359ca0407..9b62ce375f58909b27aba7910ce49bdf16f38443 100644
--- a/install/static/entity.js
+++ b/install/static/entity.js
@@ -367,40 +367,89 @@ function ipa_entity_setup(container) {
     facet.refresh();
 }
 
+
+
+/*Returns the entity requested, as well as:
+  any nested tabs underneath it or
+  its parent tab and the others nested at the same level*/
+
+IPA.nested_tabs = function(entity_name){
+
+    var siblings = [];
+
+    for (var top_tab_index = 0;
+         top_tab_index < IPA.tab_set.length;
+         top_tab_index += 1){
+        var top_tab =  IPA.tab_set[top_tab_index];
+        for (var subtab_index = 0;
+             subtab_index < top_tab.children.length;
+             subtab_index += 1){
+            if(top_tab.children[subtab_index].name){
+                if (top_tab.children[subtab_index].name === entity_name){
+                    siblings.push(entity_name);
+                    if (top_tab.children[subtab_index].children){
+                        var  nested_entities = top_tab.children[subtab_index].children;
+                        for (var nested_index = 0;
+                             nested_index < nested_entities.length;
+                             nested_index += 1){
+                            siblings.push (nested_entities[nested_index].name);
+                        }
+                    }
+                }else{
+                    if (top_tab.children[subtab_index].children){
+                        var  nested_entities = top_tab.children[subtab_index].children;
+                        for (var nested_index = 0;
+                             nested_index < nested_entities.length;
+                             nested_index += 1){
+                            if (nested_entities[nested_index].name === entity_name){
+                                siblings.push(top_tab.children[subtab_index].name);
+                                for (var nested_index2 = 0;
+                                     nested_index2 < nested_entities.length;
+                                     nested_index2 += 1){
+                                    siblings.push(nested_entities[nested_index2].name);
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    return siblings;
+}
+
+
+
 function ipa_facet_create_action_panel(container) {
 
     var that = this;
     var entity_name = that.entity_name;
-
     var action_panel = $('<div/>', {
         "class": "action-panel",
         html: $('<h3>',{
             text: IPA.metadata[entity_name].label
         })
     }).appendTo(container);
-
     function build_link(other_facet,label){
         var li = $('<li/>', {
             "class" : other_facet.display_class,
             title: other_facet.name,
             text: label,
             click: function(entity_name, other_facet_name) {
-                    return function() {
-                        if($(this).hasClass('entity-facet-disabled')){
-                            return false;
-                        }
-                        var this_pkey = $('input[id=pkey]', action_panel).val();
-                        IPA.switch_and_show_page(
-                            entity_name, other_facet_name,
-                            this_pkey);
-
+                return function() {
+                    if($(this).hasClass('entity-facet-disabled')){
                         return false;
-                    };
-                }(entity_name, other_facet_name)
-            });
+                    }
+                    var this_pkey = $('input[id=pkey]', action_panel).val();
+                    IPA.switch_and_show_page(
+                        entity_name, other_facet_name,
+                        this_pkey);
+                    return false;
+                };
+            }(entity_name, other_facet_name)
+        });
         return li;
     }
-
     /*Note, for debugging purposes, it is useful to set var pkey_type = 'text';*/
     var pkey_type = 'hidden';
     $('<input/>', {
@@ -408,36 +457,62 @@ function ipa_facet_create_action_panel(container) {
         id:'pkey',
         name:'pkey'
     }).appendTo(action_panel);
-
     var ul = $('<ul/>', {'class': 'action'}).appendTo(action_panel);
-
     var entity = IPA.get_entity(entity_name);
     var facet_name =  ipa_current_facet(entity);
-
     var other_facet = entity.facets[0];
     var other_facet_name = other_facet.name;
-    var main_facet = build_link(other_facet,other_facet.label);
+    var nested_tabs = IPA.nested_tabs(entity_name);
+    var main_facet = build_link(other_facet,other_facet.label)
+    for (var nested_index = 0 ;
+         nested_index < nested_tabs.length;
+         nested_index += 1){
+        if (nested_tabs[nested_index] === entity_name){
+            /*assume for now that entities with only a single facet
+              do not have search*/
+            if (entity.facets.length > 0 ){
+                main_facet.text( 'List ' +  IPA.metadata[entity_name].label);
+            }
+            main_facet.appendTo(ul);
 
-    /*assumeing for now that entities with only a single facet 
-      do not have search*/
-    if (entity.facets.length > 0 ){
-        main_facet.text( 'List ' +  IPA.metadata[entity_name].label);
-    }
-    main_facet.appendTo(ul);
-
-    ul.append($('<li><span class="action-controls"/></li>'));
-    for (var i=1; i<entity.facets.length; i++) {
-        other_facet = entity.facets[i];
-        other_facet_name = other_facet.name;
+            ul.append($('<li><span class="action-controls"/></li>'));
+            for (var i=1; i<entity.facets.length; i++) {
+                other_facet = entity.facets[i];
+                other_facet_name = other_facet.name;
 
-        ul.append(build_link(other_facet,other_facet.label));
+                if (other_facet.label) {
+                    ul.append(build_link(other_facet,other_facet.label));
+                } else { // For now empty label indicates an association facet
+                    var attribute_members = IPA.metadata[entity_name].attribute_members;
+                    for (var attribute_member in attribute_members) {
+                        var other_entities = attribute_members[attribute_member];
+                        for (var j = 0; j < other_entities.length; j++) {
+                            var other_entity = other_entities[j];
+                            var label = IPA.metadata[other_entity].label;
+                            ul.append(build_link(other_facet,label,other_entity));
+                        }
+                    }
+                }
+            }
+        }else{
+            $('<li/>', {
+                title: nested_tabs[nested_index],
+                text: IPA.metadata[nested_tabs[nested_index]].label,
+                "class": "search-facet",
+                click: function() {
+                    var state = {};
+                    state[nested_tabs[0]+'-entity'] =
+                        this.title;
+                    nav_push_state(state);
+                    return false;
+                }
+            }).appendTo(ul);
+         }
     }
-
     /*When we land on the search page, disable all facets
-      that require a pkey until one is selected*/
+          that require a pkey until one is selected*/
     if (facet_name === 'search'){
         $('.entity-facet', action_panel).addClass('entity-facet-disabled');
     }
-
     return action_panel;
 }
diff --git a/install/static/hbac.js b/install/static/hbac.js
index a6162b8bf7cf692b2586632191fcc9b2e8f5334b..0d6ed7373991a07ad663fc0a20df01f06a4b3389 100755
--- a/install/static/hbac.js
+++ b/install/static/hbac.js
@@ -120,50 +120,18 @@ function ipa_hbac_search_facet(spec) {
             'label': 'Cull Disabled Rules'
         }));
 */
-        var action_panel = that.get_action_panel();
-
-        var ul = $('ul', action_panel);
-
-        $('<li/>', {
-            title: 'hbacsvc',
-            text: 'HBAC Services'
-        }).appendTo(ul);
-
-        $('<li/>', {
-            title: 'hbacsvcgroup',
-            text: 'HBAC Service Groups'
-        }).appendTo(ul);
 
         that.search_facet_create(container);
 
-        // TODO: replace with IPA.metadata[that.entity_name].label
+
         container.children().last().prepend(
-            $('<h2/>', { 'html': 'HBAC Rules' }));
+            $('<h2/>', { 'html': IPA.metadata.hbac.label }));
         container.children().last().prepend('<br/><br/>');
 
     };
 
     that.setup = function(container) {
-
         that.search_facet_setup(container);
-
-        var action_panel = that.get_action_panel();
-
-        var li = $('li[title=hbacsvc]', action_panel);
-        li.click(function() {
-            var state = {};
-            state['hbac-entity'] = 'hbacsvc';
-            nav_push_state(state);
-            return false;
-        });
-
-        li = $('li[title=hbacsvcgroup]', action_panel);
-        li.click(function() {
-            var state = {};
-            state['hbac-entity'] = 'hbacsvcgroup';
-            nav_push_state(state);
-            return false;
-        });
     };
 
     return that;
diff --git a/install/static/hbacsvc.js b/install/static/hbacsvc.js
index c4140272e29047b781cc6e2a5ec92e9128ea4b7e..a0ef75d144e82c0b262c6f4e47a7eb25fa256835 100755
--- a/install/static/hbacsvc.js
+++ b/install/static/hbacsvc.js
@@ -89,29 +89,9 @@ function ipa_hbacsvc_search_facet(spec) {
     };
 
     that.create = function(container) {
-
-        var action_panel = that.get_action_panel();
-
-        var ul = $('ul', action_panel);
-
-        /*Note that we add the rules at the top of the action panel
-          so that the HBAC entities always show in the same order.*/
-
-        $('<li/>', {
-            title: 'hbac',
-            text: 'HBAC Rules'
-        }).prependTo(ul);
-
-        $('<li/>', {
-            title: 'hbacsvcgroup',
-            text: 'HBAC Service Groups'
-        }).appendTo(ul);
-
         that.search_facet_create(container);
-
-        // TODO: replace with IPA.metadata[that.entity_name].label
         container.children().last().prepend(
-            $('<h2/>', { 'html': 'HBAC Services' }));
+            $('<h2/>', { 'html': IPA.metadata.hbacsvc.label }));
         container.children().last().prepend('<br/><br/>');
     };
 
diff --git a/install/static/hbacsvcgroup.js b/install/static/hbacsvcgroup.js
index 914c73543514d4a472987c6cfeb47980b14209a9..f06fe4f9dd7c64c0c2d6782e424d546ff73896cd 100755
--- a/install/static/hbacsvcgroup.js
+++ b/install/static/hbacsvcgroup.js
@@ -102,31 +102,10 @@ function ipa_hbacsvcgroup_search_facet(spec) {
     };
 
     that.create = function(container) {
-
-        var action_panel = that.get_action_panel();
-
-        var ul = $('ul', action_panel);
-
-        /*Note that we add these at the top of the action panel
-          so that the HBAC entities always show in the same order.*/
-        $('<li/>', {
-            title: 'hbacsvc',
-            text: 'HBAC Services'
-        }).prependTo(ul);
-
-        $('<li/>', {
-            title: 'hbac',
-            text: 'HBAC Rules'
-        }).prependTo(ul);
-
-
         that.search_facet_create(container);
-
-        // TODO: replace with IPA.metadata[that.entity_name].label
         container.children().last().prepend(
-            $('<h2/>', { 'html': 'HBAC Service Groups' }));
+            $('<h2/>', { 'html':IPA.metadata.hbacsvcgroup.label }));
         container.children().last().prepend('<br/><br/>');
-
     };
 
     that.setup = function(container) {
diff --git a/install/static/sudocmd.js b/install/static/sudocmd.js
index 0e335627e6f0da95fb2a6e70117824771472b79a..3ad71eb526164711ce1f3e40327f3afebf3f6ded 100755
--- a/install/static/sudocmd.js
+++ b/install/static/sudocmd.js
@@ -90,25 +90,10 @@ function ipa_sudocmd_search_facet(spec) {
 
     that.create = function(container) {
 
-        var action_panel = that.get_action_panel();
-
-        var ul = $('ul', action_panel);
-
-        $('<li/>', {
-            title: 'sudorule',
-            text: 'SUDO Rules'
-        }).prependTo(ul);
-
-        $('<li/>', {
-            title: 'sudocmdgroup',
-            text: 'SUDO Command Groups'
-        }).appendTo(ul);
-
         that.search_facet_create(container);
 
-        // TODO: replace with IPA.metadata[that.entity_name].label
         container.children().last().prepend(
-            $('<h2/>', { 'html': 'SUDO Commands' }));
+            $('<h2/>', { 'html':   IPA.metadata.sudocmd.label  }));
         container.children().last().prepend('<br/><br/>');
     };
 
diff --git a/install/static/sudocmdgroup.js b/install/static/sudocmdgroup.js
index c8b7edf8d1bafe50e68bbe942fb325578911306e..22762aec0e0dd7ae70e0172da52983649f2331c6 100755
--- a/install/static/sudocmdgroup.js
+++ b/install/static/sudocmdgroup.js
@@ -103,28 +103,10 @@ function ipa_sudocmdgroup_search_facet(spec) {
 
     that.create = function(container) {
 
-        var action_panel = that.get_action_panel();
-
-        var ul = $('ul', action_panel);
-
-        /*Make sure that these go at the top of the action panel
-          and in the same order as on the other SUDO entity pages */
-        $('<li/>', {
-            title: 'sudocmd',
-            text: 'SUDO Command'
-        }).prependTo(ul);
-
-        $('<li/>', {
-            title: 'sudorule',
-            text: 'SUDO Rules'
-        }).prependTo(ul);
-
-
         that.search_facet_create(container);
 
-        // TODO: replace with IPA.metadata[that.entity_name].label
         container.children().last().prepend(
-            $('<h2/>', { 'html': 'SUDO Command Groups' }));
+            $('<h2/>', { 'html': IPA.metadata.sudocmdgroup.label }));
         container.children().last().prepend('<br/><br/>');
 
     };
diff --git a/install/static/sudorule.js b/install/static/sudorule.js
index 023cafde29a1f0c35c043642e798cf9f27363fd4..9e0e4e589d9911072931fca67e96a259e7d0b5f9 100755
--- a/install/static/sudorule.js
+++ b/install/static/sudorule.js
@@ -91,51 +91,16 @@ function ipa_sudorule_search_facet(spec) {
     };
 
     that.create = function(container) {
-
-        var action_panel = that.get_action_panel();
-
-        var ul = $('ul', action_panel);
-
-        $('<li/>', {
-            title: 'sudocmd',
-            text: 'SUDO Commands'
-        }).appendTo(ul);
-
-        $('<li/>', {
-            title: 'sudocmdgroup',
-            text: 'SUDO Command Groups'
-        }).appendTo(ul);
-
         that.search_facet_create(container);
 
-        // TODO: replace with IPA.metadata[that.entity_name].label
         container.children().last().prepend(
-            $('<h2/>', { 'html': 'SUDO Rules' }));
+            $('<h2/>', { 'html': IPA.metadata.sudorule.label }));
         container.children().last().prepend('<br/><br/>');
 
     };
 
     that.setup = function(container) {
-
         that.search_facet_setup(container);
-
-        var action_panel = that.get_action_panel();
-
-        var li = $('li[title=sudocmd]', action_panel);
-        li.click(function() {
-            var state = {};
-            state['sudorule-entity'] = 'sudocmd';
-            nav_push_state(state);
-            return false;
-        });
-
-        li = $('li[title=sudocmdgroup]', action_panel);
-        li.click(function() {
-            var state = {};
-            state['sudorule-entity'] = 'sudocmdgroup';
-            nav_push_state(state);
-            return false;
-        });
     };
 
     return that;
diff --git a/install/static/test/data/ipa_init.json b/install/static/test/data/ipa_init.json
index 84fc02cc0218756cd3c69a2bc47155dfcaa058a9..1de6849040f2f886f1ecc44467c7a44d35f78c72 100644
--- a/install/static/test/data/ipa_init.json
+++ b/install/static/test/data/ipa_init.json
@@ -6,37 +6,6 @@
         "results": [
             {
                 "error": null,
-                "messages": {
-                    "ajax": {
-                        "401": "Your kerberos ticket no longer valid.Please run KInit and then click 'retry'If this is your first time running the IPA Web UI<a href='/ipa/errors/ssbrowser.html'> Follow these directions</a> to configure your browser."
-                    },
-                    "button": {
-                        "add": "Add",
-                        "enroll": "Enroll",
-                        "find": "Find",
-                        "remove": "Delete",
-                        "reset": "Reset",
-                        "update": "Update"
-                    },
-                    "details": {
-                        "account": "Account Details",
-                        "contact": "Contact Details",
-                        "employee": "      Employee Information",
-                        "identity": "Identity Details",
-                        "mailing": "Mailing Address",
-                        "misc": "Misc. Information",
-                        "to_top": "Back to Top"
-                    },
-                    "login": {
-                        "header": "Logged In As"
-                    },
-                    "search": {
-                        "delete_confirm": "Do you really want to delete the selected entries?",
-                        "quick_links": "Quick Links",
-                        "select_all": "Select All",
-                        "unselect_all": "Unselect All"
-                    }
-                },
                 "metadata": {
                     "aci": {
                         "__base64__": ""
@@ -1090,11 +1059,11 @@
                                 "include": null,
                                 "label": "Group name",
                                 "length": null,
-                                "maxlength": 33,
+                                "maxlength": 255,
                                 "minlength": null,
                                 "multivalue": false,
                                 "name": "cn",
-                                "pattern": "^[a-zA-Z0-9_.][a-zA-Z0-9_.-]{0,30}[a-zA-Z0-9_.$-]?$",
+                                "pattern": "^[a-zA-Z0-9_.][a-zA-Z0-9_.-]{0,252}[a-zA-Z0-9_.$-]?$",
                                 "pattern_errmsg": "may only include letters, numbers, _, -, . and $",
                                 "primary_key": true,
                                 "query": false,
@@ -1638,7 +1607,7 @@
                             "objectclass",
                             "aci"
                         ],
-                        "label": "Services",
+                        "label": "HBAC Services",
                         "methods": [
                             "add",
                             "del",
@@ -1807,6 +1776,9 @@
                             "enrolledby": [
                                 "user"
                             ],
+                            "managedby": [
+                                "host"
+                            ],
                             "memberof": [
                                 "hostgroup",
                                 "netgroup",
@@ -1824,7 +1796,8 @@
                             "nsosversion",
                             "usercertificate",
                             "memberof",
-                            "krblastpwdchange"
+                            "krblastpwdchange",
+                            "managedby"
                         ],
                         "hidden_attributes": [
                             "objectclass",
@@ -1833,10 +1806,12 @@
                         "label": "Hosts",
                         "methods": [
                             "add",
+                            "add_managedby",
                             "del",
                             "disable",
                             "find",
                             "mod",
+                            "remove_managedby",
                             "show"
                         ],
                         "name": "host",
@@ -2559,6 +2534,9 @@
                         ],
                         "uuid_attribute": "ipauniqueid"
                     },
+                    "pkinit": {
+                        "__base64__": ""
+                    },
                     "pwpolicy": {
                         "attribute_members": {},
                         "container_dn": "cn=AYOUNG.BOSTON.DEVEL.REDHAT.COM,cn=kerberos",
@@ -2972,7 +2950,7 @@
                             "objectclass",
                             "aci"
                         ],
-                        "label": "SudoCmds",
+                        "label": "SUDO Commands",
                         "methods": [
                             "add",
                             "del",
@@ -3071,7 +3049,7 @@
                             "objectclass",
                             "aci"
                         ],
-                        "label": "Sudo Command Groups",
+                        "label": "SUDO Command Groups",
                         "methods": [
                             "add",
                             "add_member",
@@ -3232,7 +3210,7 @@
                             "objectclass",
                             "aci"
                         ],
-                        "label": "SudoRule",
+                        "label": "SUDO",
                         "methods": [
                             "add",
                             "add_allow_command",
@@ -3699,11 +3677,11 @@
                                 "include": null,
                                 "label": "User login",
                                 "length": null,
-                                "maxlength": 33,
+                                "maxlength": 255,
                                 "minlength": null,
                                 "multivalue": false,
                                 "name": "uid",
-                                "pattern": "^[a-zA-Z0-9_.][a-zA-Z0-9_.-]{0,30}[a-zA-Z0-9_.$-]?$",
+                                "pattern": "^[a-zA-Z0-9_.][a-zA-Z0-9_.-]{0,252}[a-zA-Z0-9_.$-]?$",
                                 "pattern_errmsg": "may only include letters, numbers, _, -, . and $",
                                 "primary_key": true,
                                 "query": false,
@@ -4145,19 +4123,19 @@
                             "Administrator"
                         ],
                         "gidnumber": [
-                            "1010626268"
+                            "757995011"
                         ],
                         "homedirectory": [
                             "/home/admin"
                         ],
                         "ipauniqueid": [
-                            "73321718-f35011df-8e89dc8d-0b6df103"
+                            "297bbe44-f810-11df-8f59-525400674dcd"
                         ],
                         "krblastpwdchange": [
-                            "20101118201738Z"
+                            "20101124211850Z"
                         ],
                         "krbpasswordexpiration": [
-                            "20110216201738Z"
+                            "20110222211850Z"
                         ],
                         "krbprincipalname": [
                             "ad...@ayoung.boston.devel.redhat.com"
@@ -4198,7 +4176,7 @@
                             "admin"
                         ],
                         "uidnumber": [
-                            "1010626268"
+                            "757995011"
                         ]
                     }
                 ],
@@ -4206,18 +4184,18 @@
                 "truncated": false
             },
             {
-                "count": 64,
+                "count": 67,
                 "error": null,
                 "result": {
                     "basedn": "dc=ayoung,dc=boston,dc=devel,dc=redhat,dc=com",
-                    "bin": "/var/www",
+                    "bin": "/home/ayoung/devel/freeipa",
                     "ca_agent_port": 9443,
                     "ca_ee_port": 9444,
                     "ca_host": "ipa.ayoung.boston.devel.redhat.com",
                     "ca_port": 9180,
-                    "conf": "/etc/ipa/server.conf",
-                    "conf_default": "/etc/ipa/default.conf",
-                    "confdir": "/etc/ipa",
+                    "conf": "/root/.ipa/lite.conf",
+                    "conf_default": "/root/.ipa/default.conf",
+                    "confdir": "/root/.ipa",
                     "config_loaded": true,
                     "container_accounts": "cn=accounts",
                     "container_applications": "cn=applications,cn=configs,cn=policies",
@@ -4243,39 +4221,42 @@
                     "container_taskgroup": "cn=taskgroups,cn=accounts",
                     "container_user": "cn=users,cn=accounts",
                     "container_virtual": "cn=virtual operations",
-                    "context": "server",
+                    "context": "lite",
                     "debug": false,
                     "domain": "ayoung.boston.devel.redhat.com",
-                    "dot_ipa": "/var/www/.ipa",
+                    "dot_ipa": "/root/.ipa",
                     "enable_ra": true,
                     "fallback": true,
-                    "home": "/var/www",
+                    "home": "/root",
                     "host": "ipa.ayoung.boston.devel.redhat.com",
                     "in_server": true,
-                    "in_tree": false,
+                    "in_tree": true,
                     "interactive": true,
-                    "ipalib": "/usr/lib/python2.6/site-packages/ipalib",
+                    "ipalib": "/home/ayoung/devel/freeipa/ipalib",
                     "ldap_uri": "ldapi://%2fvar%2frun%2fslapd-AYOUNG-BOSTON-DEVEL-REDHAT-COM.socket",
-                    "log": null,
-                    "logdir": "/var/log/ipa",
+                    "lite_host": "127.0.0.1",
+                    "lite_pem": "/root/.ipa/lite.pem",
+                    "lite_port": 8888,
+                    "log": "/root/.ipa/log/lite.log",
+                    "logdir": "/root/.ipa/log",
                     "mode": "production",
                     "mount_ipa": "/ipa/",
                     "mount_jsonserver": "json",
                     "mount_xmlserver": "xml",
                     "prompt_all": false,
-                    "ra_plugin": "dogtag",
+                    "ra_plugin": "selfsign",
                     "realm": "AYOUNG.BOSTON.DEVEL.REDHAT.COM",
                     "rpc_json_uri": "http://localhost:8888/ipa/json";,
-                    "script": "/var/www/mod_wsgi",
-                    "site_packages": "/usr/lib/python2.6/site-packages",
-                    "startup_traceback": false,
+                    "script": "/home/ayoung/devel/freeipa/lite-server.py",
+                    "site_packages": "/home/ayoung/devel/freeipa",
+                    "startup_traceback": true,
                     "verbose": 0,
                     "webui_assets_dir": null,
                     "webui_prod": true,
-                    "xmlrpc_uri": "https://ipa.ayoung.boston.devel.redhat.com/ipa/xml";
+                    "xmlrpc_uri": "http://localhost:8888/ipa/xml";
                 },
-                "summary": "64 variables",
-                "total": 64
+                "summary": "67 variables",
+                "total": 67
             }
         ]
     }
diff --git a/install/static/webui.js b/install/static/webui.js
index 0e3adb27d6d6418211738c77a44db4010b5b184e..4b2156c015d21f7d5409bed31fbb903bff0a194a 100644
--- a/install/static/webui.js
+++ b/install/static/webui.js
@@ -38,7 +38,7 @@ var admin_tab_set = [
             {name:'hbacsvc', setup: ipa_entity_setup},
             {name:'hbacsvcgroup', setup: ipa_entity_setup}
         ]},
-        {name:'sudorule', setup: ipa_entity_setup,children:[
+        {name:'sudorule', label:'SUDO', setup: ipa_entity_setup,children:[
             {name:'sudocmd', setup: ipa_entity_setup},
             {name:'sudocmdgroup', setup: ipa_entity_setup}
         ]},
diff --git a/ipalib/plugins/hbacsvc.py b/ipalib/plugins/hbacsvc.py
index 4074eb33d3cb1b9578aaed34bc3afd7baff915fd..c04a8ed6793b9e02d714183b61502eb5f147d314 100644
--- a/ipalib/plugins/hbacsvc.py
+++ b/ipalib/plugins/hbacsvc.py
@@ -57,7 +57,7 @@ class hbacsvc(LDAPObject):
     default_attributes = ['cn', 'description', 'memberindirect',]
     uuid_attribute = 'ipauniqueid'
 
-    label = _('Services')
+    label = _('HBAC Services')
 
     takes_params = (
         Str('cn',
diff --git a/ipalib/plugins/sudocmd.py b/ipalib/plugins/sudocmd.py
index 1fef17217a8785264a95afd45e04439b4b128433..33683c328dc69b4f6494470ed498ffe4290b76dd 100644
--- a/ipalib/plugins/sudocmd.py
+++ b/ipalib/plugins/sudocmd.py
@@ -57,7 +57,7 @@ class sudocmd(LDAPObject):
         'sudocmd', 'description',
     ]
     uuid_attribute = 'ipauniqueid'
-    label = _('SudoCmds')
+    label = _('SUDO Commands')
 
     takes_params = (
         Str('sudocmd',
diff --git a/ipalib/plugins/sudocmdgroup.py b/ipalib/plugins/sudocmdgroup.py
index 5476f99cf1af1520126b7e72738334943aa4c6e5..c6cecaf5603eba3f3855b662f8ed7ce07da88a96 100644
--- a/ipalib/plugins/sudocmdgroup.py
+++ b/ipalib/plugins/sudocmdgroup.py
@@ -64,7 +64,7 @@ class sudocmdgroup(LDAPObject):
         'memberindirect': ['sudocmd', 'sudocmdgroup'],
     }
 
-    label = _('Sudo Command Groups')
+    label = _('SUDO Command Groups')
 
     takes_params = (
         Str('cn',
diff --git a/ipalib/plugins/sudorule.py b/ipalib/plugins/sudorule.py
index df0ae5c4d767861a616f07de37ab7aaee5721c79..6a81b86b90b5b66d89ae5531c7a20dad20d1c275 100644
--- a/ipalib/plugins/sudorule.py
+++ b/ipalib/plugins/sudorule.py
@@ -46,7 +46,7 @@ class sudorule(LDAPObject):
         'memberdenycmd': ['sudocmd', 'sudocmdgroup'],
     }
 
-    label = _('SudoRule')
+    label = _('SUDO')
 
     takes_params = (
         Str('cn',
-- 
1.7.2.3

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to