refactor: simplify fetching of readable records (#17417)
- remove encoding, use cstr directly - remove falsy values by default None, empty string.
This commit is contained in:
parent
44117f6702
commit
b5128a35fd
5 changed files with 12 additions and 20 deletions
|
|
@ -21,7 +21,7 @@ from frappe.social.doctype.energy_point_settings.energy_point_settings import (
|
|||
is_energy_point_enabled,
|
||||
)
|
||||
from frappe.translate import get_lang_dict
|
||||
from frappe.utils import add_user_info, get_time_zone
|
||||
from frappe.utils import add_user_info, cstr, get_time_zone
|
||||
from frappe.utils.change_log import get_versions
|
||||
from frappe.website.doctype.web_page_view.web_page_view import is_tracking_enabled
|
||||
|
||||
|
|
@ -142,6 +142,10 @@ def get_allowed_reports(cache=False):
|
|||
return get_user_pages_or_reports("Report", cache=cache)
|
||||
|
||||
|
||||
def get_allowed_report_names(cache=False) -> set[str]:
|
||||
return {cstr(report) for report in get_allowed_reports(cache).keys() if report}
|
||||
|
||||
|
||||
def get_user_pages_or_reports(parent, cache=False):
|
||||
_cache = frappe.cache()
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ from frappe.core.doctype.doctype.doctype import validate_series
|
|||
from frappe.model.document import Document
|
||||
from frappe.model.naming import NamingSeries
|
||||
from frappe.permissions import get_doctypes_with_read
|
||||
from frappe.utils import cint
|
||||
|
||||
|
||||
class NamingSeriesNotSetError(frappe.ValidationError):
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import json
|
|||
|
||||
import frappe
|
||||
from frappe import _
|
||||
from frappe.boot import get_allowed_reports
|
||||
from frappe.boot import get_allowed_report_names
|
||||
from frappe.config import get_modules_from_all_apps_for_user
|
||||
from frappe.model.document import Document
|
||||
from frappe.model.naming import append_number_if_name_exists
|
||||
|
|
@ -40,10 +40,7 @@ def get_permission_query_conditions(user):
|
|||
allowed_doctypes = [
|
||||
frappe.db.escape(doctype) for doctype in frappe.permissions.get_doctypes_with_read()
|
||||
]
|
||||
allowed_reports = [
|
||||
frappe.db.escape(key) if type(key) == str else key.encode("UTF8")
|
||||
for key in get_allowed_reports()
|
||||
]
|
||||
allowed_reports = [frappe.db.escape(report) for report in get_allowed_report_names()]
|
||||
allowed_modules = [
|
||||
frappe.db.escape(module.get("module_name")) for module in get_modules_from_all_apps_for_user()
|
||||
]
|
||||
|
|
@ -83,10 +80,7 @@ def has_permission(doc, ptype, user):
|
|||
return True
|
||||
|
||||
if doc.chart_type == "Report":
|
||||
allowed_reports = [
|
||||
key if type(key) == str else key.encode("UTF8") for key in get_allowed_reports()
|
||||
]
|
||||
if doc.report_name in allowed_reports:
|
||||
if doc.report_name in get_allowed_report_names():
|
||||
return True
|
||||
else:
|
||||
allowed_doctypes = frappe.permissions.get_doctypes_with_read()
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
import frappe
|
||||
from frappe import _
|
||||
from frappe.boot import get_allowed_reports
|
||||
from frappe.boot import get_allowed_report_names
|
||||
from frappe.config import get_modules_from_all_apps_for_user
|
||||
from frappe.model.document import Document
|
||||
from frappe.model.naming import append_number_if_name_exists
|
||||
|
|
@ -91,10 +91,7 @@ def has_permission(doc, ptype, user):
|
|||
return True
|
||||
|
||||
if doc.type == "Report":
|
||||
allowed_reports = [
|
||||
key if type(key) == str else key.encode("UTF8") for key in get_allowed_reports()
|
||||
]
|
||||
if doc.report_name in allowed_reports:
|
||||
if doc.report_name in get_allowed_report_names():
|
||||
return True
|
||||
else:
|
||||
allowed_doctypes = tuple(frappe.permissions.get_doctypes_with_read())
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import frappe
|
|||
import frappe.share
|
||||
from frappe import _, msgprint
|
||||
from frappe.query_builder import DocType
|
||||
from frappe.utils import cint
|
||||
from frappe.utils import cint, cstr
|
||||
|
||||
rights = (
|
||||
"select",
|
||||
|
|
@ -360,9 +360,7 @@ def has_controller_permissions(doc, ptype, user=None):
|
|||
|
||||
|
||||
def get_doctypes_with_read():
|
||||
return list(
|
||||
{p.parent if type(p.parent) == str else p.parent.encode("UTF8") for p in get_valid_perms()}
|
||||
)
|
||||
return list({cstr(p.parent) for p in get_valid_perms() if p.parent})
|
||||
|
||||
|
||||
def get_valid_perms(doctype=None, user=None):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue