Add server-install plugin configuration support
[cascardo/ipsilon.git] / ipsilon / login / authkrb.py
index 77b907b..5b9163d 100755 (executable)
@@ -18,7 +18,6 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 from ipsilon.login.common import LoginPageBase, LoginManagerBase
-from ipsilon.util.user import UserSession
 import cherrypy
 
 
@@ -36,7 +35,7 @@ class KrbAuth(LoginPageBase):
         # If we can get here, we must be authenticated and remote_user
         # was set. Check the session has a user set already or error.
         if self.user and self.user.name:
-            userdata = { 'krb_principal_name': self.user.name }
+            userdata = {'krb_principal_name': self.user.name}
             return self.lm.auth_successful(self.user.name, userdata)
         else:
             return self.lm.auth_failed()
@@ -80,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