LoginDlg improvements, read only property UserName.

This commit is contained in:
Milan Hanajik 2020-04-03 10:46:07 +02:00
parent f00196c4a8
commit 1dfcd24e34

View File

@ -16,7 +16,10 @@ namespace Users.Forms
/// </summary>
public partial class LoginDlg : Form
{
// Private fields
/// Public readonly
public string UserName { get { return user; } }
/// Private fields
string user;
string password;
GID[] requiredGroupMembership;
@ -190,24 +193,27 @@ namespace Users.Forms
{
try
{
Users.Entities.User loadedUser = Users.Entities.User.LoadUserByName(user, db);
if (loadedUser != null)
switch (Method)
{
switch (Method)
{
default:
case Entities.LoginMethod.UserName:
authorized = loadedUser.Authorize(user, password, requiredGroupMembership);
break;
case Entities.LoginMethod.FullName:
authorized = loadedUser.AuthorizeFullName(user, password, requiredGroupMembership);
break;
case Entities.LoginMethod.Number:
int number;
if (!int.TryParse(user, out number)) break;
authorized = loadedUser.AuthorizeNumber(number, password, requiredGroupMembership);
break;
}
case Entities.LoginMethod.UserName:
default:
var usr1 = Users.Entities.User.LoadUserByName(user, db);
if (usr1 != null) { authorized = usr1.Authorize(user, password, requiredGroupMembership); }
break;
case Entities.LoginMethod.FullName:
var usr2 = Users.Entities.User.LoadUserByFullName(user, db);
if (usr2 != null) { authorized = usr2.AuthorizeFullName(user, password, requiredGroupMembership); }
if (authorized) { user = usr2.UserName; }
break;
case Entities.LoginMethod.Number:
int number;
if (!int.TryParse(user, out number)) break;
var usr3 = Users.Entities.User.LoadUserByNumber(number, db);
if (usr3 != null) { authorized = usr3.AuthorizeNumber(number, password, requiredGroupMembership); }
if (authorized) { user = usr3.UserName; }
break;
}
}
catch (Exception) { }
@ -293,12 +299,16 @@ namespace Users.Forms
if (loadedUser != null)
{
authorized = loadedUser.AuthorizeTag(tag, requiredGroupMembership);
if (authorized)
{
user = loadedUser.UserName;
break;
}
}
}
catch (Exception) { }
if (authorized) break;
authorizedAs = Entities.AuthorizedAs.LocalUser;
}