From 66b4c470e1f33b7043339f9552203cfdac183f99 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 12 Oct 2016 10:26:20 +0530 Subject: [PATCH] [fix] has_website_permissions --- frappe/__init__.py | 14 +++++++++----- frappe/model/document.py | 11 ----------- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/frappe/__init__.py b/frappe/__init__.py index c8352003c9..2e276280a7 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -500,12 +500,16 @@ def has_website_permission(doctype, ptype="read", doc=None, user=None, verbose=F if not user: user = session.user - if isinstance(doc, basestring): - doc = get_doc(doctype, doc) + if doc: + if isinstance(doc, basestring): + doc = get_doc(doctype, doc) - # check permission in controller - if hasattr(doc, 'has_website_permission'): - return doc.has_website_permission(ptype, verbose=verbose) + if doc.flags.ignore_permissions: + return True + + # check permission in controller + if hasattr(doc, 'has_website_permission'): + return doc.has_website_permission(ptype, verbose=verbose) hooks = (get_hooks("has_website_permission") or {}).get(doctype, []) if hooks: diff --git a/frappe/model/document.py b/frappe/model/document.py index 1f783cbcad..60ac60ce43 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -150,17 +150,6 @@ class Document(BaseDocument): return True return frappe.has_permission(self.doctype, permtype, self, verbose=verbose) - def has_website_permission(self, permtype="read", verbose=False): - """Call `frappe.has_website_permission` if `self.flags.ignore_permissions` - is not set. - - :param permtype: one of `read`, `write`, `submit`, `cancel`, `delete`""" - if self.flags.ignore_permissions: - return True - - return (frappe.has_website_permission(self.doctype, permtype, self, verbose=verbose) - or self.has_permission(permtype, verbose=verbose)) - def raise_no_permission_to(self, perm_type): """Raise `frappe.PermissionError`.""" msg = _("No permission to {0} {1} {2}".format(perm_type, self.doctype, self.name or ""))