public int GetCurrentPageAccessLevel(HRR.Core.Security.ISecurityContext securityContext) { //var pageUser = new PageRepository().getb(securityContext.CurrentPage.ID, securityContext.CurrentUser.ID); //if there is page level security, return access level //if (pageUser != null) //{ // return pageUser.AccessLevel; //} ////else, loop through the current user's module access and if user has access to the current page module, return access level //foreach (var m in securityContext.CurrentUser.UserModules) //{ // if (securityContext.CurrentPage.ModuleID == m.ModuleID) // { // return m.AccessLevel; // } //} //otherwise no access. return((int)AccessLevels.NOACCESS); }
public AuthenticationResponse AuthenticateUser(string userName, string password, string url, HRR.Core.Security.ISecurityContext securityContext) { var u = new PersonServices().GetByEmailPassword(userName, SecurityUtils.GetMd5Hash(password)); var response = new AuthenticationResponse(); if (u != null) { if (!u.IsActive) { response.IsAuthenticated = false; response.CurrentAccessLevel = AccessLevels.NOACCESS; response.Message = "Your account has been marked as inactive."; } else { CreateAuthenticationTicket(u.Email, u.ID.ToString(), DateTime.Now.AddMinutes(480), url); securityContext.CurrentUser = u; securityContext.IsAuthenticated = true; response.IsAuthenticated = true; response.CurrentAccessLevel = AccessLevels.FULLACCESS; //new UserRepository().SaveOrUpdate(u); //UserServices.LoadUserPreferences(SecurityContextManager.Current.CurrentUser); } } else { securityContext.IsAuthenticated = false; response.IsAuthenticated = false; securityContext.CurrentUser = null; response.Message = "Invalid username or password. Please try again."; } return(response); }