Browse Source

Picture URL fixed for google Login

pull/65/head
Sebastian Stehle 9 years ago
parent
commit
d616cfb6d8
  1. 10
      src/Squidex/Config/Identity/GoogleHandler.cs
  2. 15
      src/Squidex/app/shared/components/pipes.ts
  3. 3
      src/Squidex/app/shared/module.ts
  4. 2
      src/Squidex/app/shell/pages/internal/profile-menu.component.html
  5. 4
      src/Squidex/app/shell/pages/internal/profile-menu.component.ts

10
src/Squidex/Config/Identity/GoogleHandler.cs

@ -36,6 +36,16 @@ namespace Squidex.Config.Identity
var pictureUrl = context.User?.Value<string>("picture"); var pictureUrl = context.User?.Value<string>("picture");
if (string.IsNullOrWhiteSpace(pictureUrl))
{
pictureUrl = context.User?["image"]?.Value<string>("url");
if (pictureUrl != null && pictureUrl.EndsWith("?sz=50"))
{
pictureUrl = pictureUrl.Substring(0, pictureUrl.Length - 6);
}
}
if (!string.IsNullOrWhiteSpace(pictureUrl)) if (!string.IsNullOrWhiteSpace(pictureUrl))
{ {
context.Identity.AddClaim(new Claim(SquidexClaimTypes.SquidexPictureUrl, pictureUrl)); context.Identity.AddClaim(new Claim(SquidexClaimTypes.SquidexPictureUrl, pictureUrl));

15
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({ @Pipe({
name: 'userPicture', name: 'userPicture',
pure: false pure: false

3
src/Squidex/app/shared/module.ts

@ -46,6 +46,7 @@ import {
UserEmailRefPipe, UserEmailRefPipe,
UserNamePipe, UserNamePipe,
UserNameRefPipe, UserNameRefPipe,
UserIdPicturePipe,
UserPicturePipe, UserPicturePipe,
UserPictureRefPipe, UserPictureRefPipe,
UserManagementService, UserManagementService,
@ -70,6 +71,7 @@ import {
UserDtoPicture, UserDtoPicture,
UserEmailPipe, UserEmailPipe,
UserEmailRefPipe, UserEmailRefPipe,
UserIdPicturePipe,
UserNamePipe, UserNamePipe,
UserNameRefPipe, UserNameRefPipe,
UserPicturePipe, UserPicturePipe,
@ -85,6 +87,7 @@ import {
UserDtoPicture, UserDtoPicture,
UserEmailPipe, UserEmailPipe,
UserEmailRefPipe, UserEmailRefPipe,
UserIdPicturePipe,
UserNamePipe, UserNamePipe,
UserNameRefPipe, UserNameRefPipe,
UserPicturePipe, UserPicturePipe,

2
src/Squidex/app/shell/pages/internal/profile-menu.component.html

@ -2,7 +2,7 @@
<li class="nav-item dropdown"> <li class="nav-item dropdown">
<span class="nav-link dropdown-toggle" (click)="modalMenu.toggle()"> <span class="nav-link dropdown-toggle" (click)="modalMenu.toggle()">
<span class="user"> <span class="user">
<img class="user-picture" [attr.src]="profilePictureUrl" /> <img class="user-picture" [attr.src]="profileId | userIdPicture" />
</span> </span>
</span> </span>

4
src/Squidex/app/shell/pages/internal/profile-menu.component.ts

@ -29,7 +29,7 @@ export class ProfileMenuComponent implements OnInit, OnDestroy {
public modalMenu = new ModalView(false, true); public modalMenu = new ModalView(false, true);
public profileDisplayName = ''; public profileDisplayName = '';
public profilePictureUrl = ''; public profileId = '';
public isAdmin = false; public isAdmin = false;
@ -52,7 +52,7 @@ export class ProfileMenuComponent implements OnInit, OnDestroy {
const user = this.auth.user; const user = this.auth.user;
if (user) { if (user) {
this.profilePictureUrl = user.pictureUrl; this.profileId = user.id;
this.profileDisplayName = user.displayName; this.profileDisplayName = user.displayName;
this.isAdmin = user.isAdmin; this.isAdmin = user.isAdmin;

Loading…
Cancel
Save