This commit is contained in:
Timothy Jaeryang Baek committed 2026-08-10 23:13:10 -06:00
1 parent de289eb1aa
commit ce3c175e26
7 files changed
+109 -40

No files matched your search

+14 -14
View File
@@ -36,7 +36,6 @@ from open_webui.models.access_grants import AccessGrants
from open_webui.models.knowledge import Knowledges
from open_webui.models.models import Models
from open_webui.models.tools import Tools
from open_webui.socket.main import disconnect_user_sessions
from open_webui.utils.access_control import get_permissions, has_permission
from open_webui.utils.auth import (
get_admin_user,
@@ -990,10 +989,19 @@ async def update_user_by_id(
updated_user = user
if updated_user:
# If the role changed, disconnect all socket sessions so stale
# privileges cached in SESSION_POOL are invalidated.
if updated_user.role != user.role:
await disconnect_user_sessions(user_id)
updated_fields = [field for field in update_data.keys() if field != 'role']
role_changed = updated_user.role != user.role
if updated_fields:
await publish_event(
request,
EVENTS.USER_UPDATED,
actor=session_user,
subject_id=user_id,
data={'updated_fields': updated_fields},
)
if role_changed:
await publish_event(
request,
EVENTS.USER_ROLE_UPDATED,
@@ -1001,14 +1009,7 @@ async def update_user_by_id(
subject_id=user_id,
data={'role': updated_user.role},
)
else:
await publish_event(
request,
EVENTS.USER_UPDATED,
actor=session_user,
subject_id=user_id,
data={'updated_fields': list(update_data.keys())},
)
if form_data.password:
await publish_event(
request,
@@ -1061,7 +1062,6 @@ async def delete_user_by_id(
result = await Auths.delete_auth_by_id(user_id, db=db)
if result:
await disconnect_user_sessions(user_id)
await publish_event(
request,
EVENTS.USER_DELETED,