Skip to content
Snippets Groups Projects
Unverified Commit f8821249 authored by Debdut Chakraborty's avatar Debdut Chakraborty Committed by GitHub
Browse files

fix: disable deletion for federated users (#32852)

parent 19824bde
No related branches found
No related tags found
No related merge requests found
---
'@rocket.chat/meteor': patch
---
Federated users can no longer be deleted.
import { api } from '@rocket.chat/core-services';
import type { IUser } from '@rocket.chat/core-typings';
import { isUserFederated, type IUser } from '@rocket.chat/core-typings';
import {
Integrations,
FederationServers,
......@@ -12,6 +12,7 @@ import {
ReadReceipts,
LivechatUnitMonitors,
ModerationReports,
MatrixBridgedUser,
} from '@rocket.chat/models';
import { Meteor } from 'meteor/meteor';
......@@ -46,6 +47,19 @@ export async function deleteUser(userId: string, confirmRelinquish = false, dele
return;
}
if (isUserFederated(user)) {
throw new Meteor.Error('error-not-allowed', 'Deleting federated, external user is not allowed', {
method: 'deleteUser',
});
}
const remoteUser = await MatrixBridgedUser.getExternalUserIdByLocalUserId(userId);
if (remoteUser) {
throw new Meteor.Error('error-not-allowed', 'User participated in federation, this user can only be deactivated permanently', {
method: 'deleteUser',
});
}
const subscribedRooms = await getSubscribedRoomsForUserWithDetails(userId);
if (shouldRemoveOrChangeOwner(subscribedRooms) && !confirmRelinquish) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment