diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2014-07-02 15:09:22 +0200 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2014-07-04 16:31:38 +0200 |
commit | 0b0e77cf99b38cfd958a82caad715511c91f9ee3 (patch) | |
tree | 5676bbcae0fb50a2cb3328b63b42f85763275570 | |
parent | 2637116eab51be16c33745d51f284aaee0c57ae1 (diff) | |
download | freeipa-0b0e77cf99b38cfd958a82caad715511c91f9ee3.tar.gz freeipa-0b0e77cf99b38cfd958a82caad715511c91f9ee3.tar.xz freeipa-0b0e77cf99b38cfd958a82caad715511c91f9ee3.zip |
webui: new navigation structure
https://fedorahosted.org/freeipa/ticket/4418
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Martin Kosek <mkosek@redhat.com>
Reviewed-By: Petr Spacek <pspacek@redhat.com>
-rwxr-xr-x | install/ui/src/freeipa/certificate.js | 2 | ||||
-rw-r--r-- | install/ui/src/freeipa/dns.js | 2 | ||||
-rw-r--r-- | install/ui/src/freeipa/navigation/menu_spec.js | 195 | ||||
-rw-r--r-- | install/ui/test/data/ipa_init.json | 2 | ||||
-rw-r--r-- | ipalib/plugins/internal.py | 2 | ||||
-rw-r--r-- | ipatests/test_webui/test_automember.py | 2 | ||||
-rw-r--r-- | ipatests/test_webui/test_dns.py | 2 | ||||
-rw-r--r-- | ipatests/test_webui/test_navigation.py | 63 | ||||
-rw-r--r-- | ipatests/test_webui/ui_driver.py | 2 |
9 files changed, 163 insertions, 109 deletions
diff --git a/install/ui/src/freeipa/certificate.js b/install/ui/src/freeipa/certificate.js index 01dfee2b6..6a11d9593 100755 --- a/install/ui/src/freeipa/certificate.js +++ b/install/ui/src/freeipa/certificate.js @@ -1293,7 +1293,7 @@ IPA.cert.cert_update_policy = function(spec) { exp.remove_menu_item = function() { if (!IPA.cert.is_enabled()) { - menu.remove_item('identity/cert'); + menu.remove_item('authentication/cert'); } }; diff --git a/install/ui/src/freeipa/dns.js b/install/ui/src/freeipa/dns.js index 11285a9f0..780661740 100644 --- a/install/ui/src/freeipa/dns.js +++ b/install/ui/src/freeipa/dns.js @@ -2530,7 +2530,7 @@ IPA.network_validator = function(spec) { exp.remove_menu_item = function() { if (!IPA.dns_enabled) { - menu.remove_item('identity/dns'); + menu.remove_item('network_services/dns'); } }; diff --git a/install/ui/src/freeipa/navigation/menu_spec.js b/install/ui/src/freeipa/navigation/menu_spec.js index 01738cbe6..9182d11bf 100644 --- a/install/ui/src/freeipa/navigation/menu_spec.js +++ b/install/ui/src/freeipa/navigation/menu_spec.js @@ -43,101 +43,134 @@ var nav = {}; { entity: 'netgroup' }, { entity: 'service' }, { + name: 'automember', + label: '@i18n:tabs.automember', + children: [ + { + name: 'amgroup', + entity: 'automember', + facet: 'searchgroup', + label: '@i18n:objects.automember.usergrouprules', + children: [ + { + entity: 'automember', + facet: 'usergrouprule', + hidden: true + } + ] + }, + { + name: 'amhostgroup', + entity: 'automember', + facet: 'searchhostgroup', + label: '@i18n:objects.automember.hostgrouprules', + children: [ + { + entity: 'automember', + facet: 'hostgrouprule', + hidden: true + } + ] + } + ] + } + ] + }, + { + name: 'policy', + label: '@i18n:tabs.policy', + children: [ + { + name: 'hbac', + label: '@i18n:tabs.hbac', + children: [ + { entity: 'hbacrule' }, + { entity: 'hbacsvc' }, + { entity: 'hbacsvcgroup' }, + { entity: 'hbactest' } + ] + }, + { + name: 'sudo', + label: '@i18n:tabs.sudo', + children: [ + { entity: 'sudorule' }, + { entity: 'sudocmd' }, + { entity: 'sudocmdgroup' } + ] + }, + { entity: 'selinuxusermap' }, + { entity: 'pwpolicy' }, + { entity: 'krbtpolicy' } + ] + }, + { + name: 'authentication', + label: '@i18n:tabs.authentication', + children: [ + { entity: 'cert', label: '@i18n:tabs.cert' }, + { entity: 'otptoken' }, + { entity: 'radiusproxy' } + ] + }, + { + name: 'network_services', + label: '@i18n:tabs.network_services', + children: [ + { + name:'automount', + label: '@i18n:tabs.automount', + entity: 'automountlocation', + children: [ + { entity: 'automountlocation', hidden: true }, + { entity: 'automountmap', hidden: true }, + { entity: 'automountkey', hidden: true } + ] + }, + { name:'dns', label: '@i18n:tabs.dns', children: [ { entity: 'dnszone', children: [ - { entity: 'dnsrecord', hidden:true } + { entity: 'dnsrecord', hidden: true } ] }, { entity: 'dnsforwardzone' }, { entity: 'dnsconfig' } ] + } + ] + }, + { + name: 'ipaserver', + label: '@i18n:tabs.ipaserver', + children: [ + { + name: 'rbac', + label: '@i18n:tabs.role', + children: [ + { entity: 'role' }, + { entity: 'privilege' }, + { entity: 'permission' }, + { entity: 'selfservice' }, + { entity: 'delegation' } + ] }, - { entity: 'cert', label: '@i18n:tabs.cert' }, + { entity: 'idrange' }, { entity: 'realmdomains' }, - { entity: 'otptoken' } + { + name: 'trusts', + label: '@i18n:tabs.trust', + children: [ + { entity: 'trust' }, + { entity: 'trustconfig' } + ] + }, + { entity: 'config' } ] - }, - {name: 'policy', label: '@i18n:tabs.policy', children: [ - {name: 'hbac', label: '@i18n:tabs.hbac', children: [ - {entity: 'hbacrule'}, - {entity: 'hbacsvc'}, - {entity: 'hbacsvcgroup'}, - {entity: 'hbactest'} - ]}, - {name: 'sudo', label: '@i18n:tabs.sudo', children: [ - {entity: 'sudorule'}, - {entity: 'sudocmd'}, - {entity: 'sudocmdgroup'} - ]}, - { - name:'automount', - label: '@i18n:tabs.automount', - entity: 'automountlocation', - children:[ - {entity: 'automountlocation', hidden:true}, - {entity: 'automountmap', hidden: true}, - {entity: 'automountkey', hidden: true}] - }, - {entity: 'pwpolicy'}, - {entity: 'krbtpolicy'}, - {entity: 'selinuxusermap'}, - { - name: 'automember', - label: '@i18n:tabs.automember', - children: [ - { - name: 'amgroup', - entity: 'automember', - facet: 'searchgroup', - label: '@i18n:objects.automember.usergrouprules', - children: [ - { - entity: 'automember', - facet: 'usergrouprule', - hidden: true - } - ] - }, - { - name: 'amhostgroup', - entity: 'automember', - facet: 'searchhostgroup', - label: '@i18n:objects.automember.hostgrouprules', - children: [ - { - entity: 'automember', - facet: 'hostgrouprule', - hidden: true - } - ] - } - ] - } - ]}, - {name: 'ipaserver', label: '@i18n:tabs.ipaserver', children: [ - {name: 'rolebased', label: '@i18n:tabs.role', children: [ - {entity: 'role'}, - {entity: 'privilege'}, - {entity: 'permission'} - ]}, - {entity: 'selfservice'}, - {entity: 'delegation'}, - {entity: 'idrange'}, - { - name: 'trusts', - label: '@i18n:tabs.trust', - children:[ - {entity: 'trust'}, - {entity: 'trustconfig'} - ] - }, - {entity: 'radiusproxy'}, - {entity: 'config'} - ]} + } ] }; diff --git a/install/ui/test/data/ipa_init.json b/install/ui/test/data/ipa_init.json index 6c387690a..284c0a643 100644 --- a/install/ui/test/data/ipa_init.json +++ b/install/ui/test/data/ipa_init.json @@ -553,6 +553,7 @@ }, "tabs": { "audit": "Audit", + "authentication": "Authentication", "automember": "Automember", "automount": "Automount", "cert": "Certificates", @@ -560,6 +561,7 @@ "hbac": "Host Based Access Control", "identity": "Identity", "ipaserver": "IPA Server", + "network_services": "Network Services", "policy": "Policy", "role": "Role Based Access Control", "sudo": "Sudo", diff --git a/ipalib/plugins/internal.py b/ipalib/plugins/internal.py index d95794cc6..4d9448ab0 100644 --- a/ipalib/plugins/internal.py +++ b/ipalib/plugins/internal.py @@ -698,6 +698,7 @@ class i18n_messages(Command): }, "tabs": { "audit": _("Audit"), + "authentication": _("Authentication"), "automember": _("Automember"), "automount": _("Automount"), "cert": _("Certificates"), @@ -705,6 +706,7 @@ class i18n_messages(Command): "hbac": _("Host Based Access Control"), "identity": _("Identity"), "ipaserver": _("IPA Server"), + "network_services": _("Network Services"), "policy": _("Policy"), "role": _("Role Based Access Control"), "sudo": _("Sudo"), diff --git a/ipatests/test_webui/test_automember.py b/ipatests/test_webui/test_automember.py index 3166fbd29..34710cb6e 100644 --- a/ipatests/test_webui/test_automember.py +++ b/ipatests/test_webui/test_automember.py @@ -72,7 +72,7 @@ class test_automember(UI_driver): delete=False) # host group rule - self.navigate_by_menu('policy/automember/amhostgroup') + self.navigate_by_menu('identity/automember/amhostgroup') self.basic_crud(ENTITY, HOST_GROUP_DATA, search_facet='searchhostgroup', diff --git a/ipatests/test_webui/test_dns.py b/ipatests/test_webui/test_dns.py index ffbd0ab2b..c220200dd 100644 --- a/ipatests/test_webui/test_dns.py +++ b/ipatests/test_webui/test_dns.py @@ -167,5 +167,5 @@ class test_dns(UI_driver): Basic CRUD: dnsconfig """ self.init_app() - self.navigate_by_menu('identity/dns/dnsconfig') + self.navigate_by_menu('network_services/dns/dnsconfig') self.mod_record(CONFIG_ENTITY, CONFIG_MOD_DATA) diff --git a/ipatests/test_webui/test_navigation.py b/ipatests/test_webui/test_navigation.py index caf291a90..530a757ad 100644 --- a/ipatests/test_webui/test_navigation.py +++ b/ipatests/test_webui/test_navigation.py @@ -37,6 +37,8 @@ ENTITIES = [ # TODO: dnsrecord 'dnsconfig', 'cert', + 'otptoken', + 'radiusproxy', 'realmdomains', 'hbacrule', 'hbacsvc', @@ -77,6 +79,7 @@ class test_navigation(UI_driver): if not self.has_dns(): unsupported.extend([ 'dnszone', + 'dnsforwardzone', 'dnsconfig', ]) if not self.has_ca(): @@ -99,6 +102,7 @@ class test_navigation(UI_driver): self.init_app() + # Identity # don't start by users (default) self.navigate_by_menu('identity/group', False) self.navigate_by_menu('identity/user', False) @@ -106,18 +110,11 @@ class test_navigation(UI_driver): self.navigate_by_menu('identity/hostgroup', False) self.navigate_by_menu('identity/netgroup', False) self.navigate_by_menu('identity/service', False) - if self.has_dns(): - self.navigate_by_menu('identity/dns/dnsconfig', True) - self.navigate_by_menu('identity/dns', False) - self.navigate_by_menu('identity/dns/dnszone', False) - self.navigate_by_menu('identity/dns/dnsforwardzone') - else: - self.assert_menu_item('identity/dns', False) - if self.has_ca(): - self.navigate_by_menu('identity/cert', False) - else: - self.assert_menu_item('identity/cert', False) - self.navigate_by_menu('identity/realmdomains', False) + self.navigate_by_menu('identity/automember', False) + self.navigate_by_menu('identity/automember/amhostgroup') + self.navigate_by_menu('identity/automember/amgroup') + + # Policy self.navigate_by_menu('policy') self.navigate_by_menu('policy/hbac', False) self.navigate_by_menu('policy/hbac/hbacsvc', False) @@ -128,21 +125,40 @@ class test_navigation(UI_driver): self.navigate_by_menu('policy/sudo/sudorule', False) self.navigate_by_menu('policy/sudo/sudocmd') self.navigate_by_menu('policy/sudo/sudocmdgroup') - self.navigate_by_menu('policy/automount', False) + self.navigate_by_menu('policy/selinuxusermap', False) self.navigate_by_menu('policy/pwpolicy', False) self.navigate_by_menu('policy/krbtpolicy', False) - self.navigate_by_menu('policy/selinuxusermap', False) - self.navigate_by_menu('policy/automember', False) - self.navigate_by_menu('policy/automember/amhostgroup') - self.navigate_by_menu('policy/automember/amgroup') + + # Authentication + self.navigate_by_menu('authentication') + self.navigate_by_menu('authentication/radiusproxy', False) + self.navigate_by_menu('authentication/otptoken', False) + if self.has_ca(): + self.navigate_by_menu('authentication/cert', False) + else: + self.assert_menu_item('authentication/cert', False) + + # Network Services + self.navigate_by_menu('network_services') + self.navigate_by_menu('network_services/automount') + if self.has_dns(): + self.navigate_by_menu('network_services/dns/dnsconfig', True) + self.navigate_by_menu('network_services/dns', False) + self.navigate_by_menu('network_services/dns/dnszone', False) + self.navigate_by_menu('network_services/dns/dnsforwardzone') + else: + self.assert_menu_item('network_services/dns', False) + + # IPA Server self.navigate_by_menu('ipaserver') - self.navigate_by_menu('ipaserver/rolebased', False) - self.navigate_by_menu('ipaserver/rolebased/privilege', False) - self.navigate_by_menu('ipaserver/rolebased/role') - self.navigate_by_menu('ipaserver/rolebased/permission') - self.navigate_by_menu('ipaserver/selfservice', False) - self.navigate_by_menu('ipaserver/delegation', False) + self.navigate_by_menu('ipaserver/rbac', False) + self.navigate_by_menu('ipaserver/rbac/privilege', False) + self.navigate_by_menu('ipaserver/rbac/role') + self.navigate_by_menu('ipaserver/rbac/permission') + self.navigate_by_menu('ipaserver/rbac/selfservice') + self.navigate_by_menu('ipaserver/rbac/delegation') self.navigate_by_menu('ipaserver/idrange', False) + self.navigate_by_menu('ipaserver/realmdomains', False) if self.has_trusts(): self.navigate_by_menu('ipaserver/trusts', False) self.navigate_by_menu('ipaserver/trusts/trust', False) @@ -151,6 +167,7 @@ class test_navigation(UI_driver): self.assert_menu_item('ipaserver/trusts', False) self.navigate_by_menu('ipaserver/config', False) + def assert_e_url(self, url, e): """ Assert correct url for entity diff --git a/ipatests/test_webui/ui_driver.py b/ipatests/test_webui/ui_driver.py index 047009a29..a1371806c 100644 --- a/ipatests/test_webui/ui_driver.py +++ b/ipatests/test_webui/ui_driver.py @@ -427,7 +427,7 @@ class UI_driver(object): s = ".navbar a[href='#%s']" % item link = self.find(s, By.CSS_SELECTOR, strict=True) - assert link.is_displayed(), 'Navigation link is not displayed' + assert link.is_displayed(), 'Navigation link is not displayed: %s' % item link.click() self.wait_for_request() self.wait_for_request(0.4) |