X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=ipsilon%2Flogin%2Fauthkrb.py;h=6c561acd6547ca045367e2b1510e810b36625551;hp=d5ceaf37214f65c5beb626e1c799c093a3046ca0;hb=62b4656571be6e8671ada295047eac385d330f66;hpb=25b8eaf83e681a9322cffe61aad5254bcbe0c917 diff --git a/ipsilon/login/authkrb.py b/ipsilon/login/authkrb.py index d5ceaf3..6c561ac 100755 --- a/ipsilon/login/authkrb.py +++ b/ipsilon/login/authkrb.py @@ -20,6 +20,7 @@ from ipsilon.login.common import LoginPageBase, LoginManagerBase from ipsilon.login.common import FACILITY from ipsilon.util.plugin import PluginObject +from ipsilon.util.user import UserSession from string import Template import cherrypy import os @@ -36,13 +37,18 @@ class Krb(LoginPageBase): class KrbAuth(LoginPageBase): def root(self, *args, **kwargs): + trans = self.get_valid_transaction('login', **kwargs) # 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: + us = UserSession() + us.remote_login() + self.user = us.get_user() + if not self.user.is_anonymous: userdata = {'krb_principal_name': self.user.name} - return self.lm.auth_successful(self.user.name, 'krb', userdata) + return self.lm.auth_successful(trans, self.user.name, + 'krb', userdata) else: - return self.lm.auth_failed() + return self.lm.auth_failed(trans) class KrbError(LoginPageBase): @@ -64,7 +70,8 @@ class KrbError(LoginPageBase): cont=conturl) # If we get here, negotiate failed - return self.lm.auth_failed() + trans = self.get_valid_transaction('login', **kwargs) + return self.lm.auth_failed(trans) class LoginManager(LoginManagerBase): @@ -157,5 +164,4 @@ class Installer(object): order = [] order.insert(0, 'krb') globalconf['order'] = ','.join(order) - po.set_config(globalconf) - po.save_plugin_config(FACILITY) + po.save_plugin_config(FACILITY, globalconf)