Merge branch 'develop' into socket_io-refactor
This commit is contained in:
commit
dbed3e4788
7 changed files with 26 additions and 13 deletions
|
|
@ -1432,6 +1432,8 @@ def get_doc_hooks():
|
|||
|
||||
@request_cache
|
||||
def _load_app_hooks(app_name: str | None = None):
|
||||
import types
|
||||
|
||||
hooks = {}
|
||||
apps = [app_name] if app_name else get_installed_apps(sort=True)
|
||||
|
||||
|
|
@ -1447,9 +1449,13 @@ def _load_app_hooks(app_name: str | None = None):
|
|||
if not request:
|
||||
raise SystemExit
|
||||
raise
|
||||
for key in dir(app_hooks):
|
||||
|
||||
def _is_valid_hook(obj):
|
||||
return not isinstance(obj, (types.ModuleType, types.FunctionType, type))
|
||||
|
||||
for key, value in inspect.getmembers(app_hooks, predicate=_is_valid_hook):
|
||||
if not key.startswith("_"):
|
||||
append_hook(hooks, key, getattr(app_hooks, key))
|
||||
append_hook(hooks, key, value)
|
||||
return hooks
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ from frappe import _
|
|||
from frappe.auth import SAFE_HTTP_METHODS, UNSAFE_HTTP_METHODS, HTTPRequest
|
||||
from frappe.core.doctype.comment.comment import update_comments_in_parent_after_request
|
||||
from frappe.middlewares import StaticDataMiddleware
|
||||
from frappe.utils import get_site_name, sanitize_html
|
||||
from frappe.utils import cint, get_site_name, sanitize_html
|
||||
from frappe.utils.error import make_error_snapshot
|
||||
from frappe.website.serve import get_response
|
||||
|
||||
|
|
@ -112,7 +112,7 @@ def init_request(request):
|
|||
else:
|
||||
frappe.connect(set_admin_as_user=False)
|
||||
|
||||
request.max_content_length = frappe.local.conf.get("max_file_size") or 10 * 1024 * 1024
|
||||
request.max_content_length = cint(frappe.local.conf.get("max_file_size")) or 10 * 1024 * 1024
|
||||
|
||||
make_form_dict(request)
|
||||
|
||||
|
|
|
|||
|
|
@ -101,8 +101,8 @@ class File(Document):
|
|||
if not self.attached_to_doctype:
|
||||
return
|
||||
|
||||
if self.attached_to_name and not isinstance(self.attached_to_name, str):
|
||||
frappe.throw(_("Attached To Name must be a string"), TypeError)
|
||||
if not self.attached_to_name or not isinstance(self.attached_to_name, (str, int)):
|
||||
frappe.throw(_("Attached To Name must be a string or an integer"), frappe.ValidationError)
|
||||
|
||||
if not self.attached_to_field:
|
||||
return
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ class TestBase64File(FrappeTestCase):
|
|||
"doctype": "File",
|
||||
"file_name": "test_base64.txt",
|
||||
"attached_to_doctype": self.attached_to_doctype,
|
||||
"attached_to_docname": self.attached_to_docname,
|
||||
"attached_to_name": self.attached_to_docname,
|
||||
"content": self.test_content,
|
||||
"decode": True,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -206,11 +206,16 @@ def search_widget(
|
|||
)
|
||||
order_by = f"_relevance, {order_by}"
|
||||
|
||||
ptype = "select" if frappe.only_has_select_perm(doctype) else "read"
|
||||
ignore_permissions = (
|
||||
True
|
||||
if doctype == "DocType"
|
||||
else (cint(ignore_user_permissions) and has_permission(doctype, ptype=ptype))
|
||||
else (
|
||||
cint(ignore_user_permissions)
|
||||
and has_permission(
|
||||
doctype,
|
||||
ptype="select" if frappe.only_has_select_perm(doctype) else "read",
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
values = frappe.get_list(
|
||||
|
|
|
|||
|
|
@ -455,10 +455,10 @@ class DatabaseQuery:
|
|||
)
|
||||
|
||||
def check_read_permission(self, doctype):
|
||||
ptype = "select" if frappe.only_has_select_perm(doctype) else "read"
|
||||
|
||||
if not self.flags.ignore_permissions and not frappe.has_permission(
|
||||
doctype, ptype=ptype, parent_doctype=self.doctype
|
||||
doctype,
|
||||
ptype="select" if frappe.only_has_select_perm(doctype) else "read",
|
||||
parent_doctype=self.doctype,
|
||||
):
|
||||
frappe.flags.error_message = _("Insufficient Permission for {0}").format(frappe.bold(doctype))
|
||||
raise frappe.PermissionError(doctype)
|
||||
|
|
|
|||
|
|
@ -61,4 +61,6 @@ class DiscussionReply(Document):
|
|||
|
||||
@frappe.whitelist()
|
||||
def delete_message(reply_name):
|
||||
frappe.delete_doc("Discussion Reply", reply_name, ignore_permissions=True)
|
||||
owner = frappe.db.get_value("Discussion Reply", reply_name, "owner")
|
||||
if owner == frappe.session.user:
|
||||
frappe.delete_doc("Discussion Reply", reply_name)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue