Example #1
0
        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));
        }
Example #2
0
        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));
        }