public async Task <IActionResult> Moderators(ModeratorsViewModel model) { if (ModelState.IsValid) { User user = new User { Email = model.Email, UserName = model.Email }; var result = await userManager.CreateAsync(user, model.Password); if (result.Succeeded) { await userManager.AddToRoleAsync(user, "moderator"); return(await Moderators()); } else { foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } } model.Moderators = (await userManager.GetUsersInRoleAsync("moderator")) .Where(u => !userManager.IsInRoleAsync(u, "admin").Result); return(View(model)); }
public ActionResult Moderators(string subName) { if (string.IsNullOrEmpty(subName)) { throw new NotFoundException(); } var sub = _subDao.GetSubByName(subName); if (sub == null) { throw new NotFoundException(); } var model = new ModeratorsViewModel(); model.Sub = sub; model.Moderators = _moderatorWrapper.Wrap(_moderationDao.GetAllModsForSub(sub.Id), _userContext.CurrentUser); if (_userContext.CurrentUser != null) { if (_permissionDao.GetUserPermissionsForSub(_userContext.CurrentUser, sub.Id).HasPermission(ModeratorPermissions.All)) { // super mods can see all pending invites model.Invites = _moderatorInviteWrapper.Wrap(_moderationInviteDao.GetModeratorInvitesForSub(sub.Id)); model.CanInvite = true; } else { // let's see if the current user has a pending invite model.CurrentUserInvite = _moderationInviteDao.GetModeratorInviteInfo(_userContext.CurrentUser.Id, sub.Id); } } return(View(model)); }
public IActionResult Moderators(string searchForUser) { ModeratorsViewModel moderators = new ModeratorsViewModel() { Shops = _db.Shops.Include(s => s.Moderators).ThenInclude(m => m.User).ToList(), SearchResult = searchForUser == null ? null : _db.Users.Where(u => u.UserName == searchForUser).ToList() }; return(View(moderators)); }