浏览代码

Merge pull request #1091 from rmehta/user-fix

[cleanup] frappe.get_user()
version-14
Rushabh Mehta 10 年前
父节点
当前提交
66c1f45e0b
共有 13 个文件被更改,包括 32 次插入35 次删除
  1. +18
    -17
      frappe/__init__.py
  2. +0
    -3
      frappe/auth.py
  3. +1
    -1
      frappe/boot.py
  4. +1
    -1
      frappe/core/notifications.py
  5. +1
    -1
      frappe/core/page/data_import_tool/data_import_tool.py
  6. +1
    -1
      frappe/database.py
  7. +1
    -1
      frappe/desk/desk_page.py
  8. +1
    -1
      frappe/desk/form/assign_to.py
  9. +1
    -1
      frappe/desk/form/load.py
  10. +1
    -1
      frappe/desk/form/save.py
  11. +2
    -2
      frappe/desk/notifications.py
  12. +3
    -3
      frappe/desk/page/messages/messages.py
  13. +1
    -2
      frappe/utils/user.py

+ 18
- 17
frappe/__init__.py 查看文件

@@ -263,17 +263,33 @@ def set_user(username):
"""Set current user.

:param username: **User** name to set as current user."""
from frappe.utils.user import User
local.session.user = username
local.session.sid = username
local.cache = {}
local.form_dict = _dict()
local.jenv = None
local.user_obj = None
local.session.data = _dict()
local.user = User(username)
local.role_permissions = {}
local.new_doc_templates = {}

def get_user():
from frappe.utils.user import User
if not local.user_obj:
local.user_obj = User(local.session.user)
return local.user_obj

def get_roles(username=None):
"""Returns roles of current user."""
if not local.session:
return ["Guest"]

if username:
import frappe.utils.user
return frappe.utils.user.get_roles(username)
else:
return get_user().get_roles()

def get_request_header(key, default=None):
"""Return HTTP request header.

@@ -385,21 +401,6 @@ def clear_cache(user=None, doctype=None):

frappe.local.role_permissions = {}

def get_roles(username=None):
"""Returns roles of current user."""
if not local.session:
return ["Guest"]

return get_user(username).get_roles()

def get_user(username):
"""Returns `frappe.utils.user.User` instance of given user."""
from frappe.utils.user import User
if not username or username == local.session.user:
return local.user
else:
return User(username)

def has_permission(doctype, ptype="read", doc=None, user=None, verbose=False):
"""Raises `frappe.PermissionError` if not permitted.



+ 0
- 3
frappe/auth.py 查看文件

@@ -74,9 +74,6 @@ class HTTPRequest:
from frappe.translate import guess_language
frappe.local.lang = guess_language(lang_codes)

def setup_user(self):
frappe.local.user = frappe.utils.user.User()

def get_db_name(self):
"""get database name from conf"""
return conf.db_name


+ 1
- 1
frappe/boot.py 查看文件

@@ -124,7 +124,7 @@ def get_fullnames():

def get_user(bootinfo):
"""get user info"""
bootinfo.user = frappe.user.load_user()
bootinfo.user = frappe.get_user().load_user()

def add_home_page(bootinfo, docs):
"""load home page"""


+ 1
- 1
frappe/core/notifications.py 查看文件

@@ -42,4 +42,4 @@ def get_unread_messages():
WHERE comment_doctype IN ('My Company', 'Message')
AND comment_docname = %s
AND ifnull(docstatus,0)=0
""", (frappe.user.name,))[0][0]
""", (frappe.session.user,))[0][0]

+ 1
- 1
frappe/core/page/data_import_tool/data_import_tool.py 查看文件

@@ -23,7 +23,7 @@ def get_doctypes():
return [r[0] for r in frappe.db.sql("""select name from `tabDocType`
where allow_import = 1""")]
else:
return frappe.user._get("can_import")
return frappe.get_user()._get("can_import")

@frappe.whitelist()
def get_doctype_options():


+ 1
- 1
frappe/database.py 查看文件

