URL: https://github.com/SSSD/sssd/pull/851
Author: alexal
 Title: #851: Update __init__.py.in
Action: synchronized

To pull the PR as Git branch:
git remote add ghsssd https://github.com/SSSD/sssd
git fetch ghsssd pull/851/head:pr851
git checkout pr851
From 86f62a2e362259bd2e8a38d012a243bc91e4e6c5 Mon Sep 17 00:00:00 2001
From: Alex Rodin <alex.ro...@sas.com>
Date: Tue, 20 Aug 2019 12:57:10 -0400
Subject: [PATCH] Update __init__.py.in

COMPONENT: SSSDConfig

The default value for sudo_provider, auth_provider, selinux_provider, subdomains_provider, hostid_provider and autofs_provider will be the value of id_provider, if those options weren't set in the configuration file

Resolves:
https://pagure.io/SSSD/sssd/issue/3995
---
 src/config/SSSDConfig/__init__.py.in | 69 ++++++++++++++++++++++++++++
 src/config/SSSDConfigTest.py         |  6 +++
 2 files changed, 75 insertions(+)

diff --git a/src/config/SSSDConfig/__init__.py.in b/src/config/SSSDConfig/__init__.py.in
index 9642fe6baf..7f8c066c70 100644
--- a/src/config/SSSDConfig/__init__.py.in
+++ b/src/config/SSSDConfig/__init__.py.in
@@ -1915,6 +1915,75 @@ class SSSDConfig(SSSDChangeConf):
         providers = [ (x['name'],x['value']) for x in self.strip_comments_empty(self.options('domain/%s' % name))
                      if x['name'].rfind('_provider') > 0]
 
+        # The default value for sudo_provider, auth_provider, subdomains_provider, selinux_provider
+        # hostid_provider and autofs_provider will be the value of id_provider
+        # If those options weren't set in the configuration file
+
+        id_provider = False
+        id_provider_value = ""
+        sudo_provider = False
+        auth_provider = False
+        subdomains_provider = False
+        selinux_provider = False
+        hostid_provider = False
+        autofs_provider = False
+
+        for (option, value) in providers:
+            if option == "id_provider":
+                id_provider = True
+                id_provider_value = value
+            elif option == "sudo_provider":
+                sudo_provider = True
+            elif option == "auth_provider":
+                auth_provider = True
+            elif option == "subdomains_provider":
+                subdomains_provider = True
+            elif option == "selinux_provider":
+                selinux_provider = True
+            elif option == "hostid_provider":
+                hostid_provider = True
+            elif option == "autofs_provider":
+                autofs_provider = True
+
+        if id_provider:
+            if not sudo_provider:
+                try:
+                    domain.add_provider(id_provider_value, "sudo")
+                except NoSuchProviderSubtypeError:
+                    pass
+
+            if not auth_provider:
+                try:
+                    domain.add_provider(id_provider_value, "auth")
+                except NoSuchProviderSubtypeError:
+                    pass
+
+            if not subdomains_provider:
+                try:
+                    domain.add_provider(id_provider_value, "subdomains")
+                except NoSuchProviderSubtypeError:
+                    pass
+
+            if not selinux_provider:
+                try:
+                    domain.add_provider(id_provider_value, "selinux")
+                except NoSuchProviderSubtypeError:
+                    pass
+
+            if not hostid_provider:
+                try:
+                    domain.add_provider(id_provider_value, "hostid")
+                except NoSuchProviderSubtypeError:
+                    pass
+
+            if not autofs_provider:
+                try:
+                    domain.add_provider(id_provider_value, "autofs")
+                except NoSuchProviderSubtypeError:
+                  pass
+
+        providers = providers + domain.providers
+
         for (option, value) in providers:
             try:
                 domain.set_option(option, value)
diff --git a/src/config/SSSDConfigTest.py b/src/config/SSSDConfigTest.py
index 727df71abf..df85c5717d 100755
--- a/src/config/SSSDConfigTest.py
+++ b/src/config/SSSDConfigTest.py
@@ -1401,6 +1401,12 @@ def testImportConfigNoVersion(self):
             'id_provider',
             'auth_provider',
             'access_provider',
+            'autofs_provider',
+            'auth_provider',
+            'sudo_provider',
+            'subdomains_provider',
+            'selinux_provider',
+            'hostid_provider',
             'session_provider',
             'default_shell',
             'fallback_homedir',
_______________________________________________
sssd-devel mailing list -- sssd-devel@lists.fedorahosted.org
To unsubscribe send an email to sssd-devel-le...@lists.fedorahosted.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedorahosted.org/archives/list/sssd-devel@lists.fedorahosted.org

Reply via email to