Build-in power users implemented
This commit is contained in:
@@ -19,6 +19,7 @@ namespace TBF
|
||||
string user;
|
||||
string password;
|
||||
Grp.GID requiredGroupMembership = Grp.GID.Invalid;
|
||||
bool noDatabase;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
@@ -38,6 +39,15 @@ namespace TBF
|
||||
userNameTextBox.Text = predefinedUser;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor with 'no Database' flag.
|
||||
/// </summary>
|
||||
public LoginDlg(bool noDatabase)
|
||||
: this()
|
||||
{
|
||||
this.noDatabase = noDatabase;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor when a specific group membership is required.
|
||||
/// </summary>
|
||||
@@ -78,28 +88,31 @@ namespace TBF
|
||||
user = userNameTextBox.Text;
|
||||
password = passwordTextBox.Text;
|
||||
|
||||
Entities.User loadedUser = Entities.User.LoadUserByName(user);
|
||||
if (loadedUser != null)
|
||||
{
|
||||
bool authorized;
|
||||
bool authorized = Entities.User.IsPowerUser(user, password);
|
||||
|
||||
if (requiredGroupMembership == Grp.GID.Invalid)
|
||||
{
|
||||
authorized = loadedUser.Authorize(user, password);
|
||||
}
|
||||
else
|
||||
{
|
||||
authorized = loadedUser.Authorize(user, password, requiredGroupMembership);
|
||||
}
|
||||
if (!authorized && !noDatabase)
|
||||
{
|
||||
Entities.User loadedUser = Entities.User.LoadUserByName(user);
|
||||
if (loadedUser != null)
|
||||
{
|
||||
if (requiredGroupMembership == Grp.GID.Invalid)
|
||||
{
|
||||
authorized = loadedUser.Authorize(user, password);
|
||||
}
|
||||
else
|
||||
{
|
||||
authorized = loadedUser.Authorize(user, password, requiredGroupMembership);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (authorized)
|
||||
{
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
Program.MainWnd.UpdateUser();
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (authorized)
|
||||
{
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
if (Program.MainWnd != null) Program.MainWnd.UpdateUser();
|
||||
return;
|
||||
}
|
||||
|
||||
MessageBox.Show(Strings.Invalid_username_or_password, Strings.Error, MessageBoxButtons.OK);
|
||||
DialogResult = DialogResult.None;
|
||||
|
||||
Reference in New Issue
Block a user