diff options
Diffstat (limited to 'install/static')
-rwxr-xr-x | install/static/hbac.js | 16 | ||||
-rwxr-xr-x | install/static/hbacsvc.js | 14 | ||||
-rwxr-xr-x | install/static/hbacsvcgroup.js | 202 | ||||
-rw-r--r-- | install/static/index.xhtml | 1 | ||||
-rw-r--r-- | install/static/service.js | 12 | ||||
-rw-r--r-- | install/static/test/data/hbacsvcgroup_add_member.json | 24 | ||||
-rw-r--r-- | install/static/test/data/hbacsvcgroup_remove_member.json | 21 | ||||
-rw-r--r-- | install/static/test/data/json_metadata.json | 100 |
8 files changed, 285 insertions, 105 deletions
diff --git a/install/static/hbac.js b/install/static/hbac.js index fed645129..a5b7676c1 100755 --- a/install/static/hbac.js +++ b/install/static/hbac.js @@ -114,6 +114,10 @@ function ipa_hbac_search_facet(spec) { that.create = function(container) { var that = this; + + // TODO: replace with IPA.metadata[that.entity_name].label + $('<h2/>', { 'html': 'HBAC Rules' }).appendTo(container); + /* // Not yet implemented @@ -142,11 +146,17 @@ function ipa_hbac_search_facet(spec) { return false; } })); -/* + right_buttons.append(ipa_button({ - 'label': 'Login Svc Groups' + 'label': 'HBAC Service Groups', + 'click': function() { + var state = {}; + state['entity'] = 'hbacsvcgroup'; + nav_push_state(state); + return false; + } })); -*/ + container.append('<br/><br/>'); that.super_create(container); diff --git a/install/static/hbacsvc.js b/install/static/hbacsvc.js index 268ce4c5d..0d704a0af 100755 --- a/install/static/hbacsvc.js +++ b/install/static/hbacsvc.js @@ -104,6 +104,9 @@ function ipa_hbacsvc_search_facet(spec) { var that = this; + // TODO: replace with IPA.metadata[that.entity_name].label + $('<h2/>', { 'html': 'HBAC Services' }).appendTo(container); + var right_buttons = $('<span/>', { 'style': 'float: right;' }).appendTo(container); @@ -117,6 +120,17 @@ function ipa_hbacsvc_search_facet(spec) { return false; } })); + + right_buttons.append(ipa_button({ + 'label': 'HBAC Service Groups', + 'click': function() { + var state = {}; + state['entity'] = 'hbacsvcgroup'; + nav_push_state(state); + return false; + } + })); + container.append('<br/><br/>'); that.super_create(container); diff --git a/install/static/hbacsvcgroup.js b/install/static/hbacsvcgroup.js new file mode 100755 index 000000000..f57a3bae9 --- /dev/null +++ b/install/static/hbacsvcgroup.js @@ -0,0 +1,202 @@ +/* Authors: + * Endi Sukma Dewata <edewata@redhat.com> + * + * Copyright (C) 2010 Red Hat + * see file 'COPYING' for use and warranty information + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; version 2 only + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* REQUIRES: ipa.js, details.js, search.js, add.js, entity.js */ + +function ipa_hbacsvcgroup() { + + var that = ipa_entity({ + 'name': 'hbacsvcgroup' + }); + + that.super_init = that.super('init'); + + that.init = function() { + + that.create_association({ + 'name': 'hbacsvc', + 'add_method': 'add_member', + 'delete_method': 'remove_member' + }); + + var dialog = ipa_hbacsvcgroup_add_dialog({ + 'name': 'add', + 'title': 'Add New HBAC Service Group' + }); + that.add_dialog(dialog); + dialog.init(); + + var facet = ipa_hbacsvcgroup_search_facet({ + 'name': 'search', + 'label': 'Search' + }); + that.add_facet(facet); + + facet = ipa_hbacsvcgroup_details_facet({ + 'name': 'details', + 'label': 'Details' + }); + that.add_facet(facet); + + facet = ipa_association_facet({ + 'name': 'associate' + }); + that.add_facet(facet); + + that.super_init(); + }; + + return that; +} + +IPA.add_entity(ipa_hbacsvcgroup()); + +function ipa_hbacsvcgroup_add_dialog(spec) { + + spec = spec || {}; + + var that = ipa_add_dialog(spec); + + that.super_init = that.super('init'); + + that.init = function() { + + this.super_init(); + + this.add_field(ipa_text_widget({name:'cn', label:'Name'})); + this.add_field(ipa_text_widget({name:'description', label:'Description'})); + }; + + return that; +} + +function ipa_hbacsvcgroup_search_facet(spec) { + + spec = spec || {}; + + var that = ipa_search_facet(spec); + + that.super_init = that.super('init'); + that.super_create = that.super('create'); + that.super_setup = that.super('setup'); + + that.init = function() { + + that.create_column({name:'cn', label:'Group', primary_key: true}); + that.create_column({name:'description', label:'Description'}); + + that.create_column({ + name: 'quick_links', + label: 'Quick Links', + setup: ipa_hbacsvcgroup_quick_links + }); + + that.super_init(); + }; + + that.create = function(container) { + + var that = this; + + // TODO: replace with IPA.metadata[that.entity_name].label + $('<h2/>', { 'html': 'HBAC Service Groups' }).appendTo(container); + + var right_buttons = $('<span/>', { + 'style': 'float: right;' + }).appendTo(container); + + right_buttons.append(ipa_button({ + 'label': 'HBAC Rules', + 'click': function() { + var state = {}; + state['entity'] = 'hbac'; + nav_push_state(state); + return false; + } + })); + + right_buttons.append(ipa_button({ + 'label': 'HBAC Services', + 'click': function() { + var state = {}; + state['entity'] = 'hbacsvc'; + nav_push_state(state); + return false; + } + })); + + container.append('<br/><br/>'); + + that.super_create(container); + }; + + return that; +} + + +function ipa_hbacsvcgroup_quick_links(container, name, value, record) { + + var that = this; + + var pkey = IPA.metadata[that.entity_name].primary_key; + var pkey_value = record[pkey]; + + var link = $('<a/>', { + 'href': '#details', + 'title': 'Details', + 'text': 'Details', + 'click': function() { + var state = {}; + state[that.entity_name+'-facet'] = 'details'; + state[that.entity_name+'-pkey'] = pkey_value; + nav_push_state(state); + return false; + } + }); + + var span = $('span[name="'+name+'"]', container); + span.html(link); +} + +function ipa_hbacsvcgroup_details_facet(spec) { + + spec = spec || {}; + + var that = ipa_details_facet(spec); + + that.super_init = that.super('init'); + that.super_create = that.super('create'); + that.super_setup = that.super('setup'); + + that.init = function() { + + var section = that.create_section({ + 'name': 'general', + 'label': 'General' + }); + + section.create_field({ 'name': 'cn', 'label': 'Name' }); + section.create_field({ 'name': 'description', 'label': 'Description' }); + + that.super_init(); + }; + + return that; +}
\ No newline at end of file diff --git a/install/static/index.xhtml b/install/static/index.xhtml index 4ca93f712..088ebf6b4 100644 --- a/install/static/index.xhtml +++ b/install/static/index.xhtml @@ -25,6 +25,7 @@ <script type="text/javascript" src="group.js"></script> <script type="text/javascript" src="hbac.js"></script> <script type="text/javascript" src="hbacsvc.js"></script> + <script type="text/javascript" src="hbacsvcgroup.js"></script> <script type="text/javascript" src="host.js"></script> <script type="text/javascript" src="hostgroup.js"></script> <script type="text/javascript" src="netgroup.js"></script> diff --git a/install/static/service.js b/install/static/service.js index 6a79af074..f4179cb8a 100644 --- a/install/static/service.js +++ b/install/static/service.js @@ -30,6 +30,12 @@ function ipa_service() { that.init = function() { + that.create_association({ + 'name': 'host', + 'add_method': 'add_host', + 'delete_method': 'remove_host' + }); + var dialog = ipa_service_add_dialog({ 'name': 'add', 'title': 'Add New Service' @@ -54,12 +60,6 @@ function ipa_service() { }); that.add_facet(facet); - that.create_association({ - 'name': 'host', - 'add_method': 'add_host', - 'delete_method': 'remove_host' - }); - that.super_init(); }; diff --git a/install/static/test/data/hbacsvcgroup_add_member.json b/install/static/test/data/hbacsvcgroup_add_member.json new file mode 100644 index 000000000..6c16a1dde --- /dev/null +++ b/install/static/test/data/hbacsvcgroup_add_member.json @@ -0,0 +1,24 @@ +{ + "error": null, + "id": 0, + "result": { + "completed": 1, + "failed": { + "member": { + "hbacsvc": [] + } + }, + "result": { + "cn": [ + "test" + ], + "description": [ + "Test Service Group" + ], + "dn": "cn=test,cn=hbacservicegroups,cn=accounts,dc=dev,dc=example,dc=com", + "member_hbacsvc": [ + "test" + ] + } + } +} diff --git a/install/static/test/data/hbacsvcgroup_remove_member.json b/install/static/test/data/hbacsvcgroup_remove_member.json new file mode 100644 index 000000000..fc298e42f --- /dev/null +++ b/install/static/test/data/hbacsvcgroup_remove_member.json @@ -0,0 +1,21 @@ +{ + "error": null, + "id": 0, + "result": { + "completed": 1, + "failed": { + "member": { + "hbacsvc": [] + } + }, + "result": { + "cn": [ + "test" + ], + "description": [ + "Test Service Group" + ], + "dn": "cn=test,cn=hbacservicegroups,cn=accounts,dc=dev,dc=example,dc=com" + } + } +} diff --git a/install/static/test/data/json_metadata.json b/install/static/test/data/json_metadata.json index 477cb158d..1942dea91 100644 --- a/install/static/test/data/json_metadata.json +++ b/install/static/test/data/json_metadata.json @@ -1748,19 +1748,14 @@ "hbacsvcgroup": { "attribute_members": { "member": [ - "hbacsvc", - "hbacsvcgroup" - ], - "memberof": [ - "hbacsvcgroup" + "hbacsvc" ] }, "container_dn": "cn=hbacservicegroups,cn=accounts", "default_attributes": [ "cn", "description", - "member", - "memberof" + "member" ], "hidden_attributes": [ "objectclass", @@ -1782,8 +1777,8 @@ "ipahbacservicegroup" ], "object_class_config": null, - "object_name": "servicegroup", - "object_name_plural": "servicegroups", + "object_name": "hbacsvcgroup", + "object_name_plural": "hbacsvcgroups", "parent_object": "", "primary_key": "cn", "takes_params": [ @@ -1836,93 +1831,6 @@ "query": false, "required": true, "type": "unicode" - }, - { - "attribute": false, - "autofill": false, - "class": "Str", - "cli_name": "member_service", - "cli_short_name": null, - "default": null, - "doc": "Member services", - "exclude": null, - "flags": [ - "no_update", - "no_create", - "no_search" - ], - "hint": null, - "include": null, - "label": "Member services", - "length": null, - "maxlength": null, - "minlength": null, - "multivalue": false, - "name": "member_service", - "pattern": null, - "pattern_errmsg": null, - "primary_key": false, - "query": false, - "required": false, - "type": "unicode" - }, - { - "attribute": false, - "autofill": false, - "class": "Str", - "cli_name": "member_servicegroup", - "cli_short_name": null, - "default": null, - "doc": "Member service groups", - "exclude": null, - "flags": [ - "no_update", - "no_create", - "no_search" - ], - "hint": null, - "include": null, - "label": "Member service groups", - "length": null, - "maxlength": null, - "minlength": null, - "multivalue": false, - "name": "member_servicegroup", - "pattern": null, - "pattern_errmsg": null, - "primary_key": false, - "query": false, - "required": false, - "type": "unicode" - }, - { - "attribute": false, - "autofill": false, - "class": "Str", - "cli_name": "memberof_servicegroup", - "cli_short_name": null, - "default": null, - "doc": "Member of service groups", - "exclude": null, - "flags": [ - "no_update", - "no_create", - "no_search" - ], - "hint": null, - "include": null, - "label": "Member of service groups", - "length": null, - "maxlength": null, - "minlength": null, - "multivalue": false, - "name": "memberof_servicegroup", - "pattern": null, - "pattern_errmsg": null, - "primary_key": false, - "query": false, - "required": false, - "type": "unicode" } ], "uuid_attribute": "ipauniqueid" |