Пример #1
0
        public ActionResult RecentActivities(string moduleIds, int pageNo)
        {
            int[] moduleIDs = null;
            if (moduleIds != null)
            {
                moduleIDs = JsonConvert.DeserializeObject <int[]>(moduleIds);
            }
            string dateFormat                  = this.Identity.ToDateFormat();
            int    userId                      = this.Identity.ToUserID();
            int    accountId                   = this.Identity.ToAccountID();
            int    roleId                      = this.Identity.ToRoleID();
            var    usersPermissions            = cachingService.GetUserPermissions(accountId);
            var    accountPermissions          = cachingService.GetAccountPermissions(accountId);
            var    userModules                 = usersPermissions.Where(s => s.RoleId == (short)roleId && accountPermissions.Contains(s.ModuleId)).Select(r => r.ModuleId).ToList();
            GetUserActivitiesResponse response = userService.GetUserActivities(new GetUserActivitiesRequest()
            {
                PageNumber = pageNo,
                UserId     = userId,
                DateFormat = dateFormat,
                AccountId  = accountId,
                ModuleIds  = moduleIDs
            });

            if (response != null)
            {
                response.UserModules = userModules;
            }
            return(new JsonResult
            {
                Data = response,
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
Пример #2
0
        public HttpResponseMessage GetNotificationsCount()
        {
            var accountId          = this.AccountId;
            var userId             = this.UserId;
            var roleId             = this.RoleId;
            var usersPermissions   = cachingService.GetUserPermissions(accountId);
            var accountPermissions = cachingService.GetAccountPermissions(accountId);
            var userModules        = usersPermissions.Where(s => s.RoleId == roleId && accountPermissions.Contains(s.ModuleId)).Select(r => r.ModuleId).ToList();

            if (accountId != 1)
            {
                userModules.Add((byte)AppModules.Download);
            }
            else
            {
                userModules = userModules.Where(m => m != 79).Select(s => s).ToList();
            }

            var response = userService.GetNotificationsCountByDate(new GetNotificationsCountByDateRequest()
            {
                RequestedBy = userId,
                ModuleIds   = userModules
            });

            if (userModules != null)
            {
                response.PermissionModuleIds = userModules;
            }

            return(Request.BuildResponse(response));
        }
Пример #3
0
        public static MenuItemViewModel GetMenuItemsByMenuCategory(MenuCategory topMenucategory, MenuCategory leftMenuCategory, bool isAdvancedGrid)
        {
            ICachingService   cachingService     = IoC.Container.GetInstance <ICachingService>();
            var               result             = new List <MenuItem>();
            var               usersPermissions   = cachingService.GetUserPermissions(Thread.CurrentPrincipal.Identity.ToAccountID());
            var               accountPermissions = cachingService.GetAccountPermissions(Thread.CurrentPrincipal.Identity.ToAccountID());
            var               userModules        = usersPermissions.Where(s => s.RoleId == (short)Thread.CurrentPrincipal.Identity.ToRoleID() && accountPermissions.Contains(s.ModuleId)).Select(r => r.ModuleId).ToList();
            MenuItemViewModel viewModel          = new MenuItemViewModel();

            if (leftMenuCategory == MenuCategory.LeftMenuAccountSettings)
            {
                viewModel.IsAccountSettings = true;
            }
            var menus = new MenuService().GetMenu(topMenucategory.ToString(), leftMenuCategory.ToString(), userModules);

            if (isAdvancedGrid)
            {
                menus = menus.Where(w => w.MenuID != 1 && w.MenuID != 2).ToList();
            }
            foreach (var parentItem in menus.Where(mi => mi.ParentMenuID.Equals(null)))
            {
                result.Add(parentItem);
                var currentItem = (MenuItem)parentItem;
                foreach (var childItem in menus.Where(ci => ci.ParentMenuID == parentItem.MenuID).OrderBy(c => c.SortingID))
                {
                    result.Find(r => r.MenuId == currentItem.MenuId).Children.Add(childItem);
                }
            }
            result.OrderBy(o => o.SortingId).ToList();
            viewModel.TopMenuItems  = result.GroupBy(s => s.Category).Where(s => s.Key == topMenucategory).SelectMany(group => group).OrderBy(group => group.SortingId).ToList();
            viewModel.LeftMenuItems = result.GroupBy(s => s.Category).Where(s => s.Key == leftMenuCategory).SelectMany(group => group).OrderBy(group => group.SortingId).ToList();
            return(viewModel);
        }
Пример #4
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext.HttpContext.Request.IsAuthenticated)
            {
                int   accountId = Thread.CurrentPrincipal.Identity.ToAccountID();
                short roleId    = Thread.CurrentPrincipal.Identity.ToRoleID();

                var accountOperations = cachingService.GetAccountPermissions(accountId);
                var usersPermissions  = cachingService.GetUserPermissions(accountId);

                List <byte> userModules = usersPermissions.Where(s => s.RoleId == (short)roleId).Select(s => s.ModuleId).ToList();
                if (accountOperations.Contains((byte)_Module))
                {
                    if (!userModules.Contains((byte)_Module))
                    {
                        if (filterContext.HttpContext.Request.IsAjaxRequest() || string.Compare("GET", filterContext.HttpContext.Request.HttpMethod, true) != 0)
                        {
                            // Returns 403.
                            filterContext.Result = new ContentResult();
                            filterContext.HttpContext.Response.StatusCode = 403;
                            return;
                        }
                        else
                        {
                            // Returns 401.
                            filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Error", action = "AccessDenied" }));
                            return;
                        }
                    }
                }
                else
                {
                    if (filterContext.HttpContext.Request.IsAjaxRequest() || string.Compare("GET", filterContext.HttpContext.Request.HttpMethod, true) != 0)
                    {
                        // Returns 403.
                        filterContext.Result = new ContentResult();
                        filterContext.HttpContext.Response.StatusCode = 403;
                        return;
                    }
                    else
                    {
                        // Returns 401.
                        filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Error", action = "AccessDenied" }));
                        return;
                    }
                }
            }
        }
Пример #5
0
        public static AccountConfigModule AccountConfigPermission()
        {
            AccountConfigModule configModule          = new AccountConfigModule();
            ICachingService     cachingService        = IoC.Container.GetInstance <ICachingService>();
            var                  usersPermissions     = cachingService.GetUserPermissions(Thread.CurrentPrincipal.Identity.ToAccountID());
            var                  accountModules       = cachingService.GetAccountPermissions(Thread.CurrentPrincipal.Identity.ToAccountID());
            List <byte>          userModules          = usersPermissions.Where(s => s.RoleId == (short)Thread.CurrentPrincipal.Identity.ToRoleID()).Select(s => s.ModuleId).ToList();
            List <ModuleDetails> accountConfigModules = new List <ModuleDetails>();

            accountConfigModules.Add(new ModuleDetails()
            {
                Module       = AppModules.Accounts,
                Controller   = "Account",
                ActionMethod = "AccountList"
            });
            accountConfigModules.Add(new ModuleDetails()
            {
                Module       = AppModules.Users,
                Controller   = "User",
                ActionMethod = "UserList"
            });
            accountConfigModules.Add(new ModuleDetails()
            {
                Module       = AppModules.Roles,
                Controller   = "Role",
                ActionMethod = "AddRolePermissions"
            });
            accountConfigModules.Add(new ModuleDetails()
            {
                Module       = AppModules.CustomFields,
                Controller   = "CustomField",
                ActionMethod = "CustomFields"
            });
            accountConfigModules.Add(new ModuleDetails()
            {
                Module       = AppModules.LeadScore,
                Controller   = "LeadScore",
                ActionMethod = "RulesList"
            });
            accountConfigModules.Add(new ModuleDetails()
            {
                Module       = AppModules.ImportData,
                Controller   = "ImportData",
                ActionMethod = "ImportDataList"
            });
            accountConfigModules.Add(new ModuleDetails()
            {
                Module       = AppModules.Tags,
                Controller   = "Tag",
                ActionMethod = "TagList"
            });
            accountConfigModules.Add(new ModuleDetails()
            {
                Module       = AppModules.DropdownFields,
                Controller   = "DropdownValues",
                ActionMethod = "DropdownValuesList"
            });
            accountConfigModules.Add(new ModuleDetails()
            {
                Module       = AppModules.LeadAdapter,
                Controller   = "LeadAdapter",
                ActionMethod = "LeadAdapterList"
            });
            List <AppModules> configModules = new List <AppModules>();

            configModules = accountConfigModules.Select(s => s.Module).ToList();
            if (configModules.Any(cm => userModules.Contains((byte)cm) && accountModules.Contains((byte)cm)))
            {
                configModule.HasModule    = true;
                configModule.Controller   = accountConfigModules.FirstOrDefault(f => userModules.Contains((byte)f.Module) && accountModules.Contains((byte)f.Module)).Controller;
                configModule.ActionMethod = accountConfigModules.FirstOrDefault(f => userModules.Contains((byte)f.Module) && accountModules.Contains((byte)f.Module)).ActionMethod;
                return(configModule);
            }
            else
            {
                configModule.HasModule = false;
                return(configModule);
            }
        }