public ActionResult ValidateFbAdminUser(long?id, string email) { if (id == null && String.IsNullOrEmpty(email)) { return(ErrorResponse("fb userId or email should be supplied")); } string error; bool providerApproved; var currentUser = this.CurrentUser(); var fbUser = _userAccountServices.TryFoundUserBySocialCredentials(email, id == null ? string.Empty : id.ToString(), CommonEnums.SocialProviders.Facebook, out providerApproved, out error); var authenticationResult = new FbAdminAuthenticationResult { state = FbPageAppAdminMatchResults.Unknown }; if (fbUser == null) { authenticationResult.state = currentUser != null ? FbPageAppAdminMatchResults.NotFoundAuthenticated : FbPageAppAdminMatchResults.NotFoundNotAuthenticated; } else { authenticationResult.fbUserId = fbUser.UserId; authenticationResult.fbUserEmail = fbUser.Email; authenticationResult.state = providerApproved ? FbPageAppAdminMatchResults.FoundAndProviderdApproved : FbPageAppAdminMatchResults.FoundAndMatchedByEmail; } return(Json(new JsonResponseToken { success = true, result = authenticationResult, error = error }, JsonRequestBehavior.AllowGet)); }
public ActionResult LoadAdminPanel(FbAdminAuthenticationResult token) { switch (token.state) { case FbPageAppAdminMatchResults.FoundAndProviderdApproved: string error; if (token.fbUserId != null && _mainAccountController.ForceLoginUser(token.fbUserId, token.trackingId, out error)) { var storeCreated = _webStoreFacebookServices.CreateOrValidateUserFbStore((int)token.fbUserId, token.trackingId, out error); if (storeCreated) { return(RedirectToAction("AppSettings", new { trackingID = token.trackingId })); } token.IsValid = false; token.Message = error; } else { token.Message = "FB Uid required"; token.IsValid = false; } break; case FbPageAppAdminMatchResults.FoundAndMatchedByEmail: var currentUser = this.CurrentUser(); if (currentUser != null && currentUser.Email != token.fbUserEmail) { _mainAccountController.SignUserOut(); } token.IsValid = true; break; case FbPageAppAdminMatchResults.NotFoundAuthenticated: case FbPageAppAdminMatchResults.NotFoundNotAuthenticated: token.IsValid = true; break; default: token.IsValid = false; token.Message = "Unknown authentication state. Please try again or contact support team"; break; } return(View("AdminPanel", token)); }