import webnotes from webnotes.utils import cint # # alias the current user # def on_login(login_manager): # login as if login_manager.user == 'Administrator': user = webnotes.form.getvalue('login_as') if user: # create if missing (due to some bug) login_as(user, login_manager) # alisaing here... so check if the user is disabled if not webnotes.conn.sql("select ifnull(enabled,0) from tabProfile where name=%s", user)[0][0]: # throw execption raise Exception, "Authentication Failed" login_manager.user = user # # update account details # def update_account_details(): # additional details (if from gateway) if webnotes.form_dict.get('is_trial'): webnotes.conn.set_global('is_trial', cint(webnotes.form_dict.get('is_trial'))) if webnotes.form_dict.get('days_to_expiry'): webnotes.conn.set_global('days_to_expiry', webnotes.form_dict.get('days_to_expiry')) if webnotes.form_dict.get('first_name'): from server_tools.server_tools.gateway_utils import update_user_details update_user_details() # # save (login from) # def on_login_post_session(login_manager): # login from if webnotes.form_dict.get('login_from'): webnotes.session['data']['login_from'] = webnotes.form.getvalue('login_from') update_account_details() # # logout the user from SSO # def on_logout(login_manager): if cint(webnotes.conn.get_value('Control Panel', None, 'sync_with_gateway')): from server_tools.server_tools.gateway_utils import logout_sso logout_sso() # # create a profile (if logs in for the first time) # def login_as(user, login_manager): import os import webnotes webnotes.session = {'user': user} ip = os.environ.get('REMOTE_ADDR') # validate if user is from SSO if ip == '72.55.168.105' or 1: # if user does not exist, create it if not webnotes.conn.sql("select name from tabProfile where name=%s", user): from webnotes.model.doc import Document import webnotes import webnotes.utils.webservice p = Document('Profile') p.first_name = webnotes.form_dict.get('first_name') p.last_name = webnotes.form_dict.get('last_name') p.email = user p.name = user p.enabled = 1 p.owner = user p.save(1)