protected override DriverResult Display(FacebookConnectWidgetPart part, string displayType, dynamic shapeHelper) { return(ContentShape("Parts_FacebookConnectWidget", () => { var settings = _siteService.GetSiteSettings().As <FacebookConnectSettingsPart>(); var authenticatedUser = _authenticationService.GetAuthenticatedUser(); var isConnected = _facebookConnectService.AuthenticatedFacebookUserIsSaved() || (authenticatedUser != null && !string.IsNullOrEmpty(authenticatedUser.As <FacebookUserPart>().Name)); IFacebookUser authenticatedFacebookUser = null; if (isConnected) { authenticatedFacebookUser = authenticatedUser.As <FacebookUserPart>(); } return shapeHelper.Parts_FacebookConnectWidget( IsAuthenticated: authenticatedUser != null, IsConnected: isConnected, IsAuthenticatedWithFacebookConnect: _facebookConnectService.IsAuthenticated(), AuthenticatedFacebookUser: authenticatedFacebookUser); })); }
/// <summary> /// Checks if the currently authenticated Facebook user's profile data is saved to a local user profile /// </summary> public static bool AuthenticatedFacebookUserIsSaved(this IFacebookConnectService service) { if (!service.IsAuthenticated()) { return(false); } return(service.GetFacebookUser(service.Session.UserId) != null); }
/// <summary> /// Gets the current authenticated user's Facebook user profile data /// </summary> public static IFacebookUser GetAuthenticatedFacebookUser(this IFacebookConnectService service) { if (!service.IsAuthenticated()) { return(null); } return(service.GetFacebookUser(service.Session.UserId)); }
public void Created(UserContext context) { if (!_facebookConnectService.IsAuthenticated()) { return; } // This can happen if someone connects to the site with FB, logs out then registers a new user while being logged in to FB. // This prevents to attach the same FB user to different local users. if (_facebookConnectService.AuthenticatedFacebookUserIsSaved()) { return; } var facebookUser = _facebookConnectService.FetchMe(); IEnumerable <FacebookConnectValidationKey> errors; if (_facebookConnectService.UserIsValid(facebookUser, _siteService.GetSiteSettings().As <FacebookConnectSettingsPart>(), out errors)) { _facebookConnectService.UpdateFacebookUser(context.User.As <IUser>(), facebookUser); } }