예제 #1
0
        /// <summary>
        /// Check if user is authorized on a given permissionKey
        /// </summary>
        private bool IsAuthorized(HttpContextBase httpContext)
        {
            if (httpContext.User != null && ClaimHelper.GetClaimToString(CaresUserClaims.UserDomainKey) == null)
            {
                httpContext.User = null;
                return(false);
            }

            if (httpContext.User != null && (httpContext.User.IsInRole("Admin") || httpContext.User.IsInRole("SystemAdministrator")))
            {
                return(true);
            }

            Claim serializedUserPermissionSet = ClaimHelper.GetClaimToString(CaresUserClaims.UserPermissionSet);

            if (serializedUserPermissionSet == null)
            {
                return(false);
            }
            var userPermissionSet = JsonConvert.DeserializeObject <List <string> >(serializedUserPermissionSet.Value);

            if (!userPermissionSet.Any())
            {
                return(false);
            }
            return(userPermissionSet.Any(userPSet => userPSet.Contains(PermissionKey)));
        }
예제 #2
0
        /// <summary>
        /// Set User Detail In Session
        /// </summary>
        private void SetUserDetail()
        {
            Claim domainKeyClaim = ClaimHelper.GetClaimToString(CaresUserClaims.UserDomainKey);

            if (domainKeyClaim != null)
            {
                return;
            }
        }
예제 #3
0
 public ActionResult Login(string returnUrl)
 {
     if (!User.Identity.IsAuthenticated || ClaimHelper.GetClaimToString(CaresUserClaims.UserDomainKey) == null)
     {
         ViewBag.ReturnUrl = returnUrl;
         return(View());
     }
     return(RedirectToAction("Index", "Home", new { area = "" }));
 }
예제 #4
0
        /// <summary>
        /// Get All Users
        /// </summary>
        private IEnumerable <AspNetUser> GetAllUsers()
        {
            var domainKeyClaim = ClaimHelper.GetClaimToString(CaresUserClaims.UserDomainKey);

            if (domainKeyClaim == null)
            {
                throw new InvalidOperationException("Domain-Key claim not found!");
            }
            var domainkey = System.Convert.ToInt64(domainKeyClaim.Value);

            return(UserManager.Users.ToList());
            //return UserManager.Users.Where(user => user.UserDomainKey == domainkey).ToList();
        }
예제 #5
0
        public ActionResult CreateUser(UserManagement model)
        {
            if (model == null)
            {
                throw new InvalidOperationException("User Does not exists!");
            }
            var domainKeyClaim = ClaimHelper.GetClaimToString(CaresUserClaims.UserDomainKey);

            if (domainKeyClaim == null)
            {
                throw new InvalidOperationException("Domain-Key claim not found!");
            }
            var domainkey = System.Convert.ToInt64(domainKeyClaim.Value);
            // Creating employee
            //DomainModels.Employee emp = employeeService.CreateEmployeeWithUser(model.UserEmail);

            var user = new AspNetUser
            {
                PhoneNumber   = model.PhoneNumber,
                UserName      = model.UserEmail,
                Email         = model.UserEmail,
                UserDomainKey = domainkey,
                FirstName     = model.FirstName,
                LastName      = model.LastName
            };
            var status = AddUserToUserManager(user, model);

            if (status == null)
            {
                return(RedirectToAction("Index"));
            }

            var roles    = RoleManager.Roles.Where(role => role.Name != "SystemAdministrator").ToList();
            var allUsers = GetAllUsers().ToList();

            //var allEmployees = employeeService.GetAllForUser(allUsers.Select(usr => usr.EmployeeId).ToList()).Select(employee => employee.CreateFrom());
            ViewBag.UserRoles = roles;
            //ViewBag.Employees = allEmployees;
            ViewBag.UserError = status;
            return(View(new UserManagement()));
        }
        /// <summary>
        /// Returns a complete menu for client side
        /// </summary>
        public IEnumerable <MenuView> GetForRole()
        {
            Claim userRoleClaim = ClaimHelper.GetClaimToString(ClaimTypes.Role);

            if (userRoleClaim == null || string.IsNullOrEmpty(userRoleClaim.Value))
            {
                return(null);
            }

            IEnumerable <MenuRight> menuRights = menuRightRepository.GetByRoleName(userRoleClaim.Value).ToList();
            // Get Parent Items
            IEnumerable <Menu> parents = menuRights.Where(menu => menu.Menu.IsRootItem).OrderBy(menu => menu.Menu.SortOrder).Select(menu => menu.Menu).ToList();

            List <MenuView> menuViews = new List <MenuView>();

            foreach (Menu parent in parents)
            {
                MenuView menuView = new MenuView
                {
                    text    = parent.MenuTitle,
                    heading = true,
                    icon    = parent.MenuImagePath,
                    sref    = parent.MenuTargetController
                };

                menuViews.Add(menuView);

                List <Menu> NotParentMenu = menuRights
                                            .Where(menu => !menu.Menu.IsRootItem && menu.Menu.ParentItem_MenuId.Equals(parent.MenuId))
                                            .OrderBy(menu => menu.Menu.SortOrder).Select(menu => menu.Menu).ToList();

                foreach (var menus in NotParentMenu)
                {
                    MenuView menuViewz = new MenuView
                    {
                        text    = menus.MenuTitle,
                        icon    = menus.MenuImagePath,
                        sref    = menus.MenuTargetController,
                        submenu = new List <MenuView>()
                    };

                    menuViews.Add(menuViewz);

                    // Insert Sub menus if any
                    List <Menu> childs = menuRights
                                         .Where(menu => !menu.Menu.IsRootItem && menu.Menu.ParentItem_MenuId == menus.MenuId)
                                         .OrderBy(menu => menu.Menu.SortOrder).Select(menu => menu.Menu).ToList();

                    if (!childs.Any())
                    {
                        continue;
                    }

                    childs.ForEach(childMenu => menuViewz.submenu.Add(new MenuView
                    {
                        text = childMenu.MenuTitle,
                        icon = childMenu.MenuImagePath,
                        sref = childMenu.MenuTargetController
                    }));
                }
            }
            return(menuViews);
        }