* add write perm as cascade has been removed * remove cascade permission from docshare to allow read only access to share * remove cascade permission for write permission * check existing shares for write permission * unset permissions on read
This commit is contained in:
parent
0d469e65f8
commit
0d2e01720c
6 changed files with 8 additions and 12 deletions
|
|
@ -19,8 +19,6 @@ class DocShare(Document):
|
|||
self.get_doc().run_method("validate_share", self)
|
||||
|
||||
def cascade_permissions_downwards(self):
|
||||
if self.share:
|
||||
self.write = 1
|
||||
if self.write:
|
||||
self.read = 1
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ class TestDocShare(unittest.TestCase):
|
|||
self.assertTrue(self.event.has_permission())
|
||||
|
||||
def test_share_permission(self):
|
||||
frappe.share.add("Event", self.event.name, self.user, share=1)
|
||||
frappe.share.add("Event", self.event.name, self.user, write=1, share=1)
|
||||
|
||||
frappe.set_user(self.user)
|
||||
self.assertTrue(self.event.has_permission("share"))
|
||||
|
|
@ -60,14 +60,14 @@ class TestDocShare(unittest.TestCase):
|
|||
self.assertRaises(frappe.PermissionError, frappe.share.add, "Event", self.event.name, self.user)
|
||||
|
||||
frappe.set_user("Administrator")
|
||||
frappe.share.add("Event", self.event.name, self.user, share=1)
|
||||
frappe.share.add("Event", self.event.name, self.user, write=1, share=1)
|
||||
|
||||
# test not raises
|
||||
frappe.set_user(self.user)
|
||||
frappe.share.add("Event", self.event.name, "test1@example.com", share=1)
|
||||
frappe.share.add("Event", self.event.name, "test1@example.com", write=1, share=1)
|
||||
|
||||
def test_remove_share(self):
|
||||
frappe.share.add("Event", self.event.name, self.user, share=1)
|
||||
frappe.share.add("Event", self.event.name, self.user, write=1, share=1)
|
||||
|
||||
frappe.set_user(self.user)
|
||||
self.assertTrue(self.event.has_permission("share"))
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@ class User(Document):
|
|||
|
||||
def share_with_self(self):
|
||||
if self.user_type=="System User":
|
||||
frappe.share.add(self.doctype, self.name, self.name, share=1,
|
||||
frappe.share.add(self.doctype, self.name, self.name, write=1, share=1,
|
||||
flags={"ignore_share_permission": True})
|
||||
else:
|
||||
frappe.share.remove(self.doctype, self.name, self.name,
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ def execute():
|
|||
users = frappe.get_all("User", filters={"user_type": "System User"})
|
||||
usernames = [user.name for user in users]
|
||||
for user in usernames:
|
||||
frappe.share.add("User", user, user, share=1)
|
||||
frappe.share.add("User", user, user, write=1, share=1)
|
||||
|
||||
# move event user to shared
|
||||
if frappe.db.exists("DocType", "Event User"):
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
<div class="col-xs-2"><input type="checkbox" name="read"
|
||||
{% if(cint(everyone.read)) { %}checked{% } %} class="edit-share"></div>
|
||||
<div class="col-xs-2"><input type="checkbox" name="write"
|
||||
{% if(cint(everyone.write)) { %}checked{% } %} class="edit-share"></div>
|
||||
{% if(cint(everyone.write)) { %}checked{% } %} class="edit-share"{% if (!frm.perm[0].write){ %} disabled="disabled"{% } %}></div>
|
||||
<div class="col-xs-2"><input type="checkbox" name="share"
|
||||
{% if(cint(everyone.share)) { %}checked{% } %} class="edit-share"></div>
|
||||
</div>
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
<div class="col-xs-2"><input type="checkbox" name="read"
|
||||
{% if(cint(s.read)) { %}checked{% } %} class="edit-share"></div>
|
||||
<div class="col-xs-2"><input type="checkbox" name="write"
|
||||
{% if(cint(s.write)) { %}checked{% } %} class="edit-share"></div>
|
||||
{% if(cint(s.write)) { %}checked{% } %} class="edit-share"{% if (!frm.perm[0].write){ %} disabled="disabled"{% } %}></div>
|
||||
<div class="col-xs-2"><input type="checkbox" name="share"
|
||||
{% if(cint(s.share)) { %}checked{% } %} class="edit-share"></div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -73,8 +73,6 @@ def set_permission(doctype, name, user, permission_to, value=1, everyone=0):
|
|||
# un-set higher-order permissions too
|
||||
if permission_to=="read":
|
||||
share.read = share.write = share.share = 0
|
||||
elif permission_to=="write":
|
||||
share.write = share.share = 0
|
||||
|
||||
share.save()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue