summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2014-07-02 15:09:22 +0200
committerPetr Vobornik <pvoborni@redhat.com>2014-07-04 16:31:38 +0200
commit0b0e77cf99b38cfd958a82caad715511c91f9ee3 (patch)
tree5676bbcae0fb50a2cb3328b63b42f85763275570
parent2637116eab51be16c33745d51f284aaee0c57ae1 (diff)
downloadfreeipa-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-xinstall/ui/src/freeipa/certificate.js2
-rw-r--r--install/ui/src/freeipa/dns.js2
-rw-r--r--install/ui/src/freeipa/navigation/menu_spec.js195
-rw-r--r--install/ui/test/data/ipa_init.json2
-rw-r--r--ipalib/plugins/internal.py2
-rw-r--r--ipatests/test_webui/test_automember.py2
-rw-r--r--ipatests/test_webui/test_dns.py2
-rw-r--r--ipatests/test_webui/test_navigation.py63
-rw-r--r--ipatests/test_webui/ui_driver.py2
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)