webui: use domain name instead of domain SID in idrange adder dialog

It's more user friendly. Almost nobody remembers SIDs.

https://fedorahosted.org/freeipa/ticket/4661

Reviewed-By: Tomas Babej <tbabej@redhat.com>
This commit is contained in:
Petr Vobornik 2014-11-04 13:38:12 +01:00 committed by Tomas Babej
parent 230df95ed9
commit f70d859b39
3 changed files with 19 additions and 21 deletions

View File

@ -138,9 +138,7 @@ return {
title: '@mo-param:idrange:ipasecondarybaserid:label' title: '@mo-param:idrange:ipasecondarybaserid:label'
}, },
{ {
name: 'ipanttrusteddomainsid', name: 'ipanttrusteddomainname',
label: '@i18n:objects.idrange.ipanttrusteddomainsid',
title: '@mo-param:idrange:ipanttrusteddomainsid:label',
enabled: false enabled: false
} }
], ],
@ -153,14 +151,14 @@ return {
IPA.idrange_adder_policy = function(spec) { IPA.idrange_adder_policy = function(spec) {
/* /*
The logic for enabling/requiring ipabaserid, ipasecondarybaserid and The logic for enabling/requiring ipabaserid, ipasecondarybaserid and
ipanttrusteddomainsid is as follows: ipanttrusteddomainname is as follows:
1) for AD ranges (range type is ipa-ad-trust or ipa-ad-trust-posix): 1) for AD ranges (range type is ipa-ad-trust or ipa-ad-trust-posix):
* ipanttrusteddomainsid is required * ipanttrusteddomainname is required
* ipabaserid is required for ipa-ad-trust but disabled for * ipabaserid is required for ipa-ad-trust but disabled for
ipa-ad-trust-posix ipa-ad-trust-posix
* ipasecondarybaserid is disabled * ipasecondarybaserid is disabled
2) for local ranges 2) for local ranges
* ipanttrusteddomainsid is disabled * ipanttrusteddomainname is disabled
A) if server has AD trust support: A) if server has AD trust support:
* both ipabaserid and ipasecondarybaserid are required * both ipabaserid and ipasecondarybaserid are required
B) if server does not have AD trust support: B) if server does not have AD trust support:
@ -207,7 +205,7 @@ IPA.idrange_adder_policy = function(spec) {
var type_f = that.container.fields.get_field('iparangetype'); var type_f = that.container.fields.get_field('iparangetype');
var baserid_f = that.container.fields.get_field('ipabaserid'); var baserid_f = that.container.fields.get_field('ipabaserid');
var secondarybaserid_f = that.container.fields.get_field('ipasecondarybaserid'); var secondarybaserid_f = that.container.fields.get_field('ipasecondarybaserid');
var trusteddomainsid_f = that.container.fields.get_field('ipanttrusteddomainsid'); var trusteddomainname_f = that.container.fields.get_field('ipanttrusteddomainname');
var type_v = type_f.get_value()[0]; var type_v = type_f.get_value()[0];
var baserid_v = baserid_f.get_value()[0] || ''; var baserid_v = baserid_f.get_value()[0] || '';
@ -221,10 +219,10 @@ IPA.idrange_adder_policy = function(spec) {
} else { } else {
disable(baserid_f); disable(baserid_f);
} }
require(trusteddomainsid_f); require(trusteddomainname_f);
disable(secondarybaserid_f); disable(secondarybaserid_f);
} else { } else {
disable(trusteddomainsid_f); disable(trusteddomainname_f);
if (IPA.trust_enabled) { if (IPA.trust_enabled) {
require(baserid_f); require(baserid_f);

View File

@ -59,13 +59,13 @@ class range_tasks(UI_driver):
self.max_id = max_id self.max_id = max_id
self.max_rid = max_rid self.max_rid = max_rid
def get_sid(self): def get_domain(self):
result = self.execute_api_from_ui('trust_find', [], {}) result = self.execute_api_from_ui('trust_find', [], {})
trusts = result['result']['result'] trusts = result['result']['result']
sid = None domain = None
if trusts: if trusts:
sid = trusts[0]['ipanttrusteddomainsid'] domain = trusts[0]['cn']
return sid return domain
def get_data(self, pkey, size=50, add_data=None): def get_data(self, pkey, size=50, add_data=None):
@ -81,7 +81,7 @@ class range_tasks(UI_driver):
} }
return data return data
def get_add_data(self, pkey, range_type='ipa-local', size=50, shift=100, sid=None): def get_add_data(self, pkey, range_type='ipa-local', size=50, shift=100, domain=None):
base_id = self.max_id + shift base_id = self.max_id + shift
self.max_id = base_id + size self.max_id = base_id + size
@ -98,19 +98,19 @@ class range_tasks(UI_driver):
('callback', self.check_range_type_mod, range_type) ('callback', self.check_range_type_mod, range_type)
] ]
if not sid: if not domain:
base_rid = self.max_rid + shift base_rid = self.max_rid + shift
self.max_rid = base_rid + size self.max_rid = base_rid + size
add.append(('textbox', 'ipasecondarybaserid', str(base_rid))) add.append(('textbox', 'ipasecondarybaserid', str(base_rid)))
if sid: if domain:
add.append(('textbox', 'ipanttrusteddomainsid', sid)) add.append(('textbox', 'ipanttrusteddomainname', domain))
return add return add
def check_range_type_mod(self, range_type): def check_range_type_mod(self, range_type):
if range_type == 'ipa-local': if range_type == 'ipa-local':
self.assert_disabled("[name=ipanttrusteddomainsid]") self.assert_disabled("[name=ipanttrusteddomainname]")
self.assert_disabled("[name=ipasecondarybaserid]", negative=True) self.assert_disabled("[name=ipasecondarybaserid]", negative=True)
elif range_type == 'ipa-ad-trust': elif range_type == 'ipa-ad-trust':
self.assert_disabled("[name=ipanttrusteddomainsid]", negative=True) self.assert_disabled("[name=ipanttrusteddomainname]", negative=True)
self.assert_disabled("[name=ipasecondarybaserid]") self.assert_disabled("[name=ipasecondarybaserid]")

View File

@ -74,11 +74,11 @@ class test_range(range_tasks):
self.add_record(trust_mod.ENTITY, trust_data) self.add_record(trust_mod.ENTITY, trust_data)
sid = self.get_sid() domain = self.get_domain()
self.navigate_to_entity(ENTITY) self.navigate_to_entity(ENTITY)
add = self.get_add_data(pkey_ad, range_type='ipa-ad-trust', sid=sid) add = self.get_add_data(pkey_ad, range_type='ipa-ad-trust', domain=domain)
data = self.get_data(pkey_ad, add_data=add) data = self.get_data(pkey_ad, add_data=add)
self.add_record(ENTITY, data, navigate=False) self.add_record(ENTITY, data, navigate=False)
self.assert_record_value('Active Directory domain range', pkey_ad, column) self.assert_record_value('Active Directory domain range', pkey_ad, column)