From 308e999583ce5444e8acf3633ce88fab49afc25a Mon Sep 17 00:00:00 2001 From: Saurabh Date: Mon, 26 Oct 2015 14:44:24 +0530 Subject: [PATCH 1/3] [fixes] apply permissions specified in DocShare --- frappe/public/js/frappe/model/perm.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/frappe/public/js/frappe/model/perm.js b/frappe/public/js/frappe/model/perm.js index 8c9f7e3f90..1ba177ee3d 100644 --- a/frappe/public/js/frappe/model/perm.js +++ b/frappe/public/js/frappe/model/perm.js @@ -41,6 +41,7 @@ $.extend(frappe.perm, { var perm = [{ read: 0, apply_user_permissions: {} }]; var meta = frappe.get_doc("DocType", doctype); + if (!meta) { return perm; } @@ -76,23 +77,21 @@ $.extend(frappe.perm, { // apply permissions from shared if(docinfo.shared) { - for(var i=0; i Date: Mon, 26 Oct 2015 16:36:44 +0530 Subject: [PATCH 2/3] [fixes] ShareDoc permission fixes --- frappe/public/js/frappe/model/perm.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/frappe/public/js/frappe/model/perm.js b/frappe/public/js/frappe/model/perm.js index 1ba177ee3d..47fb9703a4 100644 --- a/frappe/public/js/frappe/model/perm.js +++ b/frappe/public/js/frappe/model/perm.js @@ -41,7 +41,6 @@ $.extend(frappe.perm, { var perm = [{ read: 0, apply_user_permissions: {} }]; var meta = frappe.get_doc("DocType", doctype); - if (!meta) { return perm; } @@ -77,21 +76,23 @@ $.extend(frappe.perm, { // apply permissions from shared if(docinfo.shared) { - $.each(docinfo.shared, function(i, shared_doc){ - if(shared_doc.user===user) { - perm[0]["read"] = shared_doc.read; - perm[0]["write"] = shared_doc.write; - perm[0]["share"] = shared_doc.share; + for(var i=0; i Date: Mon, 26 Oct 2015 16:50:05 +0530 Subject: [PATCH 3/3] [fixes] update share permissions --- frappe/permissions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frappe/permissions.py b/frappe/permissions.py index c534cd15c3..32295182bf 100644 --- a/frappe/permissions.py +++ b/frappe/permissions.py @@ -145,9 +145,9 @@ def update_share_permissions(role_permissions, doc, user): if permissions_by_share: for ptype in share_ptypes: - if ptype: + if permissions_by_share[ptype]: role_permissions[ptype] = 1 - + def get_role_permissions(meta, user=None, verbose=False): """Returns dict of evaluated role permissions like `{"read": True, "write":False}`