//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;
            }
        }
Beispiel #2
0
        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));
        }