@@ -67,7 +67,7 @@ class Database:
def validate_query(self, q):
"""Throw exception for dangerous queries: `ALTER`, `DROP`, `TRUNCATE` if not `Administrator`."""
cmd = q.strip().lower().split()[0]
if cmd in ['alter', 'drop', 'truncate'] and frappe.user.name != 'Administrator':
if cmd in ['alter', 'drop', 'truncate'] and frappe.session.user != 'Administrator':
frappe.throw(_("Not permitted"), frappe.PermissionError)

def sql(self, query, values=(), as_dict = 0, as_list = 0, formatted = 0,


+ 1
- 1
frappe/desk/desk_page.py 查看文件

@@ -34,7 +34,7 @@ def getpage():
frappe.response.docs.append(doc)

def has_permission(page):
if frappe.user.name == "Administrator" or "System Manager" in frappe.user.get_roles():
if frappe.session.user == "Administrator" or "System Manager" in frappe.get_roles():
return True

page_roles = [d.role for d in page.get("roles")]


+ 1
- 1
frappe/desk/form/assign_to.py 查看文件

@@ -50,7 +50,7 @@ def add(args=None):
"priority": args.get("priority", "Medium"),
"status": "Open",
"date": args.get('date', nowdate()),
"assigned_by": args.get('assigned_by', frappe.user.name),
"assigned_by": args.get('assigned_by', frappe.session.user),
}).insert(ignore_permissions=True)

# set assigned_to if field exists


+ 1
- 1
frappe/desk/form/load.py 查看文件

@@ -43,7 +43,7 @@ def getdoc(doctype, name, user=None):
raise

if doc and not name.startswith('_'):
frappe.user.update_recent(doctype, name)
frappe.get_user().update_recent(doctype, name)

frappe.response.docs.append(doc)



+ 1
- 1
frappe/desk/form/save.py 查看文件

@@ -23,7 +23,7 @@ def savedocs():

# update recent documents
run_onload(doc)
frappe.user.update_recent(doc.doctype, doc.name)
frappe.get_user().update_recent(doc.doctype, doc.name)
send_updated_docs(doc)

except Exception:


+ 2
- 2
frappe/desk/notifications.py 查看文件

@@ -57,7 +57,7 @@ def get_notifications_for_modules(config, notification_count):
return open_count_module

def get_notifications_for_doctypes(config, notification_count):
can_read = frappe.user.get_can_read()
can_read = frappe.get_user().get_can_read()
open_count_doctype = {}

for d in config.for_doctype:
@@ -107,7 +107,7 @@ def clear_doctype_notifications(doc, method=None, *args, **kwargs):
def get_notification_info_for_boot():
out = get_notifications()
config = get_notification_config()
can_read = frappe.user.get_can_read()
can_read = frappe.get_user().get_can_read()
conditions = {}
module_doctypes = {}
doctype_info = dict(frappe.db.sql("""select name, module from tabDocType"""))


+ 3
- 3
frappe/desk/page/messages/messages.py 查看文件

@@ -20,7 +20,7 @@ def get_list(arg=None):
frappe.db.sql("""UPDATE `tabComment`
set docstatus = 1 where comment_doctype in ('My Company', 'Message')
and comment_docname = %s
""", frappe.user.name)
""", frappe.session.user)

delete_notification_count_for("Messages")

@@ -102,9 +102,9 @@ def _notify(contact, txt, subject=None):
frappe.sendmail(\
recipients=contact,
sender= frappe.db.get_value("User", frappe.session.user, "email"),
subject=subject or "New Message from " + get_fullname(frappe.user.name),
subject=subject or "New Message from " + get_fullname(frappe.session.user),
message=frappe.get_template("templates/emails/new_message.html").render({
"from": get_fullname(frappe.user.name),
"from": get_fullname(frappe.session.user),
"message": txt,
"link": get_url()
}),


+ 1
- 2
frappe/utils/user.py 查看文件

@@ -9,8 +9,7 @@ import frappe.share

class User:
"""
A user object is created at the beginning of every request with details of the use.
The global user object is `frappe.user`
A user permission object can be accessed as `frappe.get_user()`
"""
def __init__(self, name=''):
self.defaults = None


正在加载...
取消
保存