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 import webnotes.model.doctype
return webnotes.model.doctype.get(doctype, processed) 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 import webnotes.model.utils


if not ignore_doctypes: 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): if isinstance(name, list):
for n in name: 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: 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): def clear_perms(doctype):
conn.sql("""delete from tabDocPerm where parent=%s""", 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]) l.append(d.fields[fieldname])
return l 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 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 return


if not for_reload: 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) run_on_trash(doctype, name, doclist)
# check if links exist # check if links exist
if not force: if not force:
@@ -184,9 +185,9 @@ def delete_doc(doctype=None, name=None, doclist = None, force=0, ignore_doctypes
return 'okay' return 'okay'


def check_permission_and_not_submitted(doctype, name):
def check_permission_and_not_submitted(doctype, name, ignore_permissions=False):
# permission # 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) webnotes.msgprint(_("User not allowed to delete."), raise_exception=True)


# check if submitted # check if submitted


Laden…
Abbrechen
Speichern