diff options
Diffstat (limited to 'ipaplatform/fedora/authconfig.py')
-rw-r--r-- | ipaplatform/fedora/authconfig.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/ipaplatform/fedora/authconfig.py b/ipaplatform/fedora/authconfig.py new file mode 100644 index 000000000..166a826f7 --- /dev/null +++ b/ipaplatform/fedora/authconfig.py @@ -0,0 +1,56 @@ +# Authors: Simo Sorce <ssorce@redhat.com> +# Alexander Bokovoy <abokovoy@redhat.com> +# Tomas Babej <tbabej@redhat.com> +# +# Copyright (C) 2007-2014 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 ipaplatform.base.authconfig import AuthConfig + + +class FedoraAuthConfig(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, update=True): + if update: + self.add_option("update") + + args = self.build_args() + ipautil.run(["/usr/sbin/authconfig"] + args) |