login!
This commit is contained in:
@@ -1,20 +1,80 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using OwnChar.App.Desktop.Api;
|
||||
using OwnChar.App.Desktop.LangRes;
|
||||
using OwnChar.Data;
|
||||
using Pilz.Cryptography;
|
||||
using Pilz.Plugins.Advanced;
|
||||
using Pilz.UI.Telerik.Dialogs;
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Telerik.WinControls;
|
||||
using Telerik.WinControls.UI;
|
||||
|
||||
namespace OwnChar.App.Desktop.UI.MainTabs
|
||||
namespace OwnChar.App.Desktop.UI.MainTabs;
|
||||
|
||||
public partial class TabLoginView : UserControl, ILoadContent
|
||||
{
|
||||
public partial class TabLoginView : UserControl
|
||||
private readonly IMainWindowApi mainApi;
|
||||
private IDataManager? dataManager;
|
||||
|
||||
public TabLoginView(IMainWindowApi mainApi)
|
||||
{
|
||||
public TabLoginView()
|
||||
this.mainApi = mainApi;
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void LoadContent()
|
||||
{
|
||||
LoadProvidersList();
|
||||
}
|
||||
|
||||
private void LoadProvidersList()
|
||||
{
|
||||
radDropDownList_LoginProvider.BeginUpdate();
|
||||
|
||||
foreach (var feat in PluginFeatureController.Instance.Features.Get(FeatureCodes.LoginProvider))
|
||||
{
|
||||
InitializeComponent();
|
||||
if (feat is LoginProvider provider)
|
||||
{
|
||||
var item = new RadListDataItem(feat.Name, provider)
|
||||
{
|
||||
SvgImage = feat.Icon as RadSvgImage,
|
||||
Image = feat.Icon as Image,
|
||||
};
|
||||
radDropDownList_LoginProvider.Items.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
radDropDownList_LoginProvider.EndUpdate();
|
||||
|
||||
if (radDropDownList_LoginProvider.Items.Count > 0)
|
||||
radDropDownList_LoginProvider.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private void RadDropDownList_LoginProvider_SelectedValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (radDropDownList_LoginProvider.SelectedValue is LoginProvider provider)
|
||||
dataManager = provider.GetDefault(mainApi);
|
||||
}
|
||||
|
||||
private void RadButton_Login_Click(object sender, EventArgs e)
|
||||
{
|
||||
var username = radTextBoxControl_Username.Text.Trim();
|
||||
var password = (SecureString)radTextBoxControl_Password.Text;
|
||||
|
||||
if (mainApi.Manager?.Login(dataManager, username, password) is not bool success || !success)
|
||||
{
|
||||
RadMessageBox.Show(LoginPageLangRes.MsgBox_LoginFailed, LoginPageLangRes.MsgBox_LoginFailed_Title, MessageBoxButtons.YesNo, RadMessageIcon.Exclamation);
|
||||
return;
|
||||
}
|
||||
|
||||
mainApi.OpenTab(new TabUserView(mainApi, mainApi.Manager.CurrentUser), mainApi.Manager.CurrentUser!.Username!);
|
||||
mainApi.CloseTab(this);
|
||||
}
|
||||
|
||||
private void RadButton_ConfigureProvider_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (radDropDownList_LoginProvider.SelectedValue is LoginProvider provider)
|
||||
provider.Configure(mainApi, ref dataManager);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user