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!" }); }
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!" }); }
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(); }