Skip to content

Commit c98c060

Browse files
authored
revert: Process Base64 Avatar Image (calcom#22185)
* Revert "chore: add test for updateProfilePhotoGoogle (calcom#22169)" This reverts commit 67032dd. * Revert "fix: Process base64 avatar image (calcom#22165)" This reverts commit d8d8bc4.
1 parent 4963d24 commit c98c060

9 files changed

Lines changed: 23 additions & 165 deletions

File tree

packages/app-store/_utils/oauth/updateProfilePhotoGoogle.test.ts

Lines changed: 0 additions & 114 deletions
This file was deleted.

packages/app-store/_utils/oauth/updateProfilePhotoGoogle.ts

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,16 @@
11
import { oauth2_v2 } from "@googleapis/oauth2";
22
import type { OAuth2Client } from "googleapis-common";
33

4-
import { isBase64Image } from "@calcom/lib/isBase64Image";
54
import logger from "@calcom/lib/logger";
6-
import { uploadAvatar } from "@calcom/lib/server/avatar";
75
import { UserRepository } from "@calcom/lib/server/repository/user";
8-
import { resizeBase64Image } from "@calcom/lib/server/resizeBase64Image";
96

107
export async function updateProfilePhotoGoogle(oAuth2Client: OAuth2Client, userId: number) {
118
try {
129
const oauth2 = new oauth2_v2.Oauth2({ auth: oAuth2Client });
1310
const userDetails = await oauth2.userinfo.get();
14-
const avatarUrl = userDetails.data?.picture;
15-
if (!avatarUrl) {
16-
return;
11+
if (userDetails.data?.picture) {
12+
await UserRepository.updateAvatar({ id: userId, avatarUrl: userDetails.data.picture });
1713
}
18-
19-
// Handle base64 data
20-
if (isBase64Image(avatarUrl)) {
21-
const resizedAvatarUrl = await uploadAvatar({
22-
avatar: await resizeBase64Image(avatarUrl),
23-
userId,
24-
});
25-
await UserRepository.updateAvatar({ id: userId, avatarUrl: resizedAvatarUrl });
26-
return;
27-
}
28-
29-
await UserRepository.updateAvatar({ id: userId, avatarUrl });
3014
} catch (error) {
3115
logger.error("Error updating avatarUrl from google calendar connect", error);
3216
}

packages/app-store/googlecalendar/api/callback.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,7 @@ import type { NextApiRequest, NextApiResponse } from "next";
44

55
import GoogleCalendarService from "@calcom/app-store/googlecalendar/lib/CalendarService";
66
import { renewSelectedCalendarCredentialId } from "@calcom/lib/connectedCalendar";
7-
import {
8-
GOOGLE_CALENDAR_SCOPES,
9-
SCOPE_USERINFO_PROFILE,
10-
WEBAPP_URL,
11-
WEBAPP_URL_FOR_OAUTH,
12-
} from "@calcom/lib/constants";
7+
import { GOOGLE_CALENDAR_SCOPES, WEBAPP_URL, WEBAPP_URL_FOR_OAUTH } from "@calcom/lib/constants";
138
import { getSafeRedirectUrl } from "@calcom/lib/getSafeRedirectUrl";
149
import { HttpError } from "@calcom/lib/http-error";
1510
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
@@ -19,7 +14,6 @@ import { Prisma } from "@calcom/prisma/client";
1914

2015
import getInstalledAppPath from "../../_utils/getInstalledAppPath";
2116
import { decodeOAuthState } from "../../_utils/oauth/decodeOAuthState";
22-
import { updateProfilePhotoGoogle } from "../../_utils/oauth/updateProfilePhotoGoogle";
2317
import { getGoogleAppKeys } from "../lib/getGoogleAppKeys";
2418

2519
async function getHandler(req: NextApiRequest, res: NextApiResponse) {
@@ -101,9 +95,10 @@ async function getHandler(req: NextApiRequest, res: NextApiResponse) {
10195
}
10296

10397
// Only attempt to update the user's profile photo if the user has granted the required scope
104-
if (grantedScopes.includes(SCOPE_USERINFO_PROFILE)) {
105-
await updateProfilePhotoGoogle(oAuth2Client, req.session.user.id);
106-
}
98+
// TODO: Use the avatarUrl when setting the profile picture
99+
// if (grantedScopes.includes(SCOPE_USERINFO_PROFILE)) {
100+
// await updateProfilePhotoGoogle(oAuth2Client, req.session.user.id);
101+
// }
107102

108103
const selectedCalendarWhereUnique = {
109104
userId: req.session.user.id,

packages/lib/isBase64Image.ts

Lines changed: 0 additions & 12 deletions
This file was deleted.

packages/trpc/server/routers/viewer/me/updateProfile.handler.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import { StripeBillingService } from "@calcom/features/ee/billing/stripe-billlin
99
import { FeaturesRepository } from "@calcom/features/flags/features.repository";
1010
import hasKeyInMetadata from "@calcom/lib/hasKeyInMetadata";
1111
import { HttpError } from "@calcom/lib/http-error";
12-
import { isBase64Image } from "@calcom/lib/isBase64Image";
1312
import logger from "@calcom/lib/logger";
1413
import { uploadAvatar } from "@calcom/lib/server/avatar";
1514
import { checkUsername } from "@calcom/lib/server/checkUsername";
@@ -153,7 +152,7 @@ export const updateProfileHandler = async ({ ctx, input }: UpdateProfileOptions)
153152
}
154153

155154
// if defined AND a base 64 string, upload and update the avatar URL
156-
if (input.avatarUrl && isBase64Image(input.avatarUrl)) {
155+
if (input.avatarUrl && input.avatarUrl.startsWith("data:image/png;base64,")) {
157156
data.avatarUrl = await uploadAvatar({
158157
avatar: await resizeBase64Image(input.avatarUrl),
159158
userId: user.id,

packages/trpc/server/routers/viewer/organizations/update.handler.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import type { Prisma } from "@prisma/client";
22

33
import { IS_TEAM_BILLING_ENABLED } from "@calcom/lib/constants";
44
import { getMetadataHelpers } from "@calcom/lib/getMetadataHelpers";
5-
import { isBase64Image } from "@calcom/lib/isBase64Image";
65
import { uploadLogo } from "@calcom/lib/server/avatar";
76
import { isOrganisationAdmin } from "@calcom/lib/server/queries/organisations";
87
import { resizeBase64Image } from "@calcom/lib/server/resizeBase64Image";
@@ -162,7 +161,12 @@ export const updateHandler = async ({ ctx, input }: UpdateOptions) => {
162161
metadata: mergeMetadata({ ...input.metadata }),
163162
};
164163

165-
if (input.banner && isBase64Image(input.banner)) {
164+
if (
165+
input.banner &&
166+
(input.banner.startsWith("data:image/png;base64,") ||
167+
input.banner.startsWith("data:image/jpeg;base64,") ||
168+
input.banner.startsWith("data:image/jpg;base64,"))
169+
) {
166170
const banner = await resizeBase64Image(input.banner, { maxSize: 1500 });
167171
data.bannerUrl = await uploadLogo({
168172
logo: banner,
@@ -173,7 +177,12 @@ export const updateHandler = async ({ ctx, input }: UpdateOptions) => {
173177
data.bannerUrl = null;
174178
}
175179

176-
if (input.logoUrl && isBase64Image(input.logoUrl)) {
180+
if (
181+
input.logoUrl &&
182+
(input.logoUrl.startsWith("data:image/png;base64,") ||
183+
input.logoUrl.startsWith("data:image/jpeg;base64,") ||
184+
input.logoUrl.startsWith("data:image/jpg;base64,"))
185+
) {
177186
data.logoUrl = await uploadLogo({
178187
logo: await resizeBase64Image(input.logoUrl),
179188
teamId: currentOrgId,

packages/trpc/server/routers/viewer/organizations/updateUser.handler.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import type { Prisma, PrismaPromise, User, Membership, Profile } from "@prisma/c
22

33
import { ensureOrganizationIsReviewed } from "@calcom/ee/organizations/lib/ensureOrganizationIsReviewed";
44
import { checkAdminOrOwner } from "@calcom/features/auth/lib/checkAdminOrOwner";
5-
import { isBase64Image } from "@calcom/lib/isBase64Image";
65
import { uploadAvatar } from "@calcom/lib/server/avatar";
76
import { checkRegularUsername } from "@calcom/lib/server/checkRegularUsername";
87
import { isOrganisationAdmin, isOrganisationOwner } from "@calcom/lib/server/queries/organisations";
@@ -120,7 +119,7 @@ export const updateUserHandler = async ({ ctx, input }: UpdateUserOptions) => {
120119
timeZone: input.timeZone,
121120
};
122121

123-
if (input.avatar && isBase64Image(input.avatar)) {
122+
if (input.avatar && input.avatar.startsWith("data:image/png;base64,")) {
124123
const avatar = await resizeBase64Image(input.avatar);
125124
data.avatarUrl = await uploadAvatar({
126125
avatar,

packages/trpc/server/routers/viewer/teams/create.handler.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { generateTeamCheckoutSession } from "@calcom/features/ee/teams/lib/payments";
22
import { IS_TEAM_BILLING_ENABLED, WEBAPP_URL } from "@calcom/lib/constants";
3-
import { isBase64Image } from "@calcom/lib/isBase64Image";
43
import { uploadLogo } from "@calcom/lib/server/avatar";
54
import { ProfileRepository } from "@calcom/lib/server/repository/profile";
65
import { resizeBase64Image } from "@calcom/lib/server/resizeBase64Image";
@@ -107,7 +106,7 @@ export const createHandler = async ({ ctx, input }: CreateOptions) => {
107106
},
108107
});
109108
// Upload logo, create doesn't allow logo removal
110-
if (input.logo && isBase64Image(input.logo)) {
109+
if (input.logo && input.logo.startsWith("data:image/png;base64,")) {
111110
const logoUrl = await uploadLogo({
112111
logo: await resizeBase64Image(input.logo),
113112
teamId: createdTeam.id,

packages/trpc/server/routers/viewer/teams/update.handler.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { getOrgFullOrigin } from "@calcom/ee/organizations/lib/orgDomains";
44
import { IS_TEAM_BILLING_ENABLED } from "@calcom/lib/constants";
55
import type { IntervalLimit } from "@calcom/lib/intervalLimits/intervalLimitSchema";
66
import { validateIntervalLimitOrder } from "@calcom/lib/intervalLimits/validateIntervalLimitOrder";
7-
import { isBase64Image } from "@calcom/lib/isBase64Image";
87
import { uploadLogo } from "@calcom/lib/server/avatar";
98
import { isTeamAdmin } from "@calcom/lib/server/queries/teams";
109
import { prisma } from "@calcom/prisma";
@@ -71,7 +70,7 @@ export const updateHandler = async ({ ctx, input }: UpdateOptions) => {
7170
rrTimestampBasis: input.rrTimestampBasis,
7271
};
7372

74-
if (input.logo && isBase64Image(input.logo)) {
73+
if (input.logo && input.logo.startsWith("data:image/png;base64,")) {
7574
data.logoUrl = await uploadLogo({ teamId: input.id, logo: input.logo });
7675
} else if (typeof input.logo !== "undefined" && !input.logo) {
7776
data.logoUrl = null;

0 commit comments

Comments
 (0)