perf: eliminate request for user permissions

This is ALWAYS required, then it can just be part of boot. Eliminates 1
unnecessary request.
This commit is contained in:
Ankush Menat 2023-07-16 11:51:07 +05:30
parent ba311a3ec8
commit b919618032
4 changed files with 14 additions and 1 deletions

View file

@ -60,6 +60,10 @@ class UserPermission(Document):
frappe.throw(_("{0} has already assigned default value for {1}.").format(ref_link, self.allow))
def send_user_permissions(bootinfo):
bootinfo.user["user_permissions"] = get_user_permissions()
@frappe.whitelist()
def get_user_permissions(user=None):
"""Get all users permissions for the user as a dict of doctype"""

View file

@ -427,4 +427,5 @@ after_job = [
extend_bootinfo = [
"frappe.utils.telemetry.add_bootinfo",
"frappe.core.doctype.user_permission.user_permission.send_user_permissions",
]

View file

@ -130,4 +130,12 @@ frappe.defaults = {
}
});
},
load_user_permission_from_boot: function () {
if (frappe.boot.user.user_permissions) {
this._user_permissions = Object.assign({}, frappe.boot.user.user_permissions);
} else {
frappe.defaults.update_user_permissions();
}
},
};

View file

@ -277,7 +277,7 @@ frappe.Application = class Application {
}
load_user_permissions() {
frappe.defaults.update_user_permissions();
frappe.defaults.load_user_permission_from_boot();
frappe.realtime.on(
"update_user_permissions",