Fix PR feedback

This commit is contained in:
Jim Laurie 2018-01-25 11:53:22 +01:00
parent 2e1283f117
commit 64d3149876
3 changed files with 49 additions and 48 deletions

View File

@ -8,6 +8,7 @@
const _ = require('lodash');
const crypto = require('crypto');
const Grant = require('grant-koa');
const emailRegExp = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
module.exports = {
@ -112,7 +113,7 @@ module.exports = {
_.defaultsDeep(strapi.plugins['users-permissions'].config.grant, {
server: {
protocol: 'http',
host: 'localhost:1337'
host: `${strapi.config.currentEnvironment.server.host}:${strapi.config.currentEnvironment.server.port}`
}
});

View File

@ -55,4 +55,4 @@
"npm": ">= 3.0.0"
},
"license": "MIT"
}
}

View File

@ -47,55 +47,55 @@ exports.connect = (provider, query) => {
return new Promise((resolve, reject) => {
if (!access_token) {
reject(null, {
return reject(null, {
message: 'No access_token.'
});
} else {
// Get the profile.
getProfile(provider, query, async (err, profile) => {
if (err) {
reject(err);
} else {
// We need at least the mail.
if (!profile.email) {
reject([{
message: 'Email was not available.'
}, null]);
} else {
try {
const user = await strapi.query('user', 'users-permissions').findOne({email: profile.email});
if (!strapi.plugins['users-permissions'].config.advanced.allow_register) {
return resolve([null, [{ messages: [{ id: 'Auth.advanced.allow_register' }] }], 'Register action is actualy not available.']);
}
if (user && user.provider === provider) {
return resolve([null, [{ messages: [{ id: 'Auth.form.error.email.taken' }] }], 'Email is already taken.']);
}
if (user && user.provider !== provider && strapi.plugins['users-permissions'].config.advanced.unique_email) {
return resolve([null, [{ messages: [{ id: 'Auth.form.error.email.taken' }] }], 'Email is already taken.']);
}
if (!user || _.get(user, 'provider') !== provider) {
// Create the new user.
const params = _.assign(profile, {
provider: provider
});
const createdUser = await strapi.query('user', 'users-permissions').create(params);
resolve([createdUser, null]);
} else {
resolve([user, null]);
}
} catch (err) {
reject([null, err]);
}
}
}
});
}
// Get the profile.
getProfile(provider, query, async (err, profile) => {
if (err) {
return reject(err);
}
// We need at least the mail.
if (!profile.email) {
reject([{
message: 'Email was not available.'
}, null]);
} else {
try {
const user = await strapi.query('user', 'users-permissions').findOne({email: profile.email});
if (!strapi.plugins['users-permissions'].config.advanced.allow_register) {
return resolve([null, [{ messages: [{ id: 'Auth.advanced.allow_register' }] }], 'Register action is actualy not available.']);
}
if (user && user.provider === provider) {
return resolve([null, [{ messages: [{ id: 'Auth.form.error.email.taken' }] }], 'Email is already taken.']);
}
if (user && user.provider !== provider && strapi.plugins['users-permissions'].config.advanced.unique_email) {
return resolve([null, [{ messages: [{ id: 'Auth.form.error.email.taken' }] }], 'Email is already taken.']);
}
if (!user || _.get(user, 'provider') !== provider) {
// Create the new user.
const params = _.assign(profile, {
provider: provider
});
const createdUser = await strapi.query('user', 'users-permissions').create(params);
return resolve([createdUser, null]);
}
resolve([user, null]);
} catch (err) {
reject([null, err]);
}
}
});
});
};