Quellcode durchsuchen

[minor] [delete doc] option to ignore permissions

version-14
Anand Doshi vor 12 Jahren
Ursprung
Commit
e22d7d384f
2 geänderte Dateien mit 8 neuen und 7 gelöschten Zeilen
  1. +3
    -3
      webnotes/__init__.py
  2. +5
    -4
      webnotes/model/utils.py

+ 3
- 3
webnotes/__init__.py Datei anzeigen

@@ -328,7 +328,7 @@ def get_doctype(doctype, processed=False):
import webnotes.model.doctype
return webnotes.model.doctype.get(doctype, processed)

def delete_doc(doctype=None, name=None, doclist = None, force=0, ignore_doctypes=None, for_reload=False):
def delete_doc(doctype=None, name=None, doclist = None, force=0, ignore_doctypes=None, for_reload=False, ignore_permissions=False):
import webnotes.model.utils

if not ignore_doctypes:
@@ -336,9 +336,9 @@ def delete_doc(doctype=None, name=None, doclist = None, force=0, ignore_doctypes
if isinstance(name, list):
for n in name:
webnotes.model.utils.delete_doc(doctype, n, doclist, force, ignore_doctypes, for_reload)
webnotes.model.utils.delete_doc(doctype, n, doclist, force, ignore_doctypes, for_reload, ignore_permissions)
else:
webnotes.model.utils.delete_doc(doctype, name, doclist, force, ignore_doctypes, for_reload)
webnotes.model.utils.delete_doc(doctype, name, doclist, force, ignore_doctypes, for_reload, ignore_permissions)

def clear_perms(doctype):
conn.sql("""delete from tabDocPerm where parent=%s""", doctype)


+ 5
- 4
webnotes/model/utils.py Datei anzeigen

@@ -141,7 +141,7 @@ def getvaluelist(doclist, fieldname):
l.append(d.fields[fieldname])
return l

def delete_doc(doctype=None, name=None, doclist = None, force=0, ignore_doctypes=[], for_reload=False):
def delete_doc(doctype=None, name=None, doclist = None, force=0, ignore_doctypes=[], for_reload=False, ignore_permissions=False):
"""
Deletes a doc(dt, dn) and validates if it is not submitted and not linked in a live record
"""
@@ -160,7 +160,8 @@ def delete_doc(doctype=None, name=None, doclist = None, force=0, ignore_doctypes
return

if not for_reload:
check_permission_and_not_submitted(doctype, name)
check_permission_and_not_submitted(doctype, name, ignore_permissions)
run_on_trash(doctype, name, doclist)
# check if links exist
if not force:
@@ -184,9 +185,9 @@ def delete_doc(doctype=None, name=None, doclist = None, force=0, ignore_doctypes
return 'okay'

def check_permission_and_not_submitted(doctype, name):
def check_permission_and_not_submitted(doctype, name, ignore_permissions=False):
# permission
if webnotes.session.user!="Administrator" and not webnotes.has_permission(doctype, "cancel"):
if not ignore_permissions and webnotes.session.user!="Administrator" and not webnotes.has_permission(doctype, "cancel"):
webnotes.msgprint(_("User not allowed to delete."), raise_exception=True)

# check if submitted


Laden…
Abbrechen
Speichern