fix: escape arguments
This commit is contained in:
@@ -265,13 +265,16 @@ def on_session_creation(login_manager):
|
|||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def search_users(start=0, text=""):
|
def search_users(start: int = 0, text: str=""):
|
||||||
or_filters = get_or_filters(text)
|
start = cint(start)
|
||||||
count = len(get_users(or_filters, 0, 900000000, text))
|
search_text = frappe.db.escape(f"%{text}%")
|
||||||
users = get_users(or_filters, start, 24, text)
|
|
||||||
|
or_filters = get_or_filters(search_text)
|
||||||
|
count = len(get_users(or_filters, 0, 900000000))
|
||||||
|
users = get_users(or_filters, start, 24)
|
||||||
user_details = get_user_details(users)
|
user_details = get_user_details(users)
|
||||||
|
|
||||||
return {"user_details": user_details, "start": cint(start) + 24, "count": count}
|
return {"user_details": user_details, "start": start + 24, "count": count}
|
||||||
|
|
||||||
|
|
||||||
def get_or_filters(text):
|
def get_or_filters(text):
|
||||||
@@ -290,17 +293,17 @@ def get_or_filters(text):
|
|||||||
or_filters = []
|
or_filters = []
|
||||||
if text:
|
if text:
|
||||||
for field in user_fields:
|
for field in user_fields:
|
||||||
or_filters.append(f"u.{field} like '%{text}%'")
|
or_filters.append(f"u.{field} like {text}")
|
||||||
for field in education_fields:
|
for field in education_fields:
|
||||||
or_filters.append(f"ed.{field} like '%{text}%'")
|
or_filters.append(f"ed.{field} like {text}")
|
||||||
for field in work_fields:
|
for field in work_fields:
|
||||||
or_filters.append(f"we.{field} like '%{text}%'")
|
or_filters.append(f"we.{field} like {text}")
|
||||||
for field in certification_fields:
|
for field in certification_fields:
|
||||||
or_filters.append(f"c.{field} like '%{text}%'")
|
or_filters.append(f"c.{field} like {text}")
|
||||||
|
|
||||||
or_filters.append(f"s.skill_name like '%{text}%'")
|
or_filters.append(f"s.skill_name like {text}")
|
||||||
or_filters.append(f"pf.function like '%{text}%'")
|
or_filters.append(f"pf.function like {text}")
|
||||||
or_filters.append(f"pi.industry like '%{text}%'")
|
or_filters.append(f"pi.industry like {text}")
|
||||||
|
|
||||||
return "AND ({})".format(" OR ".join(or_filters)) if or_filters else ""
|
return "AND ({})".format(" OR ".join(or_filters)) if or_filters else ""
|
||||||
|
|
||||||
@@ -319,8 +322,7 @@ def get_user_details(users):
|
|||||||
return user_details
|
return user_details
|
||||||
|
|
||||||
|
|
||||||
def get_users(or_filters, start, page_length, text):
|
def get_users(or_filters, start, page_length):
|
||||||
# nosemgrep
|
|
||||||
users = frappe.db.sql(
|
users = frappe.db.sql(
|
||||||
"""
|
"""
|
||||||
SELECT DISTINCT u.name
|
SELECT DISTINCT u.name
|
||||||
|
|||||||
Reference in New Issue
Block a user