refactor: moved from raw queries to frappe orm in
core
This commit is contained in:
parent
3e2acb1cb6
commit
fa6cb14ee5
10 changed files with 106 additions and 50 deletions
|
|
@ -27,12 +27,15 @@ def update_feed(doc, method=None):
|
|||
feed = frappe._dict(feed)
|
||||
doctype = feed.doctype or doc.doctype
|
||||
name = feed.name or doc.name
|
||||
|
||||
# delete earlier feed
|
||||
frappe.db.sql("""delete from `tabActivity Log`
|
||||
where
|
||||
reference_doctype=%s and reference_name=%s
|
||||
and link_doctype=%s""", (doctype, name,feed.link_doctype))
|
||||
|
||||
|
||||
frappe.db.delete(doctype="Activity Log", conditions={"reference_doctype": doctype,
|
||||
"reference_name": name,
|
||||
"link_doctype": name.feed.link_doctype})
|
||||
# frappe.db.sql("""delete from `tabActivity Log`
|
||||
# where
|
||||
# reference_doctype=%s and reference_name=%s
|
||||
# and link_doctype=%s""", (doctype, name,feed.link_doctype))
|
||||
frappe.get_doc({
|
||||
"doctype": "Activity Log",
|
||||
"reference_doctype": doctype,
|
||||
|
|
|
|||
|
|
@ -34,7 +34,8 @@ class DomainSettings(Document):
|
|||
all_domains = list((frappe.get_hooks('domains') or {}))
|
||||
|
||||
def remove_role(role):
|
||||
frappe.db.sql('delete from `tabHas Role` where role=%s', role)
|
||||
frappe.db.delete(doctype="Has Role", conditions={"role": role})
|
||||
# frappe.db.sql('delete from `tabHas Role` where role=%s', role)
|
||||
frappe.set_value('Role', role, 'disabled', 1)
|
||||
|
||||
for domain in all_domains:
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ class LogSettings(Document):
|
|||
self.clear_email_queue()
|
||||
|
||||
def clear_error_logs(self):
|
||||
# frappe.db.delete(doctype="Error Log", conditions="")
|
||||
frappe.db.sql(""" DELETE FROM `tabError Log`
|
||||
WHERE `creation` < (NOW() - INTERVAL '{0}' DAY)
|
||||
""".format(self.clear_error_log_after))
|
||||
|
|
|
|||
|
|
@ -81,9 +81,14 @@ class TestReport(unittest.TestCase):
|
|||
self.assertDictEqual({'name': 'Administrator', 'user_type': 'System User', 'email': 'admin@example.com'}, admin_dict)
|
||||
|
||||
def test_report_permissions(self):
|
||||
|
||||
frappe.set_user('test@example.com')
|
||||
frappe.db.sql("""delete from `tabHas Role` where parent = %s
|
||||
and role = 'Test Has Role'""", frappe.session.user, auto_commit=1)
|
||||
frappe.db.delete(doctype="Has Role", conditions={
|
||||
"parent": frappe.session.user,
|
||||
"role": "Test Has Role"
|
||||
})
|
||||
# frappe.db.sql("""delete from `tabHas Role` where parent = %s
|
||||
# and role = 'Test Has Role'""", frappe.session.user, auto_commit=1)
|
||||
|
||||
if not frappe.db.exists('Role', 'Test Has Role'):
|
||||
role = frappe.get_doc({
|
||||
|
|
|
|||
|
|
@ -38,7 +38,8 @@ class Role(Document):
|
|||
self.set(key, 0)
|
||||
|
||||
def remove_roles(self):
|
||||
frappe.db.sql("delete from `tabHas Role` where role = %s", self.name)
|
||||
frappe.db.delete(doctype="Has Role", conditions={"role": self.name})
|
||||
# frappe.db.sql("delete from `tabHas Role` where role = %s", self.name)
|
||||
frappe.clear_cache()
|
||||
|
||||
def on_update(self):
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ from frappe.model.document import Document
|
|||
from frappe.utils import get_datetime, now_datetime
|
||||
from frappe.utils.background_jobs import enqueue, get_jobs
|
||||
|
||||
|
||||
class ScheduledJobType(Document):
|
||||
def autoname(self):
|
||||
self.name = ".".join(self.method.split(".")[-2:])
|
||||
|
|
@ -110,7 +109,11 @@ class ScheduledJobType(Document):
|
|||
return 'long' if ('Long' in self.frequency) else 'default'
|
||||
|
||||
def on_trash(self):
|
||||
frappe.db.sql('delete from `tabScheduled Job Log` where scheduled_job_type=%s', self.name)
|
||||
|
||||
frappe.db.delete(doctype="Scheduled Job Log", conditions={
|
||||
"scheduled_job_type": self.name
|
||||
})
|
||||
# frappe.db.sql('delete from `tabScheduled Job Log` where scheduled_job_type=%s', self.name)
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ from frappe.website.utils import is_signup_disabled
|
|||
from frappe.rate_limiter import rate_limit
|
||||
from frappe.utils.background_jobs import enqueue
|
||||
from frappe.core.doctype.user_type.user_type import user_linked_with_permission_on_doctype
|
||||
|
||||
from frappe.database.database import Database
|
||||
|
||||
STANDARD_USERS = ("Guest", "Administrator")
|
||||
|
||||
|
|
@ -367,23 +367,30 @@ class User(Document):
|
|||
if getattr(frappe.local, "login_manager", None):
|
||||
frappe.local.login_manager.logout(user=self.name)
|
||||
|
||||
# delete todos
|
||||
frappe.db.sql("""DELETE FROM `tabToDo` WHERE `owner`=%s""", (self.name,))
|
||||
frappe.db.delete("Todo", {"owner": self.name})
|
||||
# frappe.db.sql("""DELETE FROM `tabToDo` WHERE `owner`=%s""", (self.name,))
|
||||
frappe.db.sql("""UPDATE `tabToDo` SET `assigned_by`=NULL WHERE `assigned_by`=%s""",
|
||||
(self.name,))
|
||||
|
||||
# delete events
|
||||
frappe.db.sql("""delete from `tabEvent` where owner=%s
|
||||
and event_type='Private'""", (self.name,))
|
||||
frappe.db.delete("Event", {"owner": self.name, "event_type": "Private"})
|
||||
# frappe.db.sql("""delete from `tabEvent` where owner=%s
|
||||
# and event_type='Private'""", (self.name,))
|
||||
|
||||
# delete shares
|
||||
frappe.db.sql("""delete from `tabDocShare` where user=%s""", self.name)
|
||||
frappe.db.delete("DocShare", {"user": self.name})
|
||||
# frappe.db.sql("""delete from `tabDocShare` where user=%s""", self.name)
|
||||
|
||||
# delete messages
|
||||
frappe.db.sql("""delete from `tabCommunication`
|
||||
where communication_type in ('Chat', 'Notification')
|
||||
and reference_doctype='User'
|
||||
and (reference_name=%s or owner=%s)""", (self.name, self.name))
|
||||
# TODO: CHANGE THIS FROM ABHISHEK KA PYPIKA
|
||||
frappe.db.delete("Communication", {
|
||||
"reference_doctype": "User",
|
||||
"communication_type": ("in", ("Chat", "Notification")),
|
||||
})
|
||||
# frappe.db.sql("""delete from `tabCommunication`
|
||||
# where communication_type in ('Chat', 'Notification')
|
||||
# and reference_doctype='User'
|
||||
# and (reference_name=%s or owner=%s)""", (self.name, self.name))
|
||||
|
||||
# unlink contact
|
||||
frappe.db.sql("""update `tabContact`
|
||||
|
|
|
|||
|
|
@ -10,12 +10,19 @@ import unittest
|
|||
|
||||
class TestUserPermission(unittest.TestCase):
|
||||
def setUp(self):
|
||||
frappe.db.sql("""DELETE FROM `tabUser Permission`
|
||||
WHERE `user` in (
|
||||
'test_bulk_creation_update@example.com',
|
||||
'test_user_perm1@example.com',
|
||||
'nested_doc_user@example.com')""")
|
||||
frappe.delete_doc_if_exists("DocType", "Person")
|
||||
|
||||
frappe.db.delete("User Permission", {
|
||||
"user": ("in", ("test_bulk_creation_update@example.com",
|
||||
"test_user_perm1@example.com",
|
||||
"nested_doc_user@example.com"))
|
||||
})
|
||||
|
||||
# frappe.db.sql("""DELETE FROM `tabUser Permission`
|
||||
# WHERE `user` in (
|
||||
# 'test_bulk_creation_update@example.com',
|
||||
# 'test_user_perm1@example.com',
|
||||
# 'nested_doc_user@example.com')""")
|
||||
# frappe.delete_doc_if_exists("DocType", "Person")
|
||||
frappe.db.sql_ddl("DROP TABLE IF EXISTS `tabPerson`")
|
||||
frappe.delete_doc_if_exists("DocType", "Doc A")
|
||||
frappe.db.sql_ddl("DROP TABLE IF EXISTS `tabDoc A`")
|
||||
|
|
|
|||
|
|
@ -182,7 +182,11 @@ def clear_user_permissions(user, for_doctype):
|
|||
frappe.only_for('System Manager')
|
||||
total = frappe.db.count('User Permission', filters = dict(user=user, allow=for_doctype))
|
||||
if total:
|
||||
frappe.db.sql('DELETE FROM `tabUser Permission` WHERE `user`=%s AND `allow`=%s', (user, for_doctype))
|
||||
frappe.db.delete("User Permission", {
|
||||
"user": user,
|
||||
"allow": for_doctype
|
||||
})
|
||||
# frappe.db.sql('DELETE FROM `tabUser Permission` WHERE `user`=%s AND `allow`=%s', (user, for_doctype))
|
||||
frappe.clear_cache()
|
||||
return total
|
||||
|
||||
|
|
@ -232,28 +236,50 @@ def insert_user_perm(user, doctype, docname, is_default=0, hide_descendants=0, a
|
|||
user_perm.insert()
|
||||
|
||||
def remove_applicable(perm_applied_docs, user, doctype, docname):
|
||||
|
||||
for applicable_for in perm_applied_docs:
|
||||
frappe.db.sql("""DELETE FROM `tabUser Permission`
|
||||
WHERE `user`=%s
|
||||
AND `applicable_for`=%s
|
||||
AND `allow`=%s
|
||||
AND `for_value`=%s
|
||||
""", (user, applicable_for, doctype, docname))
|
||||
|
||||
frappe.db.delete("User Permission", {
|
||||
"user": user,
|
||||
"applicable_for": applicable_for,
|
||||
"allow": doctype,
|
||||
"for_value": docname
|
||||
})
|
||||
#
|
||||
# frappe.db.sql("""DELETE FROM `tabUser Permission`
|
||||
# WHERE `user`=%s
|
||||
# AND `applicable_for`=%s
|
||||
# AND `allow`=%s
|
||||
# AND `for_value`=%s
|
||||
# """, (user, applicable_for, doctype, docname))
|
||||
def remove_apply_to_all(user, doctype, docname):
|
||||
frappe.db.sql("""DELETE from `tabUser Permission`
|
||||
WHERE `user`=%s
|
||||
AND `apply_to_all_doctypes`=1
|
||||
AND `allow`=%s
|
||||
AND `for_value`=%s
|
||||
""",(user, doctype, docname))
|
||||
|
||||
frappe.db.delete("User Permission", {
|
||||
"user": user,
|
||||
"apply_to_all_doctypes": 1,
|
||||
"allow": doctype,
|
||||
"for_value": docname
|
||||
})
|
||||
# frappe.db.sql("""DELETE from `tabUser Permission`
|
||||
# WHERE `user`=%s
|
||||
# AND `apply_to_all_doctypes`=1
|
||||
# AND `allow`=%s
|
||||
# AND `for_value`=%s
|
||||
# """,(user, doctype, docname))
|
||||
|
||||
def update_applicable(already_applied, to_apply, user, doctype, docname):
|
||||
for applied in already_applied:
|
||||
if applied not in to_apply:
|
||||
frappe.db.sql("""DELETE FROM `tabUser Permission`
|
||||
WHERE `user`=%s
|
||||
AND `applicable_for`=%s
|
||||
AND `allow`=%s
|
||||
AND `for_value`=%s
|
||||
""",(user, applied, doctype, docname))
|
||||
|
||||
frappe.db.delete("User Permission", {
|
||||
"user": user,
|
||||
"applicable_for": applied,
|
||||
"allow": doctype,
|
||||
"for_value": docname
|
||||
})
|
||||
|
||||
# frappe.db.sql("""DELETE FROM `tabUser Permission`
|
||||
# WHERE `user`=%s
|
||||
# AND `applicable_for`=%s
|
||||
# AND `allow`=%s
|
||||
# AND `for_value`=%s
|
||||
# """,(user, applied, doctype, docname))
|
||||
|
|
|
|||
|
|
@ -111,8 +111,10 @@ def remove(doctype, role, permlevel):
|
|||
setup_custom_perms(doctype)
|
||||
|
||||
name = frappe.get_value('Custom DocPerm', dict(parent=doctype, role=role, permlevel=permlevel))
|
||||
|
||||
frappe.db.sql('delete from `tabCustom DocPerm` where name=%s', name)
|
||||
frappe.db.delete("Custom DocPerm", {
|
||||
"name": name
|
||||
})
|
||||
# frappe.db.sql('delete from `tabCustom DocPerm` where name=%s', name)
|
||||
if not frappe.get_all('Custom DocPerm', dict(parent=doctype)):
|
||||
frappe.throw(_('There must be atleast one permission rule.'), title=_('Cannot Remove'))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue