diff options
author | Tomas Babej <tbabej@redhat.com> | 2014-05-27 09:13:59 +0200 |
---|---|---|
committer | Petr Viktorin <pviktori@redhat.com> | 2014-06-16 19:48:18 +0200 |
commit | 5f31f2d35f714880230c1a92a322c620e8708eb3 (patch) | |
tree | 200f71d434d8403df61d7c08b540e73f34897150 /ipapython | |
parent | 6a4cd8a4e33fba68c89d6046a98adb790c401041 (diff) | |
download | freeipa-5f31f2d35f714880230c1a92a322c620e8708eb3.tar.gz freeipa-5f31f2d35f714880230c1a92a322c620e8708eb3.tar.xz freeipa-5f31f2d35f714880230c1a92a322c620e8708eb3.zip |
ipaplatform: Do not require custom Authconfig implementations from platform modules
https://fedorahosted.org/freeipa/ticket/4052
Reviewed-By: Petr Viktorin <pviktori@redhat.com>
Diffstat (limited to 'ipapython')
-rw-r--r-- | ipapython/platform/base/__init__.py | 80 | ||||
-rw-r--r-- | ipapython/platform/redhat/auth.py | 49 |
2 files changed, 0 insertions, 129 deletions
diff --git a/ipapython/platform/base/__init__.py b/ipapython/platform/base/__init__.py index f6af75c80..3a6670a87 100644 --- a/ipapython/platform/base/__init__.py +++ b/ipapython/platform/base/__init__.py @@ -22,87 +22,7 @@ FIREFOX_INSTALL_DIRS = ["/usr/lib64/firefox", "/usr/lib/firefox"] # /firefox/install/dir/FIREFOX_PREFERENCES_REL_PATH FIREFOX_PREFERENCES_REL_PATH = "browser/defaults/preferences" -class AuthConfig(object): - """ - AuthConfig class implements system-independent interface to configure - system authentication resources. In Red Hat systems this is done with - authconfig(8) utility. - AuthConfig class is nothing more than a tool to gather configuration - options and execute their processing. These options then converted by - an actual implementation to series of a system calls to appropriate - utilities performing real configuration. - - IPA *expects* names of AuthConfig's options to follow authconfig(8) - naming scheme! - - Actual implementation should be done in ipapython/platform/<platform>.py - by inheriting from platform.AuthConfig and redefining __build_args() - and execute() methods. - - from ipapython.platform import platform - class PlatformAuthConfig(platform.AuthConfig): - def __build_args(): - ... - - def execute(): - ... - - authconfig = PlatformAuthConfig - .... - - See ipapython/platform/redhat.py for a sample implementation that uses - authconfig(8) as its backend. - - From IPA code perspective, the authentication configuration should be - done with use of ipapython.services.authconfig: - - from ipapython import services as ipaservices - auth_config = ipaservices.authconfig() - auth_config.disable("ldap").\ - disable("krb5").\ - disable("sssd").\ - disable("sssdauth").\ - disable("mkhomedir").\ - add_option("update").\ - enable("nis").\ - add_parameter("nisdomain","foobar") - auth_config.execute() - - If you need to re-use existing AuthConfig instance for multiple runs, - make sure to call 'AuthConfig.reset()' between the runs. - """ - - def __init__(self): - self.parameters = {} - - def enable(self, option): - self.parameters[option] = True - return self - - def disable(self, option): - self.parameters[option] = False - return self - - def add_option(self, option): - self.parameters[option] = None - return self - - def add_parameter(self, option, value): - self.parameters[option] = [value] - return self - - def __build_args(self): - # do nothing - return None - - def execute(self): - # do nothing - return None - - def reset(self): - self.parameters = {} - return self diff --git a/ipapython/platform/redhat/auth.py b/ipapython/platform/redhat/auth.py deleted file mode 100644 index 93c3c5e99..000000000 --- a/ipapython/platform/redhat/auth.py +++ /dev/null @@ -1,49 +0,0 @@ -# Authors: Simo Sorce <ssorce@redhat.com> -# Alexander Bokovoy <abokovoy@redhat.com> -# -# Copyright (C) 2007-2011 Red Hat -# see file 'COPYING' for use and warranty information -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# - -from ipapython import ipautil -from ipapython.platform import base - -class RedHatAuthConfig(base.AuthConfig): - """ - AuthConfig class implements system-independent interface to configure - system authentication resources. In Red Hat-produced systems this is done with - authconfig(8) utility. - """ - def __build_args(self): - args = [] - for (option, value) in self.parameters.items(): - if type(value) is bool: - if value: - args.append("--enable%s" % (option)) - else: - args.append("--disable%s" % (option)) - elif type(value) in (tuple, list): - args.append("--%s" % (option)) - args.append("%s" % (value[0])) - elif value is None: - args.append("--%s" % (option)) - else: - args.append("--%s%s" % (option,value)) - return args - - def execute(self): - args = self.__build_args() - ipautil.run(["/usr/sbin/authconfig"]+args) |