コード例 #1
0
        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));
        }
コード例 #2
0
ファイル: ModeratorsController.cs プロジェクト: snetts/skimur
        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));
        }
コード例 #3
0
        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));
        }