Authenticate upon start of the application if no settings exist

This commit is contained in:
Pat Hartl 2023-01-25 21:08:05 -06:00
parent 6191d647f6
commit db9c569ebc
4 changed files with 20 additions and 9 deletions

View file

@ -21,6 +21,7 @@ namespace LANCommander.PlaynitePlugin
public LANCommanderClient(string baseUrl) public LANCommanderClient(string baseUrl)
{ {
if (!String.IsNullOrWhiteSpace(baseUrl))
Client = new RestClient(baseUrl); Client = new RestClient(baseUrl);
} }

View file

@ -1,6 +1,7 @@
using LANCommander.PlaynitePlugin.Extensions; using LANCommander.PlaynitePlugin.Extensions;
using LANCommander.SDK; using LANCommander.SDK;
using Playnite.SDK; using Playnite.SDK;
using Playnite.SDK.Events;
using Playnite.SDK.Models; using Playnite.SDK.Models;
using Playnite.SDK.Plugins; using Playnite.SDK.Plugins;
using System; using System;
@ -41,6 +42,7 @@ namespace LANCommander.PlaynitePlugin
}; };
Settings = new LANCommanderSettingsViewModel(this); Settings = new LANCommanderSettingsViewModel(this);
LANCommander = new LANCommanderClient(Settings.ServerAddress); LANCommander = new LANCommanderClient(Settings.ServerAddress);
LANCommander.Token = new SDK.Models.AuthToken() LANCommander.Token = new SDK.Models.AuthToken()
{ {
@ -51,11 +53,16 @@ namespace LANCommander.PlaynitePlugin
PowerShellRuntime = new PowerShellRuntime(); PowerShellRuntime = new PowerShellRuntime();
} }
public override void OnApplicationStarted(OnApplicationStartedEventArgs args)
{
ShowAuthenticationWindow();
}
public override IEnumerable<GameMetadata> GetGames(LibraryGetGamesArgs args) public override IEnumerable<GameMetadata> GetGames(LibraryGetGamesArgs args)
{ {
var gameMetadata = new List<GameMetadata>(); var gameMetadata = new List<GameMetadata>();
if (!LANCommander.ValidateToken(LANCommander.Token)) if (LANCommander.Token != null && !LANCommander.ValidateToken(LANCommander.Token))
{ {
try try
{ {
@ -298,7 +305,7 @@ namespace LANCommander.PlaynitePlugin
window.Content = new Views.Authentication(this); window.Content = new Views.Authentication(this);
window.DataContext = new ViewModels.Authentication() window.DataContext = new ViewModels.Authentication()
{ {
ServerAddress = Settings.ServerAddress ServerAddress = Settings?.ServerAddress
}; };
window.Owner = PlayniteApi.Dialogs.GetCurrentAppWindow(); window.Owner = PlayniteApi.Dialogs.GetCurrentAppWindow();

View file

@ -26,12 +26,15 @@ namespace LANCommander.PlaynitePlugin
var settings = Plugin.LoadPluginSettings<LANCommanderSettingsViewModel>(); var settings = Plugin.LoadPluginSettings<LANCommanderSettingsViewModel>();
if (settings != null)
{
ServerAddress = settings.ServerAddress; ServerAddress = settings.ServerAddress;
AccessToken = settings.AccessToken; AccessToken = settings.AccessToken;
RefreshToken = settings.RefreshToken; RefreshToken = settings.RefreshToken;
InstallDirectory = settings.InstallDirectory; InstallDirectory = settings.InstallDirectory;
PlayerName = settings.PlayerName; PlayerName = settings.PlayerName;
} }
}
public void BeginEdit() public void BeginEdit()
{ {

View file

@ -54,7 +54,7 @@ namespace LANCommander.PlaynitePlugin.Views
{ {
try try
{ {
if (Plugin.LANCommander == null) if (Plugin.LANCommander == null || Plugin.LANCommander.Client == null)
Plugin.LANCommander = new LANCommanderClient(Context.ServerAddress); Plugin.LANCommander = new LANCommanderClient(Context.ServerAddress);
else else
Plugin.LANCommander.Client.BaseUrl = new Uri(Context.ServerAddress); Plugin.LANCommander.Client.BaseUrl = new Uri(Context.ServerAddress);