@@ -85,6 +85,7 @@ class LoginManager: | |||||
self.user = None | self.user = None | ||||
self.info = None | self.info = None | ||||
self.full_name = None | self.full_name = None | ||||
self.user_type = None | |||||
if frappe.local.form_dict.get('cmd')=='login' or frappe.local.request.path=="/api/method/login": | if frappe.local.form_dict.get('cmd')=='login' or frappe.local.request.path=="/api/method/login": | ||||
self.login() | self.login() | ||||
@@ -101,6 +102,7 @@ class LoginManager: | |||||
self.info = frappe.db.get_value("User", self.user, | self.info = frappe.db.get_value("User", self.user, | ||||
["user_type", "first_name", "last_name", "user_image"], as_dict=1) | ["user_type", "first_name", "last_name", "user_image"], as_dict=1) | ||||
self.full_name = " ".join(filter(None, [self.info.first_name, self.info.last_name])) | self.full_name = " ".join(filter(None, [self.info.first_name, self.info.last_name])) | ||||
self.user_type = self.info.user_type | |||||
self.run_trigger('on_login') | self.run_trigger('on_login') | ||||
self.validate_ip_address() | self.validate_ip_address() | ||||
@@ -126,7 +128,8 @@ class LoginManager: | |||||
def make_session(self, resume=False): | def make_session(self, resume=False): | ||||
# start session | # start session | ||||
frappe.local.session_obj = Session(user=self.user, resume=resume, full_name=self.full_name) | |||||
frappe.local.session_obj = Session(user=self.user, resume=resume, | |||||
full_name=self.full_name, user_type=self.user_type) | |||||
# reset user if changed to Guest | # reset user if changed to Guest | ||||
self.user = frappe.local.session_obj.user | self.user = frappe.local.session_obj.user | ||||
@@ -4,7 +4,7 @@ | |||||
// route urls to their virtual pages | // route urls to their virtual pages | ||||
// re-route map (for rename) | // re-route map (for rename) | ||||
frappe.re_route = {}; | |||||
frappe.re_route = {"#login": ""}; | |||||
frappe.route_titles = {}; | frappe.route_titles = {}; | ||||
frappe.route_history = []; | frappe.route_history = []; | ||||
frappe.view_factory = {}; | frappe.view_factory = {}; | ||||
@@ -12,7 +12,7 @@ frappe.view_factories = []; | |||||
frappe.route_options = null; | frappe.route_options = null; | ||||
frappe.route = function() { | frappe.route = function() { | ||||
if(frappe.re_route[window.location.hash]) { | |||||
if(frappe.re_route[window.location.hash] !== undefined) { | |||||
// after saving a doc, for example, | // after saving a doc, for example, | ||||
// "New DocType 1" and the renamed "TestDocType", both exist in history | // "New DocType 1" and the renamed "TestDocType", both exist in history | ||||
// now if we try to go back, | // now if we try to go back, | ||||
@@ -125,9 +125,10 @@ def get(): | |||||
return bootinfo | return bootinfo | ||||
class Session: | class Session: | ||||
def __init__(self, user, resume=False, full_name=None): | |||||
def __init__(self, user, resume=False, full_name=None, user_type=None): | |||||
self.sid = cstr(frappe.form_dict.get('sid') or unquote(frappe.request.cookies.get('sid', 'Guest'))) | self.sid = cstr(frappe.form_dict.get('sid') or unquote(frappe.request.cookies.get('sid', 'Guest'))) | ||||
self.user = user | self.user = user | ||||
self.user_type = user_type | |||||
self.full_name = full_name | self.full_name = full_name | ||||
self.data = frappe._dict({'data': frappe._dict({})}) | self.data = frappe._dict({'data': frappe._dict({})}) | ||||
self.time_diff = None | self.time_diff = None | ||||
@@ -156,6 +157,7 @@ class Session: | |||||
self.data.data.last_updated = frappe.utils.now() | self.data.data.last_updated = frappe.utils.now() | ||||
self.data.data.session_expiry = get_expiry_period() | self.data.data.session_expiry = get_expiry_period() | ||||
self.data.data.full_name = self.full_name | self.data.data.full_name = self.full_name | ||||
self.data.data.user_type = self.user_type | |||||
self.data.data.session_country = get_geo_ip_country(frappe.local.request_ip) | self.data.data.session_country = get_geo_ip_country(frappe.local.request_ip) | ||||
# insert session | # insert session | ||||
@@ -12,6 +12,10 @@ class SignupDisabledError(frappe.PermissionError): pass | |||||
no_cache = True | no_cache = True | ||||
def get_context(context): | def get_context(context): | ||||
if frappe.session.user != "Guest" and frappe.session.data.user_type=="System User": | |||||
frappe.local.flags.redirect_location = "/desk" | |||||
raise frappe.Redirect | |||||
# get settings from site config | # get settings from site config | ||||
context["title"] = "Login" | context["title"] = "Login" | ||||
context["disable_signup"] = frappe.utils.cint(frappe.db.get_value("Website Settings", "Website Settings", "disable_signup")) | context["disable_signup"] = frappe.utils.cint(frappe.db.get_value("Website Settings", "Website Settings", "disable_signup")) | ||||