[login] redirect to desk for logged in system user

This commit is contained in:
Rushabh Mehta 2015-05-11 14:31:32 +05:30
parent a8d564a6c9
commit 1dcea77fa6
4 changed files with 13 additions and 4 deletions

View file

@ -85,6 +85,7 @@ class LoginManager:
self.user = None
self.info = 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":
self.login()
@ -101,6 +102,7 @@ class LoginManager:
self.info = frappe.db.get_value("User", self.user,
["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.user_type = self.info.user_type
self.run_trigger('on_login')
self.validate_ip_address()
@ -126,7 +128,8 @@ class LoginManager:
def make_session(self, resume=False):
# 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
self.user = frappe.local.session_obj.user

View file

@ -4,7 +4,7 @@
// route urls to their virtual pages
// re-route map (for rename)
frappe.re_route = {};
frappe.re_route = {"#login": ""};
frappe.route_titles = {};
frappe.route_history = [];
frappe.view_factory = {};
@ -12,7 +12,7 @@ frappe.view_factories = [];
frappe.route_options = null;
frappe.route = function() {
if(frappe.re_route[window.location.hash]) {
if(frappe.re_route[window.location.hash] !== undefined) {
// after saving a doc, for example,
// "New DocType 1" and the renamed "TestDocType", both exist in history
// now if we try to go back,

View file

@ -125,9 +125,10 @@ def get():
return bootinfo
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.user = user
self.user_type = user_type
self.full_name = full_name
self.data = frappe._dict({'data': frappe._dict({})})
self.time_diff = None
@ -156,6 +157,7 @@ class Session:
self.data.data.last_updated = frappe.utils.now()
self.data.data.session_expiry = get_expiry_period()
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)
# insert session

View file

@ -12,6 +12,10 @@ class SignupDisabledError(frappe.PermissionError): pass
no_cache = True
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
context["title"] = "Login"
context["disable_signup"] = frappe.utils.cint(frappe.db.get_value("Website Settings", "Website Settings", "disable_signup"))