Procházet zdrojové kódy

[minor] added throw option to frappe.has_permission

version-14
Rushabh Mehta před 9 roky
rodič
revize
8c5c6bad14
2 změnil soubory, kde provedl 10 přidání a 3 odebrání
  1. +9
    -2
      frappe/__init__.py
  2. +1
    -1
      frappe/permissions.py

+ 9
- 2
frappe/__init__.py Zobrazit soubor

@@ -418,7 +418,7 @@ def clear_cache(user=None, doctype=None):


frappe.local.role_permissions = {} frappe.local.role_permissions = {}


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


:param doctype: DocType for which permission is to be check. :param doctype: DocType for which permission is to be check.
@@ -426,7 +426,14 @@ def has_permission(doctype, ptype="read", doc=None, user=None, verbose=False):
:param doc: [optional] Checks User permissions for given doc. :param doc: [optional] Checks User permissions for given doc.
:param user: [optional] Check for given user. Default: current user.""" :param user: [optional] Check for given user. Default: current user."""
import frappe.permissions import frappe.permissions
return frappe.permissions.has_permission(doctype, ptype, doc=doc, verbose=verbose, user=user)
out = frappe.permissions.has_permission(doctype, ptype, doc=doc, verbose=verbose, user=user)
if throw and not out:
if doc:
frappe.throw(_("No permission for {0}").format(doc.doctype + " " + doc.name))
else:
frappe.throw(_("No permission for {0}").format(doctype))

return out


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


+ 1
- 1
frappe/permissions.py Zobrazit soubor

@@ -147,7 +147,7 @@ def update_share_permissions(role_permissions, doc, user):
for ptype in share_ptypes: for ptype in share_ptypes:
if permissions_by_share[ptype]: if permissions_by_share[ptype]:
role_permissions[ptype] = 1 role_permissions[ptype] = 1
def get_role_permissions(meta, user=None, verbose=False): def get_role_permissions(meta, user=None, verbose=False):
"""Returns dict of evaluated role permissions like `{"read": True, "write":False}` """Returns dict of evaluated role permissions like `{"read": True, "write":False}`




Načítá se…
Zrušit
Uložit