From 4e1f529afc98a6605baae891d217179d6a386f2b Mon Sep 17 00:00:00 2001 From: tidusjar Date: Tue, 3 Nov 2020 22:41:14 +0000 Subject: [PATCH] Added a little profile image, feedback would be good on this change, im not too sure --- src/Ombi/ClientApp/package.json | 1 + src/Ombi/ClientApp/src/app/app.component.html | 2 +- src/Ombi/ClientApp/src/app/auth/IUserLogin.ts | 1 + src/Ombi/ClientApp/src/app/auth/auth.service.ts | 3 ++- .../ClientApp/src/app/my-nav/my-nav.component.html | 3 +++ .../ClientApp/src/app/my-nav/my-nav.component.scss | 10 +++++++++- src/Ombi/ClientApp/src/app/my-nav/my-nav.component.ts | 7 +++++++ .../app/usermanagement/usermanagement.component.html | 2 +- src/Ombi/ClientApp/yarn.lock | 5 +++++ src/Ombi/Controllers/V1/TokenController.cs | 4 ++++ 10 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/Ombi/ClientApp/package.json b/src/Ombi/ClientApp/package.json index 0b3cc9e9b..b795819d9 100644 --- a/src/Ombi/ClientApp/package.json +++ b/src/Ombi/ClientApp/package.json @@ -55,6 +55,7 @@ "rxjs": "^6.5.2", "spinkit": "^1.2.5", "store": "^2.0.12", + "ts-md5": "^1.2.7", "tslib": "^1.10.0", "tslint-angular": "^1.1.2", "zone.js": "~0.10.2" diff --git a/src/Ombi/ClientApp/src/app/app.component.html b/src/Ombi/ClientApp/src/app/app.component.html index 09ec98ef9..5f074e17e 100644 --- a/src/Ombi/ClientApp/src/app/app.component.html +++ b/src/Ombi/ClientApp/src/app/app.component.html @@ -170,7 +170,7 @@
- + diff --git a/src/Ombi/ClientApp/src/app/auth/IUserLogin.ts b/src/Ombi/ClientApp/src/app/auth/IUserLogin.ts index 4a24798d4..e63ac3552 100644 --- a/src/Ombi/ClientApp/src/app/auth/IUserLogin.ts +++ b/src/Ombi/ClientApp/src/app/auth/IUserLogin.ts @@ -12,4 +12,5 @@ export interface ILocalUser { roles: string[]; name: string; username:string; + email: string; } diff --git a/src/Ombi/ClientApp/src/app/auth/auth.service.ts b/src/Ombi/ClientApp/src/app/auth/auth.service.ts index 73e4388ec..3eace43a4 100644 --- a/src/Ombi/ClientApp/src/app/auth/auth.service.ts +++ b/src/Ombi/ClientApp/src/app/auth/auth.service.ts @@ -52,8 +52,9 @@ export class AuthService extends ServiceHelpers { const json = this.jwtHelperService.decodeToken(token); const roles = json.role; const name = json.sub; + const email = json.Email; - const u = { name, roles: [] as string[] }; + const u = { name, roles: [] as string[], email }; if (roles instanceof Array) { u.roles = roles; } else { diff --git a/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.html b/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.html index e95ceda1c..3ab703851 100644 --- a/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.html +++ b/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.html @@ -3,6 +3,9 @@ [attr.role]="(isHandset$ | async) ? 'dialog' : 'navigation'" [mode]="(isHandset$ | async) ? 'over' : 'side'" [opened]="!(isHandset$ | async)"> {{applicationName}} +
+ +
diff --git a/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.scss b/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.scss index ebc723472..8225d8742 100644 --- a/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.scss +++ b/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.scss @@ -87,4 +87,12 @@ /*bottom-nav-link:hover{ background-color:rgb(226, 52, 36) !important; -}*/ \ No newline at end of file +}*/ + +.profile-img-container { + text-align: center;padding-bottom: 15px; +} +.profile-img { + width: 100px; + border-radius: 100%; +} \ No newline at end of file diff --git a/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.ts b/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.ts index 1e2c1988b..9560ec507 100644 --- a/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.ts +++ b/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.ts @@ -7,6 +7,7 @@ import { StorageService } from '../shared/storage/storage-service'; import { SettingsService } from '../services'; import { MatSlideToggleChange } from '@angular/material/slide-toggle'; import { SearchFilter } from './SearchFilter'; +import {Md5} from 'ts-md5/dist/md5'; export enum SearchFilterType { Movie = 1, @@ -31,6 +32,7 @@ export class MyNavComponent implements OnInit { @Input() public applicationName: string; @Input() public username: string; @Input() public isAdmin: string; + @Input() public email: string; @Output() public logoutClick = new EventEmitter(); @Output() public themeChange = new EventEmitter(); public theme: string; @@ -38,6 +40,7 @@ export class MyNavComponent implements OnInit { public navItems: INavBar[]; public searchFilter: SearchFilter; public SearchFilterType = SearchFilterType; + public emailHash: string|Int32Array; constructor(private breakpointObserver: BreakpointObserver, private settingsService: SettingsService, @@ -53,6 +56,10 @@ export class MyNavComponent implements OnInit { tvShows: true } + + const md5 = new Md5(); + this.emailHash = md5.appendStr(this.email).end(); + this.issuesEnabled = await this.settingsService.issueEnabled().toPromise(); const customizationSettings = await this.settingsService.getCustomization().toPromise(); console.log("issues enabled: " + this.issuesEnabled); diff --git a/src/Ombi/ClientApp/src/app/usermanagement/usermanagement.component.html b/src/Ombi/ClientApp/src/app/usermanagement/usermanagement.component.html index 92a98cc76..40c9e9f6c 100644 --- a/src/Ombi/ClientApp/src/app/usermanagement/usermanagement.component.html +++ b/src/Ombi/ClientApp/src/app/usermanagement/usermanagement.component.html @@ -8,7 +8,7 @@
- +
diff --git a/src/Ombi/ClientApp/yarn.lock b/src/Ombi/ClientApp/yarn.lock index 68a8a794f..b80bf9ef1 100644 --- a/src/Ombi/ClientApp/yarn.lock +++ b/src/Ombi/ClientApp/yarn.lock @@ -8713,6 +8713,11 @@ trim-newlines@^1.0.0: dependencies: glob "^7.1.2" +ts-md5@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/ts-md5/-/ts-md5-1.2.7.tgz#b76471fc2fd38f0502441f6c3b9494ed04537401" + integrity sha512-emODogvKGWi1KO1l9c6YxLMBn6CEH3VrH5mVPIyOtxBG52BvV4jP3GWz6bOZCz61nLgBc3ffQYE4+EHfCD+V7w== + ts-node@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-5.0.1.tgz#78e5d1cb3f704de1b641e43b76be2d4094f06f81" diff --git a/src/Ombi/Controllers/V1/TokenController.cs b/src/Ombi/Controllers/V1/TokenController.cs index e133a939d..ad6e8ca23 100644 --- a/src/Ombi/Controllers/V1/TokenController.cs +++ b/src/Ombi/Controllers/V1/TokenController.cs @@ -135,6 +135,10 @@ namespace Ombi.Controllers.V1 new Claim("Id", user.Id) }; claims.AddRange(roles.Select(role => new Claim("role", role))); + if(user.Email.HasValue()) + { + claims.Add(new Claim("Email", user.Email)); + } var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(StartupSingleton.Instance.SecurityKey)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);