Move auth functions to central location

pull/1737/merge
Berkeley Martinez 2015-08-12 12:15:19 -07:00
parent 49e9d078f1
commit a4e220e2bc
3 changed files with 49 additions and 80 deletions

View File

@ -1,51 +1,14 @@
import assign from 'object.assign';
import debugFactory from 'debug';
import {
setProfileFromGithub,
getFirstImageFromProfile
} from '../../server/utils/auth';
const debug = debugFactory('freecc:models:userIdent');
const { defaultProfileImage } = require('../utils/constantStrings.json');
function getFirstImageFromProfile(profile) {
return profile && profile.photos && profile.photos[0] ?
profile.photos[0].value :
null;
}
// using es6 argument destructing
function setProfileFromGithub(
user,
{
profileUrl: githubURL,
username
},
{
id: githubId,
'avatar_url': picture,
email: githubEmail,
'created_at': joinedGithubOn,
blog: website,
location,
name
}
) {
return assign(
user,
{ isGithubCool: true, isMigrationGrandfathered: false },
{
name,
username: username.toLowerCase(),
location,
joinedGithubOn,
website,
picture,
githubId,
githubURL,
githubEmail,
githubProfile: githubURL
}
);
}
export default function(UserIdent) {
UserIdent.observe('before save', function(ctx, next) {
var userIdent = ctx.currentInstance || ctx.instance;

View File

@ -10,11 +10,10 @@ var uuid = require('node-uuid'),
path = require('path'),
passportProviders = require('./passport-providers');
var setProfileFromGithub = require('./utils/auth').setProfileFromGithub;
var generateKey =
require('loopback-component-passport/lib/models/utils').generateKey;
/**
* Create Express server.
*/
var app = loopback();
expressState.extend(app);
@ -44,41 +43,6 @@ passportConfigurator.setupModels({
userCredentialModel: app.models.userCredential
});
// using es6 argument destructing
function setProfileFromGithub(
user,
{
profileUrl: githubURL,
username
},
{
id: githubId,
'avatar_url': picture,
email: githubEmail,
'created_at': joinedGithubOn,
blog: website,
location,
name
}
) {
return assign(
user,
{ isGithubCool: true, isMigrationGrandfathered: false },
{
name,
username: username.toLowerCase(),
location,
joinedGithubOn,
website,
picture,
githubId,
githubURL,
githubEmail,
githubProfile: githubURL
}
);
}
var passportOptions = {
emailOptional: true,
profileToUser: function(provider, profile) {

42
server/utils/auth.js Normal file
View File

@ -0,0 +1,42 @@
import assign from 'object.assign';
// using es6 argument destructing
export function setProfileFromGithub(
user,
{
profileUrl: githubURL,
username
},
{
id: githubId,
'avatar_url': picture,
email: githubEmail,
'created_at': joinedGithubOn,
blog: website,
location,
name
}
) {
return assign(
user,
{ isGithubCool: true, isMigrationGrandfathered: false },
{
name,
username: username.toLowerCase(),
location,
joinedGithubOn,
website,
picture,
githubId,
githubURL,
githubEmail,
githubProfile: githubURL
}
);
}
export function getFirstImageFromProfile(profile) {
return profile && profile.photos && profile.photos[0] ?
profile.photos[0].value :
null;
}