On 3.7.2014 08:13, Fraser Tweedale wrote:
On Wed, Jul 02, 2014 at 04:14:13PM +0200, Petr Vobornik wrote:
https://fedorahosted.org/freeipa/ticket/4418
according to latest
proposal:http://www.redhat.com/archives/freeipa-devel/2014-June/msg00839.html
--
Petr Vobornik
Haven't run the webui tests but lines up with the proposal and looks
very nice!
ACK if webui tests pass.
I've run the complete test suite and discovered that I forgot to modify
2 other tests. Also there was an existing fail in test_navigation in
DNS-less installation.
All fixed, updated patch attached.
From 97cc94163e8ae57058b07741c7d70e44697c113f Mon Sep 17 00:00:00 2001
From: Petr Vobornik <pvobo...@redhat.com>
Date: Wed, 2 Jul 2014 15:09:22 +0200
Subject: [PATCH] webui: new navigation structure
https://fedorahosted.org/freeipa/ticket/4418
---
install/ui/src/freeipa/certificate.js | 2 +-
install/ui/src/freeipa/dns.js | 2 +-
install/ui/src/freeipa/navigation/menu_spec.js | 195 +++++++++++++++----------
install/ui/test/data/ipa_init.json | 2 +
ipalib/plugins/internal.py | 2 +
ipatests/test_webui/test_navigation.py | 62 +++++---
ipatests/test_webui/ui_driver.py | 2 +-
7 files changed, 160 insertions(+), 107 deletions(-)
diff --git a/install/ui/src/freeipa/certificate.js
b/install/ui/src/freeipa/certificate.js
index
01dfee2b64c14f487b66b91d449f63b6415dea69..6a11d959398517db6f720a36ff2a323e1d0c74a7
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
c7143ca91fef9bbc372654080fe899be1ae8367f..a566ccf61adcf4f688ac803bf5e3658b4f3a0253
100644
--- a/install/ui/src/freeipa/dns.js
+++ b/install/ui/src/freeipa/dns.js
@@ -2543,7 +2543,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
01738cbe60b10bc0f1671093fc1616980780bac1..9182d11bf56c73e1fce724d438fe2211105b75ad
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
6c387690aac0f85dce7f32f9cec84d55d200f40c..284c0a643391a23f8702ed99078acd1f0250cdf6
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
d95794cc6806dc44fd533f277d02b330c938f99f..4d9448ab065d5b261d74ef4f126fed07eced4d5e
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_navigation.py
b/ipatests/test_webui/test_navigation.py
index
caf291a908ec2fc9c4e1a6ee8b2f73f48924f23e..a9adb2327d5e195e3505b9657c5a6e62a2fce44b
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',
@@ -99,6 +101,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 +109,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 +124,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 +166,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
047009a295838d0053c9c0e378e97b480db6a0e7..a1371806c2f11a42534cfcac330683e2a35853d8
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)
--
1.9.0
--
Petr Vobornik
From 8ee67b897f68a4120e1f25a628eff4b03c185166 Mon Sep 17 00:00:00 2001
From: Petr Vobornik <pvobo...@redhat.com>
Date: Wed, 2 Jul 2014 15:09:22 +0200
Subject: [PATCH] webui: new navigation structure
https://fedorahosted.org/freeipa/ticket/4418
---
install/ui/src/freeipa/certificate.js | 2 +-
install/ui/src/freeipa/dns.js | 2 +-
install/ui/src/freeipa/navigation/menu_spec.js | 195 +++++++++++++++----------
install/ui/test/data/ipa_init.json | 2 +
ipalib/plugins/internal.py | 2 +
ipatests/test_webui/test_automember.py | 2 +-
ipatests/test_webui/test_dns.py | 2 +-
ipatests/test_webui/test_navigation.py | 63 +++++---
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 01dfee2b64c14f487b66b91d449f63b6415dea69..6a11d959398517db6f720a36ff2a323e1d0c74a7 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 11285a9f095bba35e16c1340fc272e824d699a15..7806617407188456efecc606138bcff1f6b0a92f 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 01738cbe60b10bc0f1671093fc1616980780bac1..9182d11bf56c73e1fce724d438fe2211105b75ad 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 6c387690aac0f85dce7f32f9cec84d55d200f40c..284c0a643391a23f8702ed99078acd1f0250cdf6 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 d95794cc6806dc44fd533f277d02b330c938f99f..4d9448ab065d5b261d74ef4f126fed07eced4d5e 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 3166fbd29d447833a4b873e37f960fa2a84899af..34710cb6e84ce76ea1930f4fbd17fd1331564b69 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 ffbd0ab2b49458b309d1ffd4114bc611550cb387..c220200dd78d6848d7cd0447c203e7d5dc0376a5 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 caf291a908ec2fc9c4e1a6ee8b2f73f48924f23e..530a757ade0ce6170cf2eca122f6b703cdf71b3d 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 047009a295838d0053c9c0e378e97b480db6a0e7..a1371806c2f11a42534cfcac330683e2a35853d8 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)
--
1.9.0
_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel