refactor: convert doctype user db.sql calls
This commit is contained in:
parent
d74f985728
commit
8eea80e14e
1 changed files with 23 additions and 33 deletions
|
|
@ -217,15 +217,8 @@ class User(Document):
|
|||
if not self.roles:
|
||||
return False
|
||||
|
||||
role_table = frappe.qb.DocType("Role")
|
||||
return len(
|
||||
frappe.qb.from_(role_table)
|
||||
.select(role_table.name)
|
||||
.where(role_table.desk_access == 1)
|
||||
.where(role_table.name.isin([d.role for d in self.roles]))
|
||||
.limit(1)
|
||||
.run()
|
||||
)
|
||||
role_table = DocType("Role")
|
||||
return frappe.db.count(role_table, ((role_table.desk_access == 1) & (role_table.name.isin([d.role for d in self.roles]))))
|
||||
|
||||
def share_with_self(self):
|
||||
frappe.share.add(self.doctype, self.name, self.name, write=1, share=1,
|
||||
|
|
@ -283,12 +276,20 @@ class User(Document):
|
|||
return link
|
||||
|
||||
def get_other_system_managers(self):
|
||||
return frappe.db.sql("""select distinct `user`.`name` from `tabHas Role` as `user_role`, `tabUser` as `user`
|
||||
where user_role.role='System Manager'
|
||||
and `user`.docstatus<2
|
||||
and `user`.enabled=1
|
||||
and `user_role`.parent = `user`.name
|
||||
and `user_role`.parent not in ('Administrator', %s) limit 1""", (self.name,))
|
||||
user_doctype = DocType("User").as_("user")
|
||||
user_role_doctype = DocType("Has Role").as_("user_role")
|
||||
return (
|
||||
frappe.qb.from_(user_doctype)
|
||||
.from_(user_role_doctype)
|
||||
.select(user_doctype.name)
|
||||
.where(user_role_doctype.role == 'System Manager')
|
||||
.where(user_doctype.docstatus < 2)
|
||||
.where(user_doctype.enabled == 1)
|
||||
.where(user_role_doctype.parent == user_doctype.name)
|
||||
.where(user_role_doctype.parent.notin(["Administrator", self.name]))
|
||||
.limit(1)
|
||||
.distinct()
|
||||
).run()
|
||||
|
||||
def get_fullname(self):
|
||||
"""get first_name space last_name"""
|
||||
|
|
@ -362,8 +363,8 @@ class User(Document):
|
|||
|
||||
# delete todos
|
||||
frappe.db.delete("ToDo", {"owner": self.name})
|
||||
frappe.db.sql("""UPDATE `tabToDo` SET `assigned_by`=NULL WHERE `assigned_by`=%s""",
|
||||
(self.name,))
|
||||
todo_table = DocType("ToDo")
|
||||
frappe.qb.update(todo_table).set(todo_table.assigned_by, None).where(todo_table.assigned_by == self.name).run()
|
||||
|
||||
# delete events
|
||||
frappe.db.delete("Event", {"owner": self.name, "event_type": "Private"})
|
||||
|
|
@ -429,10 +430,7 @@ class User(Document):
|
|||
frappe.rename_doc("Notification Settings", old_name, new_name, force=True, show_alert=False)
|
||||
|
||||
# set email
|
||||
table = DocType("User")
|
||||
frappe.qb.update(table).where(
|
||||
table.name == new_name
|
||||
).set("email", new_name).run()
|
||||
frappe.db.update("User", new_name, "email", new_name)
|
||||
|
||||
def append_roles(self, *roles):
|
||||
"""Add roles to user"""
|
||||
|
|
@ -706,22 +704,15 @@ def get_email_awaiting(user):
|
|||
if waiting:
|
||||
return waiting
|
||||
else:
|
||||
# TODO
|
||||
frappe.db.sql("""update `tabUser Email`
|
||||
set awaiting_password =0
|
||||
where parent = %(user)s""",{"user":user})
|
||||
user_email_table = DocType("User Email")
|
||||
frappe.qb.update(user_email_table).set(user_email_table.user_email_table, 0).where(user_email_table.parent == user).run()
|
||||
return False
|
||||
|
||||
def ask_pass_update():
|
||||
# update the sys defaults as to awaiting users
|
||||
from frappe.utils import set_default
|
||||
|
||||
doctype = DocType("User Email")
|
||||
users = frappe.qb.from_(doctype).where(doctype.awaiting_password == 1).select(
|
||||
doctype.parent.as_("user")
|
||||
).distinct().run(as_dict=True)
|
||||
|
||||
password_list = [ user.get("user") for user in users ]
|
||||
password_list = frappe.get_all("User Email", filters={"awaiting_password": True}, pluck="parent", distinct=True)
|
||||
set_default("email_user_password", u','.join(password_list))
|
||||
|
||||
def _get_user_for_update_password(key, old_password):
|
||||
|
|
@ -889,8 +880,7 @@ def get_active_users():
|
|||
|
||||
def get_website_users():
|
||||
"""Returns total no. of website users"""
|
||||
return frappe.db.sql("""select count(*) from `tabUser`
|
||||
where enabled = 1 and user_type = 'Website User'""")[0][0]
|
||||
return frappe.db.count("User", filters={"enabled": True, "user_type": "Website User"})
|
||||
|
||||
def get_active_website_users():
|
||||
"""Returns No. of website users who logged in, in the last 3 days"""
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue