summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2009-12-09 08:07:33 -0500
committerStephen Gallagher <sgallagh@redhat.com>2009-12-09 10:05:18 -0500
commit46e73b48bea5529e731998a823fe42aa13657f45 (patch)
treed22322b679317bcb48b96719b965263d155be649 /server
parent2de0208d7499603c78d232361030f9a73fa6adda (diff)
downloadsssd-46e73b48bea5529e731998a823fe42aa13657f45.tar.gz
sssd-46e73b48bea5529e731998a823fe42aa13657f45.tar.bz2
sssd-46e73b48bea5529e731998a823fe42aa13657f45.zip
Ensure that list_active_domains returns the real value
Previously, we were accidentally filtering out domains that were not configured, so deleted domains might still appear in the active domain list. This patch should ensure that this never happens.
Diffstat (limited to 'server')
-rw-r--r--server/config/SSSDConfig.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/server/config/SSSDConfig.py b/server/config/SSSDConfig.py
index 10d2f02a..045aac31 100644
--- a/server/config/SSSDConfig.py
+++ b/server/config/SSSDConfig.py
@@ -1154,12 +1154,22 @@ class SSSDConfig(SSSDChangeConf):
if (self.has_option('sssd', 'domains')):
active_domains = striplist(self.get('sssd', 'domains').split(','))
+ domain_dict = dict.fromkeys(active_domains)
+ if domain_dict.has_key(''):
+ del domain_dict['']
+
+ # Remove any entries in this list that don't
+ # correspond to an active domain, for integrity
+ configured_domains = self.list_domains()
+ for dom in domain_dict.keys():
+ if dom not in configured_domains:
+ del domain_dict[dom]
+
+ active_domains = domain_dict.keys()
else:
active_domains = []
- domains = [x for x in self.list_domains()
- if x in active_domains]
- return domains
+ return active_domains
def list_inactive_domains(self):
"""
@@ -1430,8 +1440,10 @@ class SSSDConfig(SSSDChangeConf):
if domain.oldname and domain.oldname != name:
# We are renaming this domain
# Remove the old section
+
+ self.deactivate_domain(domain.oldname)
oldindex = self.delete_option('section', 'domain/%s' %
- domain.oldname)
+ domain.oldname)
# Reset the oldname, in case we're not done with
# this domain object.