195 lines
6.9 KiB
C#
195 lines
6.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
using Ease.Core.Model;
|
|
using System.Data;
|
|
using System.Security.Claims;
|
|
|
|
namespace HRM.BO
|
|
{
|
|
public class CurrentUser
|
|
{
|
|
public int UserID { get; set; }
|
|
public string LoginID { get; set; }
|
|
private int? _employeeID;
|
|
public int? EmployeeID
|
|
{
|
|
get
|
|
{
|
|
if (UserType == EnumUserType.Employee && this._employeeID == null)
|
|
{
|
|
throw new Exception("Employee-ID cann't be null, Self-service login");
|
|
}
|
|
return this._employeeID;
|
|
}
|
|
set { _employeeID = value; }
|
|
}
|
|
public string UserName { get; set; }
|
|
public int? PayrollTypeID { get; set; }
|
|
public DateTime? NextPayProcessDate { get; set; }
|
|
public DateTime? LastPayProcessDate { get; set; }
|
|
public int? TaxParamID {get;set;}
|
|
public string Description { get; set; }
|
|
public EnumUserType UserType { get; set; }
|
|
public bool hasDataPermission { get; set; }
|
|
public CurrentUser()
|
|
{
|
|
this.PayrollTypeID = null;
|
|
this.EmployeeID = null;
|
|
this.TaxParamID = null;
|
|
this.NextPayProcessDate = null;
|
|
this.hasDataPermission = false;
|
|
}
|
|
public static CurrentUser GetCurrentUser(ClaimsPrincipal principal)
|
|
{
|
|
if (principal == null || principal.Identity == null || principal.Identity.IsAuthenticated == false)
|
|
return null;
|
|
|
|
|
|
CurrentUser oUser = new CurrentUser();
|
|
foreach (Claim item in principal.Claims)
|
|
{
|
|
if (item.Type == "UserID")
|
|
oUser.UserID = Convert.ToInt32(item.Value);
|
|
|
|
if (item.Type == "UserName")
|
|
oUser.UserName = item.Value;
|
|
|
|
if (item.Type == "LoginID")
|
|
oUser.LoginID = item.Value;
|
|
|
|
if (item.Type == "UserType")
|
|
oUser.UserType =(EnumUserType) Convert.ToInt32( item.Value);
|
|
|
|
if (item.Type == "EmployeeID" && item.Value !="0")
|
|
oUser.EmployeeID = Convert.ToInt32(item.Value);
|
|
|
|
if (item.Type == "PayrollTypeID" && item.Value != "0")
|
|
oUser.PayrollTypeID = Convert.ToInt32(item.Value);
|
|
|
|
if (item.Type == "nextPayProcessDate" && item.Value != "null") {
|
|
oUser.NextPayProcessDate = Convert.ToDateTime(item.Value);
|
|
//oUser.LastPayProcessDate = oUser.LastPayProcessDate.Value.AddMonths(-1).LastDateOfMonth();
|
|
}
|
|
|
|
if (item.Type == "taxParamId" && item.Value != "null" && item.Value != string.Empty)
|
|
oUser.TaxParamID = Convert.ToInt32(item.Value);
|
|
if (item.Type == "hasDataPermission" && item.Value != "null" && item.Value != string.Empty)
|
|
oUser.hasDataPermission = Convert.ToBoolean(item.Value);
|
|
|
|
}
|
|
return oUser;
|
|
}
|
|
}
|
|
|
|
public partial class User : BasicBaseObject
|
|
{
|
|
public User()
|
|
{
|
|
this.PasswordHints = "";
|
|
this.NeverExpire = false;
|
|
this.EmployeeID = null;
|
|
this.ChangePasswordAtNextLogon = true;
|
|
this.LastPasswordChangedDate = null;
|
|
this.IPAddress = "";
|
|
this.MacAddress = "";
|
|
this.ComputerName = "";
|
|
|
|
}
|
|
|
|
public void Logout()
|
|
{
|
|
}
|
|
|
|
|
|
public string LoginID { get; set; }
|
|
public bool NeverExpire { get; set; }
|
|
public string MacAddress { get; set; }
|
|
public string IPAddress { get; set; }
|
|
public string UserRole { get; set; }
|
|
//public string Password { get; set; }
|
|
private string _password;
|
|
|
|
public string Password
|
|
{
|
|
// get { return Ease.Core.Utility.Global.CipherFunctions.Decrypt("CeLiMiTeD.AdMIn", _password); }
|
|
get { return _password; }
|
|
set { _password = value; }
|
|
}
|
|
|
|
public bool ResetPassword { get; set; }
|
|
public bool ChangePasswordAtNextLogon { get; set; }
|
|
public DateTime? LastPasswordChangedDate { get; set; }
|
|
public string PasswordHints { get; set; }
|
|
public DateTime? ExpireDate { get; set; }
|
|
public bool IsPasswordExpired // not a database filed
|
|
{
|
|
get
|
|
{
|
|
if (ExpireDate.HasValue)
|
|
return DateTime.Today.Date > ExpireDate.Value;
|
|
|
|
return false;
|
|
}
|
|
}
|
|
public int? EmployeeID { get; set; }
|
|
public string Email { get; set; } //erec
|
|
|
|
#region Payroll Specific
|
|
public string UserName { get; set; }
|
|
public string? ComputerName { get; set; }
|
|
public EnumAuthStatus UserStatus { get; set; }
|
|
public int ParentID { get; set; }
|
|
|
|
public bool SISU{ get; set; }
|
|
public EnumUserType UserType { get; set; }
|
|
public int LogInPayrollTypeID { get; set; } // Not a database field
|
|
public int? ApprovedBy { get; set; }
|
|
public DateTime? ApprovedDate { get; set; }
|
|
public string? ApprovedComputerName { get; set; }
|
|
public string LockedWorkStation { get; set; }
|
|
public string Reason { get; set; }
|
|
public int? AuthorizedBy { get; set; }
|
|
public DateTime? AuthorizedDate { get; set; }
|
|
public List<UserAccessType> UserAccessTypes { get; set; }
|
|
public List<UserRole> Roles { get; set; }
|
|
#endregion
|
|
}
|
|
|
|
#region IUser Service
|
|
|
|
public interface IUserService
|
|
{
|
|
User GetByLoginIDAndPassword(string LoginID, string password);
|
|
User GetByLoginIDAndPasswordAndHostName(string LoginID, string password, string hostName);
|
|
int Save(User item);
|
|
List<User> Get(string LoginID, string Name, EnumUserType type);
|
|
List<User> GetAll();
|
|
bool IsSuperUser(string LoginID);
|
|
void ChangePasswordEss(User oUser);
|
|
void ChangePasswordAdmin(User oUser);
|
|
DateTime GetEndofContractDate(string LoginID);
|
|
User Get(int employeeid, EnumUserType type);
|
|
|
|
User Get(int id);
|
|
|
|
User GetByEmail(string email);
|
|
//User Get(string sName);
|
|
User GetByLogINID(string sLogINID, EnumSystemType eSysType);
|
|
//User GetByLoginIDAndPassword(string sLoginID, string sPassword, EnumSystemType eSysType);
|
|
User ADLogIn(string emailAddress, EnumSystemType eSysType);
|
|
//List<User> Get(EnumSystemType type);
|
|
//List<User> Get();
|
|
//void Delete(int id);
|
|
void Update(User user, EnumStatus status);
|
|
void Approve(User user);
|
|
int GetUserId(int employeeid, EnumUserType type);
|
|
User GetByLoginIDbyEmail(string sEmail);
|
|
|
|
void DoActiveAndIntacive(User oUser);
|
|
//void SaveAllUsers(List<User> oUsers);
|
|
//DataSet GetUsers(EnumSystemType type, DateTime fromDate, DateTime ToDate);
|
|
}
|
|
|
|
#endregion
|
|
} |