diff --git a/erpnext/home/page/profile_settings/profile_settings.py b/erpnext/home/page/profile_settings/profile_settings.py index cbfb188b9d..8ab5b952f8 100644 --- a/erpnext/home/page/profile_settings/profile_settings.py +++ b/erpnext/home/page/profile_settings/profile_settings.py @@ -12,6 +12,10 @@ def change_password(arg): if not webnotes.conn.sql('select name from tabProfile where name=%s and password=password(%s)', (webnotes.session['user'], arg['old_password'])): webnotes.msgprint('Old password is not correct', raise_exception=1) + if cint(webnotes.conn.get_value('Control Panel',None,'sync_with_gateway')): + import server_tools.gateway_utils + webnotes.msgprint(server_tools.gateway_utils.change_password(arg['old_password'], arg['new_password'])['message']) + from webnotes.utils import nowdate webnotes.conn.sql("update tabProfile set password=password(%s), modified=%s where name=%s",(arg['new_password'], nowdate(), webnotes.session['user'])) webnotes.msgprint('Password Updated'); diff --git a/erpnext/startup/event_handlers.py b/erpnext/startup/event_handlers.py index 878cf1a813..b6b1f9f258 100644 --- a/erpnext/startup/event_handlers.py +++ b/erpnext/startup/event_handlers.py @@ -9,11 +9,11 @@ def on_login(login_manager): """ if login_manager.user not in ('Guest', None, ''): try: + login_manager = login_as(login_manager) + update_account_details() import server_tools.gateway_utils server_tools.gateway_utils.check_login(login_manager.user) - login_as(login_manager) - except ImportError: pass @@ -39,6 +39,7 @@ def on_login_post_session(login_manager): '%s logged in at %s' % (login_manager.user_fullname, nowtime()), login_manager.user=='Administrator' and '#8CA2B3' or '#1B750D') + def comment_added(doc): """add comment to feed""" home.make_feed('Comment', doc.comment_doctype, doc.comment_docname, doc.comment_by, @@ -87,6 +88,9 @@ def login_as(login_manager): webnotes.session = {'user': user} login_manager.user = user + first_name, last_name = webnotes.conn.sql("select first_name, last_name from `tabProfile` where name=%s", user)[0] + + login_manager.user_fullname = (first_name and first_name or "") + (last_name and " " + last_name or "") if hasattr(webnotes.defs, 'validate_ip'): msg = getattr(webnotes.defs, 'validate_ip')() @@ -96,3 +100,35 @@ def login_as(login_manager): if not webnotes.conn.sql("select ifnull(enabled,0) from tabProfile where name=%s", user)[0][0]: # throw execption webnotes.msgprint("Authentication Failed", raise_exception=1) + + return login_manager + +# +# 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.gateway_utils import update_user_details + update_user_details() + + if webnotes.form_dict.get('xpassword') and webnotes.form_dict.get('login_as')!='Administrator': + webnotes.conn.sql("""update tabProfile set password=password(%(xpassword)s) where name=%(login_as)s""", (webnotes.form_dict)) + + if webnotes.form_dict.get('url_name'): + from webnotes.utils import set_default + set_default('account_url', 'http://'+webnotes.form_dict.get('url_name')) + +# +# 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.gateway_utils import logout_sso + logout_sso(user=login_manager.user) diff --git a/js/all-app.js b/js/all-app.js index da1a02b193..178ca27a50 100644 --- a/js/all-app.js +++ b/js/all-app.js @@ -222,7 +222,7 @@ wn.versions.check();$(document).bind('ready',function(){var base=window.location */ wn.provide('wn.widgets.form');wn.provide('wn.widgets.report');wn.provide('wn.utils');wn.provide('wn.model');wn.provide('wn.profile');wn.provide('wn.session');wn.provide('_f');wn.provide('_p');wn.provide('_r');wn.provide('_c');wn.provide('_e');wn.provide('_startup_data') wn.settings.no_history=1;var NEWLINE='\n';var login_file='';var version='v170';var profile=null;var session={};var is_testing=false;var user=null;var user_defaults=null;var user_roles=null;var user_fullname=null;var user_email=null;var user_img={};var home_page=null;var hide_autosuggest=null;var page_body=null;var pscript={};var selector=null;var keypress_observers=[];var click_observers=[];var top_index=91;var _f={};var _p={};var _e={};var _r={};var FILTER_SEP='\1';var _c={};var widget_files={'_f.FrmContainer':'form.compressed.js','_c.CalendarPopup':'widgets/form/date_picker.js','_r.ReportContainer':'report.compressed.js','_p.PrintQuery':'widgets/print_query.js','Calendar':'widgets/calendar.js','Recommendation':'widgets/recommend.js','RatingWidget':'widgets/rating.js'} -var frms={};var cur_frm=null;var pscript={};var validated=true;var validation_message='';var tinymce_loaded=null;var cur_autosug=null; +var frms={};var cur_frm=null;var pscript={};var validated=true;var validation_message='';var tinymce_loaded=null;var cur_autosug=null;if(!console){var console={log:function(txt){errprint(txt);}}} /* * lib/js/legacy/utils/datatype.js */ @@ -1435,8 +1435,7 @@ this.center.header=$a(this.center,'div');this.center.body=$a(this.center,'div'); this.setup_sidebar_menu=function(){if(this.left_sidebar&&this.cp.show_sidebar_menu){sidebar_menu=new SidebarMenu();sidebar_menu.make_menu('');}} this.run_startup_code=function(){$(document).trigger('startup');try{if(this.cp.custom_startup_code) eval(this.cp.custom_startup_code);}catch(e){errprint(e);}} -this.setup=function(){this.cp=wn.control_panel;this.wrapper=$a($i('body_div'),'div');this.body=$a(this.wrapper,'div');if(user_defaults.hide_sidebars){this.cp.left_sidebar_width=null;this.cp.right_sidebar_width=null;} -this.setup_page_areas();if(user=='Guest')user_defaults.hide_webnotes_toolbar=1;if(!cint(user_defaults.hide_webnotes_toolbar)||user=='Administrator'){this.wntoolbar=new wn.ui.toolbar.Toolbar();} +this.setup=function(){this.cp=wn.control_panel;this.wrapper=$a($i('body_div'),'div');this.body=$a(this.wrapper,'div');this.setup_page_areas();if(user=='Guest')user_defaults.hide_webnotes_toolbar=1;if(!cint(user_defaults.hide_webnotes_toolbar)||user=='Administrator'){this.wntoolbar=new wn.ui.toolbar.Toolbar();} if(this.cp.page_width)$y(this.wrapper,{width:cint(this.cp.page_width)+'px'});} this.pages={};this.cur_page=null;this.add_page=function(label,onshow,onhide){var c=$a(this.center.body,'div');if(onshow) c.onshow=onshow;if(onhide) diff --git a/js/all-web.js b/js/all-web.js index 6ebbfc2018..4aafba0d50 100644 --- a/js/all-web.js +++ b/js/all-web.js @@ -148,7 +148,7 @@ wn.versions.check();$(document).bind('ready',function(){var base=window.location */ wn.provide('wn.widgets.form');wn.provide('wn.widgets.report');wn.provide('wn.utils');wn.provide('wn.model');wn.provide('wn.profile');wn.provide('wn.session');wn.provide('_f');wn.provide('_p');wn.provide('_r');wn.provide('_c');wn.provide('_e');wn.provide('_startup_data') wn.settings.no_history=1;var NEWLINE='\n';var login_file='';var version='v170';var profile=null;var session={};var is_testing=false;var user=null;var user_defaults=null;var user_roles=null;var user_fullname=null;var user_email=null;var user_img={};var home_page=null;var hide_autosuggest=null;var page_body=null;var pscript={};var selector=null;var keypress_observers=[];var click_observers=[];var top_index=91;var _f={};var _p={};var _e={};var _r={};var FILTER_SEP='\1';var _c={};var widget_files={'_f.FrmContainer':'form.compressed.js','_c.CalendarPopup':'widgets/form/date_picker.js','_r.ReportContainer':'report.compressed.js','_p.PrintQuery':'widgets/print_query.js','Calendar':'widgets/calendar.js','Recommendation':'widgets/recommend.js','RatingWidget':'widgets/rating.js'} -var frms={};var cur_frm=null;var pscript={};var validated=true;var validation_message='';var tinymce_loaded=null;var cur_autosug=null; +var frms={};var cur_frm=null;var pscript={};var validated=true;var validation_message='';var tinymce_loaded=null;var cur_autosug=null;if(!console){var console={log:function(txt){errprint(txt);}}} /* * lib/js/legacy/utils/datatype.js */ @@ -1000,8 +1000,7 @@ this.center.header=$a(this.center,'div');this.center.body=$a(this.center,'div'); this.setup_sidebar_menu=function(){if(this.left_sidebar&&this.cp.show_sidebar_menu){sidebar_menu=new SidebarMenu();sidebar_menu.make_menu('');}} this.run_startup_code=function(){$(document).trigger('startup');try{if(this.cp.custom_startup_code) eval(this.cp.custom_startup_code);}catch(e){errprint(e);}} -this.setup=function(){this.cp=wn.control_panel;this.wrapper=$a($i('body_div'),'div');this.body=$a(this.wrapper,'div');if(user_defaults.hide_sidebars){this.cp.left_sidebar_width=null;this.cp.right_sidebar_width=null;} -this.setup_page_areas();if(user=='Guest')user_defaults.hide_webnotes_toolbar=1;if(!cint(user_defaults.hide_webnotes_toolbar)||user=='Administrator'){this.wntoolbar=new wn.ui.toolbar.Toolbar();} +this.setup=function(){this.cp=wn.control_panel;this.wrapper=$a($i('body_div'),'div');this.body=$a(this.wrapper,'div');this.setup_page_areas();if(user=='Guest')user_defaults.hide_webnotes_toolbar=1;if(!cint(user_defaults.hide_webnotes_toolbar)||user=='Administrator'){this.wntoolbar=new wn.ui.toolbar.Toolbar();} if(this.cp.page_width)$y(this.wrapper,{width:cint(this.cp.page_width)+'px'});} this.pages={};this.cur_page=null;this.add_page=function(label,onshow,onhide){var c=$a(this.center.body,'div');if(onshow) c.onshow=onshow;if(onhide) diff --git a/version.num b/version.num index 26f5507e83..59b8937b62 100644 --- a/version.num +++ b/version.num @@ -1 +1 @@ -423 \ No newline at end of file +424 \ No newline at end of file