//This method set session variable i.e.current login user, permissions for current login public void SetSessionVariable(RbacUser currentValidUser) { try { //set currentuser HttpContext.Session.Set <RbacUser>("currentuser", currentValidUser); RbacUser currentUser = HttpContext.Session.Get <RbacUser>("currentuser"); if (currentUser != null) { //Get all valid permission for input user List <RbacPermission> validPermissionList = RBAC.GetUserAllPermissions(currentUser.UserId).ToList(); //List<RbacRole> validRoles = //Set permission session variable value for logged in user HttpContext.Session.Set <List <RbacPermission> >("validpermissionlist", validPermissionList); //Get all valid permission for input user List <RbacRole> validUsrRoles = RBAC.GetUserAllRoles(currentUser.UserId); //List<RbacRole> validRoles = //Set permission session variable value for logged in user HttpContext.Session.Set <List <RbacRole> >("user-roles", validUsrRoles); } } catch (Exception ex) { throw ex; } }
public string Get(int userId, string reqType) { DanpheHTTPResponse <object> responseData = new DanpheHTTPResponse <object>(); try { if (reqType == "loggedInUser") { RbacUser currentUser = HttpContext.Session.Get <RbacUser>("currentuser"); MasterDbContext masterDbContext = new MasterDbContext(connString); string userImgName = (from x in masterDbContext.Employees where x.EmployeeId == currentUser.EmployeeId select x.ImageName).FirstOrDefault(); EmployeeModel employee = (from x in masterDbContext.Employees where x.EmployeeId == currentUser.EmployeeId select x).FirstOrDefault(); string imgLocation = string.IsNullOrEmpty(userImgName) ? "" : fileUploadLocation + "UserProfile\\" + userImgName; //start: to get default route for current user. List <RbacRole> usrAllRoles = RBAC.GetUserAllRoles(currentUser.UserId); RbacRole defRole = usrAllRoles != null && usrAllRoles.Count > 0 ? usrAllRoles.OrderBy(r => r.RolePriority).FirstOrDefault() : null; int? defRouteId = defRole != null ? defRole.DefaultRouteId : 0; string defaultRoutePath = null; if (defRouteId.HasValue) { List <DanpheRoute> allRoutes = RBAC.GetAllRoutes(); DanpheRoute defRoute = allRoutes.Where(r => r.RouteId == defRouteId.Value).FirstOrDefault(); if (defRoute != null) { defaultRoutePath = defRoute.UrlFullPath; } } //end: to get default route for current user. //Ajay 07 Aug 2019 //getting LandingPageRouteId var landingPageRouteId = (new RbacDbContext(connString)).Users .Where(a => a.UserId == currentUser.UserId) .Select(a => a.LandingPageRouteId).FirstOrDefault(); responseData.Results = new { UserId = currentUser.UserId, UserName = currentUser.UserName, EmployeeId = currentUser.EmployeeId, Profile = new { ImageLocation = imgLocation }, NeedsPasswordUpdate = currentUser.NeedsPasswordUpdate, DefaultPagePath = defaultRoutePath, Employee = employee, LandingPageRouteId = landingPageRouteId }; responseData.Status = "OK"; } else if (reqType != null && reqType.ToLower() == "routelist") { RbacUser currentUser = HttpContext.Session.Get <RbacUser>("currentuser"); if (currentUser != null) { var currentUserId = currentUser.UserId; List <DanpheRoute> routeList = new List <DanpheRoute>(); //we need to get routes with defaultshow=false and no need of hierarchy. routeList = RBAC.GetRoutesForUser(currentUser.UserId, getHiearrchy: false); responseData.Results = routeList; responseData.Status = "OK"; //set session of Valid routeList for loggedin user HttpContext.Session.Set <List <DanpheRoute> >("validRouteList", routeList); } else { responseData.Status = "Failed"; responseData.ErrorMessage = "User is Not valid"; } } else if (reqType != null && reqType == "validallrouteList") { RbacUser currentUser = HttpContext.Session.Get <RbacUser>("currentuser"); if (currentUser != null) { var currentUserId = currentUser.UserId; List <DanpheRoute> routeList = new List <DanpheRoute>(); routeList = RBAC.GetRoutesForUser(currentUser.UserId, getHiearrchy: true); var filteredRoutes = routeList.Where(r => r.DefaultShow != false && r.IsActive == true).ToList(); filteredRoutes.ForEach(r => { if (r.ChildRoutes != null) { r.ChildRoutesDefaultShowCount = r.ChildRoutes.Where(c => c.DefaultShow == true).Count(); } else { r.ChildRoutesDefaultShowCount = 0; } }); responseData.Results = filteredRoutes; responseData.Status = "OK"; HttpContext.Session.Set <List <DanpheRoute> >("validallrouteList", filteredRoutes); } else { responseData.Status = "Failed"; responseData.ErrorMessage = "User is Not valid"; } } else if (reqType != null && reqType == "userPermissionList") { RbacUser currentUser = HttpContext.Session.Get <RbacUser>("currentuser"); List <RbacPermission> userPermissions = new List <RbacPermission>(); if (currentUser != null) { int currentUserId = currentUser.UserId; //get permissions of user userPermissions = RBAC.GetUserAllPermissions(currentUserId); //set session of valid user permission HttpContext.Session.Set <List <RbacPermission> >("userAllPermissions", userPermissions); responseData.Status = "OK"; } else { responseData.Status = "Failed"; responseData.ErrorMessage = "Invalid User."; } responseData.Results = userPermissions; } else if (reqType == "activeBillingCounter") { string activeCounterId = HttpContext.Session.Get <string>("activeBillingCounter"); int actCounterId; int.TryParse(activeCounterId, out actCounterId); responseData.Results = actCounterId; responseData.Status = "OK"; } else if (reqType == "activePharmacyCounter") { string activeCounterId = HttpContext.Session.Get <string>("activePharmacyCounter"); int actCounterId; int.TryParse(activeCounterId, out actCounterId); string activeCounterName = HttpContext.Session.Get <string>("activePharmacyCounterName"); PHRMCounter counter = new PHRMCounter(); counter.CounterId = actCounterId; counter.CounterName = activeCounterName; responseData.Results = counter; responseData.Status = "OK"; } } catch (Exception ex) { responseData.Status = "Failed"; responseData.ErrorMessage = ex.Message + " exception details:" + ex.ToString(); } var routelist = DanpheJSONConvert.SerializeObject(responseData, true); return(DanpheJSONConvert.SerializeObject(responseData, true)); }