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 }); }
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)); }
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); }
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; } } } }
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); } }