Ver código fonte

[login] redirect to desk for logged in system user

version-14
Rushabh Mehta 10 anos atrás
pai
commit
1dcea77fa6
4 arquivos alterados com 13 adições e 4 exclusões
  1. +4
    -1
      frappe/auth.py
  2. +2
    -2
      frappe/public/js/frappe/router.js
  3. +3
    -1
      frappe/sessions.py
  4. +4
    -0
      frappe/templates/pages/login.py

+ 4
- 1
frappe/auth.py Ver arquivo

@@ -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


+ 2
- 2
frappe/public/js/frappe/router.js Ver arquivo

@@ -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,


+ 3
- 1
frappe/sessions.py Ver arquivo

@@ -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


+ 4
- 0
frappe/templates/pages/login.py Ver arquivo

@@ -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"))


Carregando…
Cancelar
Salvar