Kaynağa Gözat

[fix] ignore permissions when removing user share

version-14
Anand Doshi 9 yıl önce
ebeveyn
işleme
b6d525270e
3 değiştirilmiş dosya ile 7 ekleme ve 5 silme
  1. +5
    -3
      frappe/core/doctype/user/user.py
  2. +1
    -1
      frappe/model/delete_doc.py
  3. +1
    -1
      frappe/share.py

+ 5
- 3
frappe/core/doctype/user/user.py Dosyayı Görüntüle

@@ -105,7 +105,7 @@ class User(Document):
flags={"ignore_share_permission": True}) flags={"ignore_share_permission": True})
else: else:
frappe.share.remove(self.doctype, self.name, self.name, frappe.share.remove(self.doctype, self.name, self.name,
flags={"ignore_share_permission": True})
flags={"ignore_permissions": True})


def validate_share(self, docshare): def validate_share(self, docshare):
if docshare.user == self.name: if docshare.user == self.name:
@@ -321,8 +321,10 @@ class User(Document):
self.username = self.username.strip(" @") self.username = self.username.strip(" @")


if self.username_exists(): if self.username_exists():
frappe.msgprint(_("Username {0} already exists").format(self.username))
self.suggest_username()
if self.user_type == 'System User':
frappe.msgprint(_("Username {0} already exists").format(self.username))
self.suggest_username()

self.username = "" self.username = ""


# should be made up of characters, numbers and underscore only # should be made up of characters, numbers and underscore only


+ 1
- 1
frappe/model/delete_doc.py Dosyayı Görüntüle

@@ -138,7 +138,7 @@ def delete_from_table(doctype, name, ignore_doctypes, doc):


def check_permission_and_not_submitted(doc): def check_permission_and_not_submitted(doc):
# permission # permission
if frappe.session.user!="Administrator" and not doc.has_permission("delete"):
if not doc.flags.ignore_permissions and frappe.session.user!="Administrator" and not doc.has_permission("delete"):
frappe.msgprint(_("User not allowed to delete {0}: {1}").format(doc.doctype, doc.name), raise_exception=True) frappe.msgprint(_("User not allowed to delete {0}: {1}").format(doc.doctype, doc.name), raise_exception=True)


# check if submitted # check if submitted


+ 1
- 1
frappe/share.py Dosyayı Görüntüle

@@ -47,7 +47,7 @@ def remove(doctype, name, user, flags=None):
"share_doctype": doctype}) "share_doctype": doctype})


if share_name: if share_name:
frappe.delete_doc("DocShare", share_name)
frappe.delete_doc("DocShare", share_name, flags=flags)


@frappe.whitelist() @frappe.whitelist()
def set_permission(doctype, name, user, permission_to, value=1, everyone=0): def set_permission(doctype, name, user, permission_to, value=1, everyone=0):


Yükleniyor…
İptal
Kaydet