diff --git a/src/Squidex/Config/Identity/GoogleHandler.cs b/src/Squidex/Config/Identity/GoogleHandler.cs index 9f1516e09..e50bdf339 100644 --- a/src/Squidex/Config/Identity/GoogleHandler.cs +++ b/src/Squidex/Config/Identity/GoogleHandler.cs @@ -36,6 +36,16 @@ namespace Squidex.Config.Identity var pictureUrl = context.User?.Value("picture"); + if (string.IsNullOrWhiteSpace(pictureUrl)) + { + pictureUrl = context.User?["image"]?.Value("url"); + + if (pictureUrl != null && pictureUrl.EndsWith("?sz=50")) + { + pictureUrl = pictureUrl.Substring(0, pictureUrl.Length - 6); + } + } + if (!string.IsNullOrWhiteSpace(pictureUrl)) { context.Identity.AddClaim(new Claim(SquidexClaimTypes.SquidexPictureUrl, pictureUrl)); diff --git a/src/Squidex/app/shared/components/pipes.ts b/src/Squidex/app/shared/components/pipes.ts index 0b0afa044..759b33bcb 100644 --- a/src/Squidex/app/shared/components/pipes.ts +++ b/src/Squidex/app/shared/components/pipes.ts @@ -139,6 +139,21 @@ export class UserDtoPicture implements PipeTransform { } } +@Pipe({ + name: 'userIdPicture', + pure: false +}) +export class UserIdPicturePipe implements PipeTransform { + constructor( + private readonly apiUrl: ApiUrlConfig + ) { + } + + public transform(userId: string): string | null { + return this.apiUrl.buildUrl(`api/users/${userId}/picture`); + } +} + @Pipe({ name: 'userPicture', pure: false diff --git a/src/Squidex/app/shared/module.ts b/src/Squidex/app/shared/module.ts index b2358d815..681a859ff 100644 --- a/src/Squidex/app/shared/module.ts +++ b/src/Squidex/app/shared/module.ts @@ -46,6 +46,7 @@ import { UserEmailRefPipe, UserNamePipe, UserNameRefPipe, + UserIdPicturePipe, UserPicturePipe, UserPictureRefPipe, UserManagementService, @@ -70,6 +71,7 @@ import { UserDtoPicture, UserEmailPipe, UserEmailRefPipe, + UserIdPicturePipe, UserNamePipe, UserNameRefPipe, UserPicturePipe, @@ -85,6 +87,7 @@ import { UserDtoPicture, UserEmailPipe, UserEmailRefPipe, + UserIdPicturePipe, UserNamePipe, UserNameRefPipe, UserPicturePipe, diff --git a/src/Squidex/app/shell/pages/internal/profile-menu.component.html b/src/Squidex/app/shell/pages/internal/profile-menu.component.html index 71fdc6ea8..ae212e813 100644 --- a/src/Squidex/app/shell/pages/internal/profile-menu.component.html +++ b/src/Squidex/app/shell/pages/internal/profile-menu.component.html @@ -2,7 +2,7 @@