diff options
author | Simo Sorce <simo@redhat.com> | 2014-03-14 18:08:49 -0400 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2014-03-20 11:34:08 -0400 |
commit | 1d7df9dbac43b63424ee07ebfb86c6a106dcb43c (patch) | |
tree | 8492c4ccaa3d57a7625682eeadd98d28897121ab /ipsilon/login | |
parent | 7efffe85403fbaa1335186b311ad7ac8ea19ad1e (diff) | |
download | ipsilon-1d7df9dbac43b63424ee07ebfb86c6a106dcb43c.tar.gz ipsilon-1d7df9dbac43b63424ee07ebfb86c6a106dcb43c.tar.xz ipsilon-1d7df9dbac43b63424ee07ebfb86c6a106dcb43c.zip |
Add server-install plugin configuration support
Automatically find plugins installed in the system and exposes their
installation and configuration functions through the installer.
Signed-off-by: Simo Sorce <simo@redhat.com>
Diffstat (limited to 'ipsilon/login')
-rwxr-xr-x | ipsilon/login/authkrb.py | 15 | ||||
-rwxr-xr-x | ipsilon/login/authpam.py | 21 | ||||
-rwxr-xr-x | ipsilon/login/common.py | 8 |
3 files changed, 44 insertions, 0 deletions
diff --git a/ipsilon/login/authkrb.py b/ipsilon/login/authkrb.py index 8069c6a..5b9163d 100755 --- a/ipsilon/login/authkrb.py +++ b/ipsilon/login/authkrb.py @@ -79,3 +79,18 @@ plugin for actual authentication. """ self.page.__dict__['negotiate'] = KrbAuth(site, self) self.page.__dict__['unauthorized'] = KrbError(site, self) return self.page + + +class Installer(object): + + def __init__(self): + self.name = 'krb' + self.ptype = 'login' + + def install_args(self, group): + group.add_argument('--krb', choices=['yes', 'no'], default='no', + help='Configure Kerberos authentication') + + def configure(self, opts): + if opts['krb'] != 'yes': + return diff --git a/ipsilon/login/authpam.py b/ipsilon/login/authpam.py index 496a774..1eb697b 100755 --- a/ipsilon/login/authpam.py +++ b/ipsilon/login/authpam.py @@ -143,3 +143,24 @@ for authentication. """ def get_tree(self, site): self.page = Pam(site, self) return self.page + + +class Installer(object): + + def __init__(self): + self.name = 'pam' + self.ptype = 'login' + + def install_args(self, group): + group.add_argument('--pam', choices=['yes', 'no'], default='no', + help='Configure PAM authentication') + group.add_argument('--pam-service', action='store', default='remote', + help='PAM service name to use for authentication') + + def configure(self, opts): + if opts['pam'] != 'yes': + return + + if opts['pam_service'] != 'remote': + #TODO: add service_name in the database + return diff --git a/ipsilon/login/common.py b/ipsilon/login/common.py index b7000b2..d290521 100755 --- a/ipsilon/login/common.py +++ b/ipsilon/login/common.py @@ -20,6 +20,7 @@ from ipsilon.util.page import Page from ipsilon.util.user import UserSession from ipsilon.util.plugin import PluginLoader, PluginObject +from ipsilon.util.plugin import PluginInstaller import cherrypy @@ -124,3 +125,10 @@ class Logout(Page): def root(self, *args, **kwargs): UserSession().logout(self.user) return self._template('logout.html', title='Logout') + + +class LoginMgrsInstall(object): + + def __init__(self): + pi = PluginInstaller(LoginMgrsInstall) + self.plugins = pi.get_plugins() |