Created
June 6, 2012 21:59
-
-
Save mrobers1982/2885094 to your computer and use it in GitHub Desktop.
Backplane/Federate SSO - missing displayName Patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
LF.config.jr_profile_cookie = 'janrainProfile'; | |
LF.modules.Auth.userAuthSuccess = LF.modules.Auth.userAuthSuccess = function(response) { | |
clearTimeout(LF.Helpers.auth_timeout); | |
LF.Helpers.auth_timeout=null; | |
//backward compatibility if response is not wrapped | |
var result = response.data || response; | |
LF.Logger.stream('AUTH: Successfully logged the user in, jid is: '+ result.jid); | |
LF.Logger.log_default("***** LIVEFYRE: USER AUTH SUCCESS:", (typeof(result.jid) == 'undefined' || result.jid.indexOf('anonymous') > -1 ? 'Anonymous' : 'Authed user')); | |
/* | |
* For customer using Backplane with Federate SSO, we will need to get the user display name | |
* from the janrain profile cookie on the initial login as it will not be passed in the | |
* identity/login message. The display name will be a floating point number, e.g. 0.396338475234 | |
* if we never received from Backplane. | |
*/ | |
if (typeof Backplane === 'function' && !isNaN(parseFloat(result.display_name))) { | |
console.log("LIVEFYRE (Backplane): display name not set...obtaining from cookie: " + LF.config.jr_profile_cookie); | |
var jr_cookie = $jl.cookie(LF.config.jr_profile_cookie); | |
if (jr_cookie && $jl.parseJSON(jr_cookie)['displayName']) { | |
result.display_name = $jl.parseJSON(jr_cookie)['displayName']; | |
console.log("LIVEFYRE (Backplane): using display name: " + result.display_name); | |
} else { | |
console.log("LIVEFYRE (Backplane): display name not found"); | |
} | |
} | |
//set Fyre user | |
var user = LF.modules.Auth.setUser(result); | |
// | |
LF.data.user = result; | |
//if the user logged in | |
if (!user.anon) { | |
LF.modules.Auth.trouble = false; | |
$jl('#login_issues').remove(); | |
if (LF.Helpers.isUserSpecial()) { | |
// Make sure bootstrap wasn't already called with (me) | |
// If the livefyre_user is not defined, login_init wasn't used, so they weren't pre-logged in | |
// If the livefyre_user isn't special, only the regular version of boostrap was used, so we need to use the special version | |
if (typeof(window.livefyre_user) === 'undefined' || window.livefyre_user == null || window.livefyre_user.special) { | |
LF.Bootstrap.getConversationData(); | |
} | |
if (typeof(window.livefyre_user) !== 'undefined' && window.livefyre_user != null) { | |
window.livefyre_user.bootstrap_loaded = false; | |
} | |
} | |
if (LF.modules.Namespace != null) { | |
LF.modules.Namespace.loaded = false; | |
} | |
// toggle like button | |
$jl('#lf_comments .lf_avatar > a[name="'+user.id+'"]').parent().siblings('.lf_like').html('Unlike'); | |
} else { | |
LF.modules.Auth.showLoginError(); | |
} | |
//now add the delete button to all the user's comment | |
if (user.moderator) { | |
LF.modules.Auth.setModerator(); | |
} else { | |
$jl('#lf_fyre_head').find('.lf_logo').removeClass('moderator'); | |
LF._.each(LF._.select(LF.Comments.models, function(e) { return e.get('user').id == user.id; }), function(e) { | |
if ($jl(e.view.el).find('.lf_mod_options').length == 0) { | |
$jl(e.view.el).find('.lf_flag').after('<span class="lf_mod_options"><a name="delete">delete</a></span>'); | |
} | |
}); | |
LF._.each(LF._.select(LF.FacebookComments.models, function(e) { return e.get('user').id == user.id; }), function(e) { | |
if ($jl(e.view.el).find('.lf_mod_options').length == 0) { | |
$jl(e.view.el).find('.lf_comment_date').after('<span class="lf_mod_options"><a name="delete">delete</a></span>'); | |
} | |
}); | |
LF._.each(LF._.select(LF.TwitterComments.models, function(e) { return e.get('user').id == user.id; }), function(e) { | |
if ($jl(e.view.el).find('.lf_mod_options').length == 0) { | |
$jl(e.view.el).find('.lf_twitter_reply').after('<span class="lf_mod_options"><a name="delete">delete</a></span>'); | |
} | |
}); | |
} | |
LF.modules.Auth.current_jid = user.jid; | |
LF.stats.pageRenderedAt = result.timestamp; | |
LF.stats.pageLoadedAt = new Date(); | |
LF.modules.Auth.auth_pending = false; | |
//unqueue the next (auth required) action in the queue | |
//if the user is anonymous, clear the spinners | |
if (user.anon) { | |
$jl('.lf_post_spinner').hide(); | |
if (!LF.Helpers.hasCustomTemplates()) { | |
$jl('#livefyre').find('.lf_post').html('Post comment as'); | |
} | |
$jl('#lf_comment_form > .lf_action_bar > .lf_follow_link').removeClass('following'); | |
//clear the action queue | |
LF.modules.Auth.cancelAuth(); | |
//if IE, clear cookie | |
if ($jl.browser.msie) { | |
$jl.cookie('msie_token_response', null); | |
} | |
} else { | |
//so we authed, so the popup HAS to be closed.. lets make sure the interval is clear | |
clearTimeout(LF.Helpers.poll_interval); | |
LF.ActionQueue.unqueue(); | |
if (!LF.Helpers.hasCustomTemplates()) { | |
$jl('#livefyre').find('.lf_post').html('Post comment'); | |
} | |
LF.Dispatcher.dispatch('user_logged_in', {display_name: user.display_name}); | |
//if IE, save cookie | |
if ($jl.browser.msie) { | |
$jl.cookie('msie_token_response', $jl.JSON.stringify(response)); | |
} | |
} | |
//callback | |
if (typeof(LF.modules.Auth.finish_auth_callback) === 'function') { | |
LF.modules.Auth.finish_auth_callback(); | |
} | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment