コード例 #1
0
        public async Task <ActionResult> ConfirmMemberRequest(string accountName, string confirmationToken)
        {
            var account = GetAccount(accountName);

            if (account == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }

            try
            {
                var member = await UserService.AddMemberAsync(account, GetCurrentUser().Username, confirmationToken);

                MessageService.SendOrganizationMemberUpdatedNotice(account, member);

                TempData["Message"] = String.Format(CultureInfo.CurrentCulture,
                                                    Strings.AddMember_Success, account.Username);

                return(Redirect(Url.ManageMyOrganization(account.Username)));
            }
            catch (EntityException e)
            {
                var failureReason = e.AsUserSafeException().GetUserSafeMessage();
                return(HandleOrganizationMembershipRequestView(new HandleOrganizationMembershipRequestModel(true, account, failureReason)));
            }
        }
コード例 #2
0
        public async Task <JsonResult> AddMember(string accountName, string memberName, bool isAdmin)
        {
            var account = GetAccount(accountName);

            if (account == null ||
                ActionsRequiringPermissions.ManageAccount.CheckPermissions(GetCurrentUser(), account)
                != PermissionsCheckResult.Allowed)
            {
                return(Json((int)HttpStatusCode.Forbidden, Strings.Unauthorized));
            }

            try
            {
                var membership = await UserService.AddMemberAsync(account, memberName, isAdmin);

                return(Json(new OrganizationMemberViewModel(membership)));
            }
            catch (EntityException e)
            {
                return(Json((int)HttpStatusCode.BadRequest, e.Message));
            }
        }