public InviteUserToTeamViewModel CreateInviteUserToTeamViewModel(int teamId, User currentUser)
        {
            var team = db.Teams.Find(teamId);

            if (team == null || team.OwnerId != currentUser.Id)
            {
                return(null);
            }

            var currentUserRole = team.UserPermissions
                                  .Where(perm => perm.User == currentUser && perm.TeamId == teamId)
                                  .FirstOrDefault()
                                  .TeamRole;

            if (!currentUserRole.Permissions.CanInviteToTeam)
            {
                return(null);
            }

            var viewModel = new InviteUserToTeamViewModel()
            {
                TeamToInvite = team
            };

            return(viewModel);
        }
示例#2
0
        public ActionResult InviteUser(int?teamId)
        {
            var teamToInvite = db.Teams.Find(teamId);

            InviteUserToTeamViewModel viewModel = new InviteUserToTeamViewModel()
            {
                TeamToInvite = teamToInvite
            };

            return(View(viewModel));
        }
示例#3
0
        public ActionResult InviteUser(InviteUserToTeamViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var _teamId = viewModel.TeamToInvite.Id;
                var email   = viewModel.EmailOfInvitedUser;

                string errorMessage = teamService.InviteUserToTeam(_teamId, email);

                if (errorMessage == "")
                {
                    return(RedirectToAction("ManageTeam", new { teamId = _teamId }));
                }

                ViewBag.ErrorMessage = errorMessage;
                return(View(viewModel));
            }

            return(View(viewModel));
        }