diff --git a/CHANGELOG.md b/CHANGELOG.md index de1049f5a..a0405d242 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## v3.0.3239 (2018-04-26) + +### **Fixes** + +- Potential fix for #2119. [Jamie Rees] + +- Use the Application URL if we have it to fix #2201. [Jamie] + + ## v3.0.3239 (2018-04-26) ### **New Features** diff --git a/build.cake b/build.cake index 58eadd651..a497c5f77 100644 --- a/build.cake +++ b/build.cake @@ -1,7 +1,7 @@ #tool "nuget:?package=GitVersion.CommandLine" #addin "Cake.Gulp" -#addin "Cake.Npm" +#addin "nuget:?package=Cake.Npm&version=0.13.0" #addin "SharpZipLib" #addin nuget:?package=Cake.Compression&version=0.1.4 #addin "Cake.Incubator" diff --git a/src/Ombi.Core/Authentication/PlexOAuthManager.cs b/src/Ombi.Core/Authentication/PlexOAuthManager.cs index f3a3e4d01..37ed7d2f7 100644 --- a/src/Ombi.Core/Authentication/PlexOAuthManager.cs +++ b/src/Ombi.Core/Authentication/PlexOAuthManager.cs @@ -57,21 +57,8 @@ public async Task GetAccount(string accessToken) public async Task GetOAuthUrl(int pinId, string code, string websiteAddress = null) { - Uri url; - if (websiteAddress.IsNullOrEmpty()) - { - var settings = await _customizationSettingsService.GetSettingsAsync(); - if (settings.ApplicationUrl.IsNullOrEmpty()) - { - return null; - } - - url = _api.GetOAuthUrl(pinId, code, settings.ApplicationUrl, false); - } - else - { - url = _api.GetOAuthUrl(pinId, code, websiteAddress, false); - } + var settings = await _customizationSettingsService.GetSettingsAsync(); + var url = _api.GetOAuthUrl(pinId, code, settings.ApplicationUrl.IsNullOrEmpty() ? websiteAddress : settings.ApplicationUrl, false); return url; } diff --git a/src/Ombi/ClientApp/app/wizard/createadmin/createadmin.component.ts b/src/Ombi/ClientApp/app/wizard/createadmin/createadmin.component.ts index 07f47f265..b997f1d9f 100644 --- a/src/Ombi/ClientApp/app/wizard/createadmin/createadmin.component.ts +++ b/src/Ombi/ClientApp/app/wizard/createadmin/createadmin.component.ts @@ -1,10 +1,8 @@ import { Component } from "@angular/core"; import { Router } from "@angular/router"; -import { AuthService } from "../../auth/auth.service"; import { IdentityService } from "../../services"; import { NotificationService } from "../../services"; -import { SettingsService } from "../../services"; @Component({ templateUrl: "./createadmin.component.html", @@ -15,28 +13,12 @@ export class CreateAdminComponent { public password: string; constructor(private identityService: IdentityService, private notificationService: NotificationService, - private router: Router, private auth: AuthService, private settings: SettingsService) { } + private router: Router) { } public createUser() { this.identityService.createWizardUser({username: this.username, password: this.password, usePlexAdminAccount: false}).subscribe(x => { if (x) { - // Log me in. - this.auth.login({ username: this.username, password: this.password, rememberMe: false, usePlexOAuth:false }).subscribe(c => { - - localStorage.setItem("id_token", c.access_token); - - // Mark that we have done the settings now - this.settings.getOmbi().subscribe(ombi => { - ombi.wizard = true; - - this.settings.saveOmbi(ombi).subscribe(x => { - - this.router.navigate(["search"]); - }); - - }); - - }); + this.router.navigate(["login"]); } else { this.notificationService.error("There was an error... You might want to put this on Github..."); } diff --git a/src/Ombi/ClientApp/app/wizard/plex/plex.component.ts b/src/Ombi/ClientApp/app/wizard/plex/plex.component.ts index bafe67756..67bd672dc 100644 --- a/src/Ombi/ClientApp/app/wizard/plex/plex.component.ts +++ b/src/Ombi/ClientApp/app/wizard/plex/plex.component.ts @@ -2,8 +2,7 @@ import { Router } from "@angular/router"; import { PlexService } from "../../services"; -import { IdentityService, NotificationService, SettingsService } from "../../services"; -import { AuthService } from "./../../auth/auth.service"; +import { IdentityService, NotificationService } from "../../services"; @Component({ templateUrl: "./plex.component.html", @@ -15,9 +14,7 @@ export class PlexComponent { constructor(private plexService: PlexService, private router: Router, private notificationService: NotificationService, - private identityService: IdentityService, - private settings: SettingsService, - private auth: AuthService) { } + private identityService: IdentityService) { } public requestAuthToken() { this.plexService.logIn(this.login, this.password).subscribe(x => { @@ -32,25 +29,7 @@ export class PlexComponent { usePlexAdminAccount: true, }).subscribe(y => { if (y) { - this.auth.login({ username: this.login, password: this.password, rememberMe: false, usePlexOAuth: false }).subscribe(c => { - localStorage.setItem("id_token", c.access_token); - - // Mark that we have done the settings now - this.settings.getOmbi().subscribe(ombi => { - ombi.wizard = true; - - this.settings.saveOmbi(ombi).subscribe(s => { - this.settings.getUserManagementSettings().subscribe(usr => { - - usr.importPlexAdmin = true; - this.settings.saveUserManagementSettings(usr).subscribe(saved => { - this.router.navigate(["login"]); - }); - }); - - }); - }); - }); + this.router.navigate(["login"]); } else { this.notificationService.error("Could not get the Plex Admin Information"); return; diff --git a/src/Ombi/Controllers/IdentityController.cs b/src/Ombi/Controllers/IdentityController.cs index 8a9c76a34..4aaf86d4b 100644 --- a/src/Ombi/Controllers/IdentityController.cs +++ b/src/Ombi/Controllers/IdentityController.cs @@ -48,6 +48,7 @@ public class IdentityController : Controller public IdentityController(OmbiUserManager user, IMapper mapper, RoleManager rm, IEmailProvider prov, ISettingsService s, ISettingsService c, + ISettingsService ombiSettings, IWelcomeEmail welcome, IMovieRequestRepository m, ITvRequestRepository t, @@ -73,6 +74,7 @@ public IdentityController(OmbiUserManager user, IMapper mapper, RoleManager EmailSettings { get; } private ISettingsService CustomizationSettings { get; } + private ISettingsService OmbiSettings { get; } private IWelcomeEmail WelcomeEmail { get; } private IMovieRequestRepository MovieRepo { get; } private ITvRequestRepository TvRepo { get; } @@ -107,7 +110,7 @@ public IdentityController(OmbiUserManager user, IMapper mapper, RoleManager CreateWizardUser([FromBody] CreateUserWizardModel user) { var users = UserManager.Users; - if (users.Any()) + if (users.Any(x => !x.UserName.Equals("api", StringComparison.CurrentCultureIgnoreCase))) { // No one should be calling this. Only the wizard return false; @@ -174,6 +177,12 @@ private async Task SaveWizardUser(CreateUserWizardModel user, OmbiUser use { LogErrors(result); } + + // Update the wizard flag + var settings = await OmbiSettings.GetSettingsAsync(); + settings.Wizard = true; + await OmbiSettings.SaveSettingsAsync(settings); + return result.Succeeded; }