mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2025-04-28 21:19:47 +00:00
Added auth methods
This commit is contained in:
parent
4027e4f862
commit
4781fc68fe
@ -1,4 +1,5 @@
|
|||||||
@attribute [Route(Routes.ASSISTANT_EDI)]
|
@attribute [Route(Routes.ASSISTANT_EDI)]
|
||||||
|
@using MudExtensions
|
||||||
@inherits AssistantBaseCore
|
@inherits AssistantBaseCore
|
||||||
|
|
||||||
<MudText Typo="Typo.body1" Class="mb-3">
|
<MudText Typo="Typo.body1" Class="mb-3">
|
||||||
@ -45,4 +46,23 @@
|
|||||||
}
|
}
|
||||||
</MudStack>
|
</MudStack>
|
||||||
|
|
||||||
|
<MudStack Row="@false" AlignItems="AlignItems.Stretch" Class="mb-3">
|
||||||
|
<MudSelectExtended
|
||||||
|
T="Auth"
|
||||||
|
ShrinkLabel="@true"
|
||||||
|
MultiSelection="@true"
|
||||||
|
MultiSelectionTextFunc="@this.GetMultiSelectionAuthText"
|
||||||
|
@bind-SelectedValues="@this.selectedAuthenticationMethods"
|
||||||
|
Validation="@this.ValidateAuthenticationMethods"
|
||||||
|
Label="Authentication method(s)"
|
||||||
|
Variant="Variant.Outlined"
|
||||||
|
Margin="Margin.Dense">
|
||||||
|
@foreach (var authMethod in Enum.GetValues<Auth>())
|
||||||
|
{
|
||||||
|
<MudSelectItemExtended Value="@authMethod">@authMethod.Name()</MudSelectItemExtended>
|
||||||
|
}
|
||||||
|
</MudSelectExtended>
|
||||||
|
<MudTextField T="string" @bind-Text="@this.authDescription" ShrinkLabel="@true" Label="Describe how you planned the authentication" Validation="@this.ValidateAuthDescription" Variant="Variant.Outlined" Margin="Margin.Normal" Lines="3" AutoGrow="@true" MaxLines="6" UserAttributes="@USER_INPUT_ATTRIBUTES"/>
|
||||||
|
</MudStack>
|
||||||
|
|
||||||
<ProviderSelection @bind-ProviderSettings="@this.providerSettings" ValidateProvider="@this.ValidatingProvider"/>
|
<ProviderSelection @bind-ProviderSettings="@this.providerSettings" ValidateProvider="@this.ValidatingProvider"/>
|
@ -46,6 +46,8 @@ public partial class AssistantEDI : AssistantBaseCore
|
|||||||
private string otherProgrammingLanguage = string.Empty;
|
private string otherProgrammingLanguage = string.Empty;
|
||||||
private DataSources selectedDataSource = DataSources.NONE;
|
private DataSources selectedDataSource = DataSources.NONE;
|
||||||
private string otherDataSource = string.Empty;
|
private string otherDataSource = string.Empty;
|
||||||
|
private IEnumerable<Auth> selectedAuthenticationMethods = new HashSet<Auth>();
|
||||||
|
private string authDescription = string.Empty;
|
||||||
|
|
||||||
private string? ValidateProgrammingLanguage(ProgrammingLanguages language)
|
private string? ValidateProgrammingLanguage(ProgrammingLanguages language)
|
||||||
{
|
{
|
||||||
@ -90,4 +92,36 @@ public partial class AssistantEDI : AssistantBaseCore
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string? ValidateAuthenticationMethods(Auth _)
|
||||||
|
{
|
||||||
|
var authenticationMethods = (this.selectedAuthenticationMethods as HashSet<Auth>)!;
|
||||||
|
if(authenticationMethods.Count == 0)
|
||||||
|
return "Please select at least one authentication method for the EDI server.";
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private string? ValidateAuthDescription(string description)
|
||||||
|
{
|
||||||
|
var authenticationMethods = (this.selectedAuthenticationMethods as HashSet<Auth>)!;
|
||||||
|
if(authenticationMethods.Any(n => n == Auth.NONE) && authenticationMethods.Count > 1 && string.IsNullOrWhiteSpace(this.authDescription))
|
||||||
|
return "Please describe how the selected authentication methods should be used. Especially, explain for what data the NONE method (public access) is used.";
|
||||||
|
|
||||||
|
if(authenticationMethods.Count > 1 && string.IsNullOrWhiteSpace(this.authDescription))
|
||||||
|
return "Please describe how the selected authentication methods should be used.";
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private string GetMultiSelectionAuthText(List<Auth> selectedValues)
|
||||||
|
{
|
||||||
|
if(selectedValues.Count == 0)
|
||||||
|
return "Please select at least one authentication method";
|
||||||
|
|
||||||
|
if(selectedValues.Count == 1)
|
||||||
|
return $"You have selected 1 authentication method";
|
||||||
|
|
||||||
|
return $"You have selected {selectedValues.Count} authentication methods";
|
||||||
|
}
|
||||||
}
|
}
|
9
app/MindWork AI Studio/Assistants/EDI/Auth.cs
Normal file
9
app/MindWork AI Studio/Assistants/EDI/Auth.cs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
namespace AIStudio.Assistants.EDI;
|
||||||
|
|
||||||
|
public enum Auth
|
||||||
|
{
|
||||||
|
NONE,
|
||||||
|
KERBEROS,
|
||||||
|
USERNAME_PASSWORD,
|
||||||
|
TOKEN,
|
||||||
|
}
|
15
app/MindWork AI Studio/Assistants/EDI/AuthExtensions.cs
Normal file
15
app/MindWork AI Studio/Assistants/EDI/AuthExtensions.cs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
namespace AIStudio.Assistants.EDI;
|
||||||
|
|
||||||
|
public static class AuthExtensions
|
||||||
|
{
|
||||||
|
public static string Name(this Auth auth) => auth switch
|
||||||
|
{
|
||||||
|
Auth.NONE => "No login necessary: useful for public data sources",
|
||||||
|
|
||||||
|
Auth.KERBEROS => "Login by single-sign-on (SSO) using Kerberos: very complex to implement and to operate, useful for many users",
|
||||||
|
Auth.USERNAME_PASSWORD => "Login by username and password: simple to implement and to operate, useful for few users; easy to use for users",
|
||||||
|
Auth.TOKEN => "Login by token: simple to implement and to operate, useful for few users; unusual for many users",
|
||||||
|
|
||||||
|
_ => "Unknown login method"
|
||||||
|
};
|
||||||
|
}
|
@ -30,6 +30,16 @@ public sealed class DataEDI
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string PreselectedOtherDataSource { get; set; } = string.Empty;
|
public string PreselectedOtherDataSource { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Preselect any authentication methods?
|
||||||
|
/// </summary>
|
||||||
|
public HashSet<Auth> PreselectedAuthMethods { get; set; } = [];
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Do you want to preselect any authentication description?
|
||||||
|
/// </summary>
|
||||||
|
public string PreselectedAuthDescription { get; set; } = string.Empty;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The minimum confidence level required for a provider to be considered.
|
/// The minimum confidence level required for a provider to be considered.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
Loading…
Reference in New Issue
Block a user