public ActionResult Index(FormCollection input) { if (!Services.Authorizer.Authorize(Permissions.ManageUsers, "Not authorized to manage users")) return new HttpUnauthorizedResult(); var viewModel = new UsersIndexViewModel { Users = new List<UserEntry>(), Options = new UserIndexOptions() }; UpdateModel(viewModel); var checkedEntries = viewModel.Users.Where(c => c.IsChecked); switch (viewModel.Options.BulkAction) { case UsersBulkAction.None: break; case UsersBulkAction.Approve: foreach (var entry in checkedEntries) { Approve(entry.User.Id); } break; case UsersBulkAction.Disable: foreach (var entry in checkedEntries) { Moderate(entry.User.Id); } break; //case UsersBulkAction.ChallengeEmail: // foreach (var entry in checkedEntries) // { // SendChallengeEmail(entry.User.Id); // } // break; case UsersBulkAction.Delete: foreach (var entry in checkedEntries) { Delete(entry.User.Id); } break; } return RedirectToAction("Index", ControllerContext.RouteData.Values); }
public async Task<ActionResult> Index(UserIndexOptions options, PagerParameters pagerParameters) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageUsers)) { return Unauthorized(); } var siteSettings = await _siteService.GetSiteSettingsAsync(); var pager = new Pager(pagerParameters, siteSettings.PageSize); // default options if (options == null) { options = new UserIndexOptions(); } var users = _session.QueryAsync<User, UserIndex>(); switch (options.Filter) { case UsersFilter.Approved: //users = users.Where(u => u.RegistrationStatus == UserStatus.Approved); break; case UsersFilter.Pending: //users = users.Where(u => u.RegistrationStatus == UserStatus.Pending); break; case UsersFilter.EmailPending: //users = users.Where(u => u.EmailStatus == UserStatus.Pending); break; } if (!string.IsNullOrWhiteSpace(options.Search)) { users = users.Where(u => u.NormalizedUserName.Contains(options.Search) || u.NormalizedEmail.Contains(options.Search)); } switch (options.Order) { case UsersOrder.Name: users = users.OrderBy(u => u.NormalizedUserName); break; case UsersOrder.Email: users = users.OrderBy(u => u.NormalizedEmail); break; case UsersOrder.CreatedUtc: //users = users.OrderBy(u => u.CreatedUtc); break; case UsersOrder.LastLoginUtc: //users = users.OrderBy(u => u.LastLoginUtc); break; } var count = await users.Count(); var results = await users .Skip(pager.GetStartIndex()) .Take(pager.PageSize) .List(); // maintain previous route data when generating page links var routeData = new RouteData(); routeData.Values.Add("Options.Filter", options.Filter); routeData.Values.Add("Options.Search", options.Search); routeData.Values.Add("Options.Order", options.Order); var pagerShape = New.Pager(pager).TotalItemCount(count).RouteData(routeData); var model = new UsersIndexViewModel { Users = results .Select(x => new UserEntry { User = x }) .ToList(), Options = options, Pager = pagerShape }; return View(model); }
public ActionResult Index(UserIndexOptions options, PagerParameters pagerParameters) { if (!Services.Authorizer.Authorize(Permissions.ManageUsers, "Not authorized to list users")) return new HttpUnauthorizedResult(); var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters); // default options if (options == null) options = new UserIndexOptions(); var users = _userRepository.Table; switch (options.Filter) { case UsersFilter.Approved: users = users.Where(u => u.RegistrationStatus == UserStatus.Approved); break; case UsersFilter.Pending: users = users.Where(u => u.RegistrationStatus == UserStatus.Pending); break; case UsersFilter.EmailPending: users = users.Where(u => u.EmailStatus == UserStatus.Pending); break; } if (!String.IsNullOrWhiteSpace(options.Search)) { users = users.Where(u => u.UserName.Contains(options.Search) || u.Email.Contains(options.Search)); } switch (options.Order) { case UsersOrder.Name: users = users.OrderBy(u => u.UserName); break; case UsersOrder.Email: users = users.OrderBy(u => u.Email); break; } pager.Total = users.Count(); var results = users.Skip((pager.Page - 1) * pager.PageSize).Take(pager.PageSize) .ToList(); var model = new UsersIndexViewModel { Users = results .Select(x => new UserEntry { User = x }) .ToList(), Options = options, Pager = pager }; // maintain previous route data when generating page links var routeData = new RouteData(); routeData.Values.Add("Options.Filter", options.Filter); routeData.Values.Add("Options.Search", options.Search); routeData.Values.Add("Options.Order", options.Order); pager.RouteData = routeData; return View(model); }
public ActionResult Index(UserIndexOptions options, PagerParameters pagerParameters) { //if (!Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not authorized to list users"))) if (!Services.Authorizer.Authorize(Permissions.ChangePassword, T("Not authorized to list users"))) return new HttpUnauthorizedResult(); var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters); // default options if (options == null) options = new UserIndexOptions(); var users = Services.ContentManager.Query<UserPart, UserPartRecord>(); switch (options.Filter) { case UsersFilter.Approved: users = users.Where(u => u.RegistrationStatus == UserStatus.Approved); break; case UsersFilter.Pending: users = users.Where(u => u.RegistrationStatus == UserStatus.Pending); break; case UsersFilter.EmailPending: users = users.Where(u => u.EmailStatus == UserStatus.Pending); break; } if (!String.IsNullOrWhiteSpace(options.Search)) { users = users.Where(u => u.UserName.Contains(options.Search) || u.Email.Contains(options.Search)); } var pagerShape = Shape.Pager(pager).TotalItemCount(users.Count()); switch (options.Order) { case UsersOrder.Name: users = users.OrderBy(u => u.UserName); break; case UsersOrder.Email: users = users.OrderBy(u => u.Email); break; } var results = users .Slice(pager.GetStartIndex(), pager.PageSize) .ToList(); var model = new UsersIndexViewModel { Users = results .Select(x => new UserEntry { User = x.Record }) .ToList(), Options = options, Pager = pagerShape }; // maintain previous route data when generating page links var routeData = new RouteData(); routeData.Values.Add("Options.Filter", options.Filter); routeData.Values.Add("Options.Search", options.Search); routeData.Values.Add("Options.Order", options.Order); pagerShape.RouteData(routeData); return View(model); }