public async Task<JsonResult> ChangeProfile(ChangeProfileAddressModel model)
        {
            var accessToken = await _dbContext
                .AccessToken
                .SingleOrDefaultAsync(t => t.Value == model.AccessToken);

            var targetUser = await _dbContext.Users.FindAsync(model.OpenId);
            var app = await _developerApiService.AppInfoAsync(accessToken.ApplyAppId);
            if (!_dbContext.LocalAppGrant.Exists(t => t.AppID == accessToken.ApplyAppId && t.APIUserId == targetUser.Id))
            {
                return Json(new AiurProtocal { Code = ErrorType.Unauthorized, Message = "This user did not grant your app!" });
            }
            if (!app.App.ChangeBasicInfo)
            {
                return this.Protocal(ErrorType.Unauthorized, "You app is not allowed to change users' basic info.");
            }
            if (!string.IsNullOrEmpty(model.NewNickName))
            {
                targetUser.NickName = model.NewNickName;
            }
            if (!string.IsNullOrEmpty(model.NewIconAddress))
            {
                targetUser.HeadImgUrl = model.NewIconAddress;
            }
            if (!string.IsNullOrEmpty(model.NewBio))
            {
                targetUser.Bio = model.NewBio;
            }
            await _dbContext.SaveChangesAsync();
            return Json(new AiurProtocal { Code = ErrorType.Success, Message = "Successfully changed this user's nickname!" });
        }
Example #2
0
 public async Task<JsonResult> ChangeProfile(ChangeProfileAddressModel model)
 {
     var user = await _grantChecker.EnsureGranted(model.AccessToken, model.OpenId, t => t.ChangeBasicInfo);
     user.NickName = model.NewNickName;
     user.IconFilePath = model.NewIconFilePathName;
     user.Bio = model.NewBio;
     await _dbContext.SaveChangesAsync();
     return Json(new AiurProtocol { Code = ErrorType.Success, Message = "Successfully changed this user's profile!" });
 }
Example #3
0
        public async Task <JsonResult> ChangeProfile(ChangeProfileAddressModel model)
        {
            var target = await _dbContext
                         .AccessToken
                         .SingleOrDefaultAsync(t => t.Value == model.AccessToken);

            if (target == null)
            {
                return(Json(new ValidateAccessTokenViewModel {
                    code = ErrorType.Unauthorized, message = "We can not validate your access token!"
                }));
            }
            else if (!target.IsAlive)
            {
                return(Json(new ValidateAccessTokenViewModel {
                    code = ErrorType.Timeout, message = "Your access token is already Timeout!"
                }));
            }
            throw new NotImplementedException();
        }