diff --git a/frappe/core/doctype/user/user.py b/frappe/core/doctype/user/user.py index 50c89a4483..8b60c04ee0 100644 --- a/frappe/core/doctype/user/user.py +++ b/frappe/core/doctype/user/user.py @@ -105,7 +105,7 @@ class User(Document): flags={"ignore_share_permission": True}) else: frappe.share.remove(self.doctype, self.name, self.name, - flags={"ignore_share_permission": True}) + flags={"ignore_permissions": True}) def validate_share(self, docshare): if docshare.user == self.name: @@ -321,8 +321,10 @@ class User(Document): self.username = self.username.strip(" @") 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 = "" # should be made up of characters, numbers and underscore only diff --git a/frappe/model/delete_doc.py b/frappe/model/delete_doc.py index e467e16667..b3375664ef 100644 --- a/frappe/model/delete_doc.py +++ b/frappe/model/delete_doc.py @@ -138,7 +138,7 @@ def delete_from_table(doctype, name, ignore_doctypes, doc): def check_permission_and_not_submitted(doc): # 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) # check if submitted diff --git a/frappe/share.py b/frappe/share.py index 85104c0265..dc37a12507 100644 --- a/frappe/share.py +++ b/frappe/share.py @@ -47,7 +47,7 @@ def remove(doctype, name, user, flags=None): "share_doctype": doctype}) if share_name: - frappe.delete_doc("DocShare", share_name) + frappe.delete_doc("DocShare", share_name, flags=flags) @frappe.whitelist() def set_permission(doctype, name, user, permission_to, value=1, everyone=0):