mirror of
https://github.com/YunoHost-Apps/rocketchat_ynh.git
synced 2024-09-03 20:16:25 +02:00
71 lines
5.5 KiB
JavaScript
71 lines
5.5 KiB
JavaScript
(function () {
|
|
|
|
/* Imports */
|
|
var Meteor = Package.meteor.Meteor;
|
|
var _ = Package.underscore._;
|
|
var Random = Package.random.Random;
|
|
var Accounts = Package['accounts-base'].Accounts;
|
|
var AccountsServer = Package['accounts-base'].AccountsServer;
|
|
var Google = Package.google.Google;
|
|
|
|
(function(){
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// packages/accounts-google/google.js //
|
|
// //
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
Accounts.oauth.registerService('google'); // 1
|
|
// 2
|
|
if (Meteor.isClient) { // 3
|
|
Meteor.loginWithGoogle = function(options, callback) { // 4
|
|
// support a callback without options // 5
|
|
if (! callback && typeof options === "function") { // 6
|
|
callback = options; // 7
|
|
options = null; // 8
|
|
} // 9
|
|
// 10
|
|
// Use Google's domain-specific login page if we want to restrict creation to // 11
|
|
// a particular email domain. (Don't use it if restrictCreationByEmailDomain // 12
|
|
// is a function.) Note that all this does is change Google's UI --- // 13
|
|
// accounts-base/accounts_server.js still checks server-side that the server // 14
|
|
// has the proper email address after the OAuth conversation. // 15
|
|
if (typeof Accounts._options.restrictCreationByEmailDomain === 'string') { // 16
|
|
options = _.extend({}, options || {}); // 17
|
|
options.loginUrlParameters = _.extend({}, options.loginUrlParameters || {}); // 18
|
|
options.loginUrlParameters.hd = Accounts._options.restrictCreationByEmailDomain; // 19
|
|
} // 20
|
|
var credentialRequestCompleteCallback = Accounts.oauth.credentialRequestCompleteHandler(callback);
|
|
Google.requestCredential(options, credentialRequestCompleteCallback); // 22
|
|
}; // 23
|
|
} else { // 24
|
|
Accounts.addAutopublishFields({ // 25
|
|
forLoggedInUser: _.map( // 26
|
|
// publish access token since it can be used from the client (if // 27
|
|
// transmitted over ssl or on // 28
|
|
// localhost). https://developers.google.com/accounts/docs/OAuth2UserAgent // 29
|
|
// refresh token probably shouldn't be sent down. // 30
|
|
Google.whitelistedFields.concat(['accessToken', 'expiresAt']), // don't publish refresh token // 31
|
|
function (subfield) { return 'services.google.' + subfield; }), // 32
|
|
// 33
|
|
forOtherUsers: _.map( // 34
|
|
// even with autopublish, no legitimate web app should be // 35
|
|
// publishing all users' emails // 36
|
|
_.without(Google.whitelistedFields, 'email', 'verified_email'), // 37
|
|
function (subfield) { return 'services.google.' + subfield; }) // 38
|
|
}); // 39
|
|
} // 40
|
|
// 41
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
}).call(this);
|
|
|
|
|
|
/* Exports */
|
|
if (typeof Package === 'undefined') Package = {};
|
|
Package['accounts-google'] = {};
|
|
|
|
})();
|
|
|
|
//# sourceMappingURL=accounts-google.js.map
|