diff --git a/src/sentry/auth_v2/endpoints/auth_merge_user_accounts.py b/src/sentry/auth_v2/endpoints/auth_merge_user_accounts.py index d9eb83aa4b6f51..8dc4c04a79c341 100644 --- a/src/sentry/auth_v2/endpoints/auth_merge_user_accounts.py +++ b/src/sentry/auth_v2/endpoints/auth_merge_user_accounts.py @@ -7,13 +7,14 @@ from sentry.api.base import control_silo_endpoint from sentry.api.paginator import OffsetPaginator from sentry.api.serializers import serialize +from sentry.api.serializers.rest_framework.base import CamelSnakeSerializer from sentry.auth_v2.endpoints.base import AuthV2Endpoint from sentry.users.api.serializers.user import UserSerializerWithOrgMemberships from sentry.users.models.user import User from sentry.users.models.user_merge_verification_code import UserMergeVerificationCode -class AuthMergeUserAccountsValidator(serializers.Serializer): +class AuthMergeUserAccountsValidator(CamelSnakeSerializer): verification_code = serializers.CharField(required=True) ids_to_merge = serializers.ListField(child=serializers.IntegerField(), required=True) ids_to_delete = serializers.ListField(child=serializers.IntegerField(), required=True) @@ -104,4 +105,4 @@ def post(self, request: Request) -> Response: user.merge_to(primary_user) user.delete() - return Response("Successfully merged user accounts.") + return Response(serialize([primary_user], request.user, UserSerializerWithOrgMemberships())) diff --git a/src/sentry/users/api/serializers/user.py b/src/sentry/users/api/serializers/user.py index bdf45bff1da35d..7f99578e1d1570 100644 --- a/src/sentry/users/api/serializers/user.py +++ b/src/sentry/users/api/serializers/user.py @@ -430,19 +430,19 @@ def get_attrs( memberships = OrganizationMemberMapping.objects.filter( user_id__in={u.id for u in item_list} ).values_list("user_id", "organization_id", named=True) - active_org_id_to_name = dict( + active_org_id_to_slug = dict( OrganizationMapping.objects.filter( organization_id__in={m.organization_id for m in memberships}, status=OrganizationStatus.ACTIVE, - ).values_list("organization_id", "name") + ).values_list("organization_id", "slug") ) - active_organization_ids = active_org_id_to_name.keys() + active_organization_ids = active_org_id_to_slug.keys() - user_org_memberships: DefaultDict[int, list[str]] = defaultdict(list) + user_org_memberships: DefaultDict[int, set[str]] = defaultdict(set) for membership in memberships: if membership.organization_id in active_organization_ids: - user_org_memberships[membership.user_id].append( - active_org_id_to_name[membership.organization_id] + user_org_memberships[membership.user_id].add( + active_org_id_to_slug[membership.organization_id] ) for item in item_list: attrs[item]["organizations"] = user_org_memberships[item.id]