fix: Restrict socket data to respective users after commit
Fix conditions to bother only those who asked for the data: - Clear permissions cache only for updated users' data - Defer appropriate events until commit to avoid ghost events - Remove event unused by desk (and other apps)
This commit is contained in:
parent
16bd7a2d0b
commit
c3c1848b2a
5 changed files with 9 additions and 11 deletions
|
|
@ -139,6 +139,7 @@ class Importer:
|
|||
"skipping": True,
|
||||
"data_import": self.data_import.name,
|
||||
},
|
||||
user=frappe.session.user,
|
||||
)
|
||||
continue
|
||||
|
||||
|
|
@ -166,6 +167,7 @@ class Importer:
|
|||
"row_indexes": row_indexes,
|
||||
"eta": eta,
|
||||
},
|
||||
user=frappe.session.user,
|
||||
)
|
||||
|
||||
create_import_log(
|
||||
|
|
|
|||
|
|
@ -18,11 +18,11 @@ class UserPermission(Document):
|
|||
|
||||
def on_update(self):
|
||||
frappe.cache().hdel("user_permissions", self.user)
|
||||
frappe.publish_realtime("update_user_permissions")
|
||||
frappe.publish_realtime("update_user_permissions", user=self.user, after_commit=True)
|
||||
|
||||
def on_trash(self): # pylint: disable=no-self-use
|
||||
def on_trash(self):
|
||||
frappe.cache().hdel("user_permissions", self.user)
|
||||
frappe.publish_realtime("update_user_permissions")
|
||||
frappe.publish_realtime("update_user_permissions", user=self.user, after_commit=True)
|
||||
|
||||
def validate_user_permission(self):
|
||||
"""checks for duplicate user permission records"""
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ def mark_as_read(docname):
|
|||
|
||||
@frappe.whitelist()
|
||||
def trigger_indicator_hide():
|
||||
frappe.publish_realtime("indicator_hide", user=frappe.session.user)
|
||||
frappe.publish_realtime("indicator_hide", user=frappe.session.user, after_commit=True)
|
||||
|
||||
|
||||
def set_notifications_as_unseen(user):
|
||||
|
|
|
|||
|
|
@ -486,12 +486,6 @@ class EmailAccount(Document):
|
|||
else:
|
||||
frappe.db.commit()
|
||||
|
||||
# notify if user is linked to account
|
||||
if len(inbound_mails) > 0 and not frappe.local.flags.in_test:
|
||||
frappe.publish_realtime(
|
||||
"new_email", {"account": self.email_account_name, "number": len(inbound_mails)}
|
||||
)
|
||||
|
||||
if exceptions:
|
||||
raise Exception(frappe.as_json(exceptions))
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,9 @@ class EnergyPointLog(Document):
|
|||
def after_insert(self):
|
||||
alert_dict = get_alert_dict(self)
|
||||
if alert_dict:
|
||||
frappe.publish_realtime("energy_point_alert", message=alert_dict, user=self.user)
|
||||
frappe.publish_realtime(
|
||||
"energy_point_alert", message=alert_dict, user=self.user, after_commit=True
|
||||
)
|
||||
|
||||
frappe.cache().hdel("energy_points", self.user)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue