Lang for oauth users
This commit is contained in:
parent
47b55267df
commit
08b3289f4d
6 changed files with 42 additions and 25 deletions
|
|
@ -10,11 +10,12 @@ export default (options, user, lang) => {
|
||||||
const applicationName = i18n.t('AppName');
|
const applicationName = i18n.t('AppName');
|
||||||
const firstName = OAuthProfile ? OAuthProfile.name.first : options.profile.name.first;
|
const firstName = OAuthProfile ? OAuthProfile.name.first : options.profile.name.first;
|
||||||
const emailAddress = OAuthProfile ? OAuthProfile.email : options.email;
|
const emailAddress = OAuthProfile ? OAuthProfile.email : options.email;
|
||||||
|
const welcome = i18n.t('welcome');
|
||||||
if (emailAddress) {
|
if (emailAddress) {
|
||||||
sendEmail({
|
sendEmail({
|
||||||
to: emailAddress,
|
to: emailAddress,
|
||||||
from: `${applicationName} <noreply@comunes.org>`,
|
from: `${applicationName} <noreply@comunes.org>`,
|
||||||
subject: `[${applicationName}] Welcome, ${firstName}!`,
|
subject: `[${applicationName}] ${welcome} ${firstName}!`,
|
||||||
lang,
|
lang,
|
||||||
template: 'welcome',
|
template: 'welcome',
|
||||||
templateVars: {
|
templateVars: {
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
const parseGoogleData = service => {
|
const parseGoogleData = service => ({
|
||||||
return {
|
email: service.email,
|
||||||
email: service.email,
|
name: {
|
||||||
name: {
|
first: service.given_name,
|
||||||
first: service.given_name,
|
last: service.family_name
|
||||||
last: service.family_name,
|
},
|
||||||
},
|
lang: service.locale
|
||||||
};
|
});
|
||||||
};
|
|
||||||
|
|
||||||
const parseGithubData = (profile, service) => {
|
const parseGithubData = (profile, service) => {
|
||||||
const name = profile.name.split(' ');
|
const name = profile.name.split(' ');
|
||||||
|
|
@ -14,20 +13,18 @@ const parseGithubData = (profile, service) => {
|
||||||
email: service.email,
|
email: service.email,
|
||||||
name: {
|
name: {
|
||||||
first: name[0],
|
first: name[0],
|
||||||
last: name[1],
|
last: name[1]
|
||||||
},
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const parseFacebookData = service => {
|
const parseFacebookData = service => ({
|
||||||
return {
|
email: service.email,
|
||||||
email: service.email,
|
name: {
|
||||||
name: {
|
first: service.first_name,
|
||||||
first: service.first_name,
|
last: service.last_name
|
||||||
last: service.last_name,
|
}
|
||||||
},
|
});
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
const getDataForService = (profile, services) => {
|
const getDataForService = (profile, services) => {
|
||||||
if (services.facebook) return parseFacebookData(services.facebook);
|
if (services.facebook) return parseFacebookData(services.facebook);
|
||||||
|
|
|
||||||
8
imports/startup/server/accounts/lang-fallback.js
Normal file
8
imports/startup/server/accounts/lang-fallback.js
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
const getFallbackLang = (lang) => {
|
||||||
|
if (lang && (lang === 'ast' || lang === 'gl' || lang === 'eu' || lang === 'ca' || lang.match(/^es/))) {
|
||||||
|
return 'es';
|
||||||
|
}
|
||||||
|
return 'en';
|
||||||
|
};
|
||||||
|
|
||||||
|
export default getFallbackLang;
|
||||||
|
|
@ -1,18 +1,25 @@
|
||||||
import { Accounts } from 'meteor/accounts-base';
|
import { Accounts } from 'meteor/accounts-base';
|
||||||
import sendWelcomeEmail from '../../../api/Users/server/send-welcome-email';
|
import sendWelcomeEmail from '../../../api/Users/server/send-welcome-email';
|
||||||
|
import getOAuthProfile from '../../../modules/get-oauth-profile';
|
||||||
|
import getFallbackLang from './lang-fallback';
|
||||||
|
|
||||||
Accounts.onCreateUser((options, user) => {
|
Accounts.onCreateUser((options, user) => {
|
||||||
const userToCreate = user;
|
const userToCreate = user;
|
||||||
// console.log(JSON.stringify(user));
|
// console.log(JSON.stringify(user));
|
||||||
// console.log(JSON.stringify(options));
|
// console.log(JSON.stringify(options));
|
||||||
|
|
||||||
let lang = 'en'; // fallback
|
let lang = 'en'; // fallback
|
||||||
if (options.profile) {
|
if (options.profile) {
|
||||||
userToCreate.profile = options.profile;
|
userToCreate.profile = options.profile;
|
||||||
userToCreate.lang = options.profile.lang;
|
userToCreate.lang = options.profile.lang;
|
||||||
lang = options.profile.lang;
|
// console.log(JSON.stringify(user));
|
||||||
|
lang = userToCreate.lang;
|
||||||
delete options.profile.lang;
|
delete options.profile.lang;
|
||||||
} else {
|
}
|
||||||
// TODO others (google, etc) ?
|
const OAuthProfile = getOAuthProfile(options, user);
|
||||||
|
if (OAuthProfile) {
|
||||||
|
userToCreate.lang = getFallbackLang(OAuthProfile && OAuthProfile.lang ? OAuthProfile.lang : lang);
|
||||||
|
lang = userToCreate.lang;
|
||||||
}
|
}
|
||||||
sendWelcomeEmail(options, userToCreate, lang);
|
sendWelcomeEmail(options, userToCreate, lang);
|
||||||
return userToCreate;
|
return userToCreate;
|
||||||
|
|
|
||||||
|
|
@ -158,6 +158,7 @@
|
||||||
"Más información sobre este fuego": "More information about this fire",
|
"Más información sobre este fuego": "More information about this fire",
|
||||||
"termsAccept": "I accept the <1>conditions of service</1> of this site",
|
"termsAccept": "I accept the <1>conditions of service</1> of this site",
|
||||||
"Bienvenid@!": "Welcome!",
|
"Bienvenid@!": "Welcome!",
|
||||||
|
"welcome": "Welcome",
|
||||||
"Verifica tu dirección de correo": "Verify Your Email Address",
|
"Verifica tu dirección de correo": "Verify Your Email Address",
|
||||||
"Zonas vigiladas": "Monitored areas",
|
"Zonas vigiladas": "Monitored areas",
|
||||||
"En verde, las zonas vigiladas por nuestros usuari@s actualmente": "In green, the areas monitored by our users currently",
|
"En verde, las zonas vigiladas por nuestros usuari@s actualmente": "In green, the areas monitored by our users currently",
|
||||||
|
|
|
||||||
|
|
@ -228,6 +228,7 @@
|
||||||
"Última actualización, {{when}}": "Última actualización, {{when}}",
|
"Última actualización, {{when}}": "Última actualización, {{when}}",
|
||||||
"termsAccept": "Acepto las <1>condiciones de servicio</1> de este sitio",
|
"termsAccept": "Acepto las <1>condiciones de servicio</1> de este sitio",
|
||||||
"Bienvenid@!": "Bienvenid@!",
|
"Bienvenid@!": "Bienvenid@!",
|
||||||
|
"welcome": "Bienvenid@",
|
||||||
"Has iniciado sesión con {{service}} usando la dirección de correo {{email}}.": "Has iniciado sesión con {{service}} usando la dirección de correo {{email}}.",
|
"Has iniciado sesión con {{service}} usando la dirección de correo {{email}}.": "Has iniciado sesión con {{service}} usando la dirección de correo {{email}}.",
|
||||||
"Verifica tu dirección de correo":
|
"Verifica tu dirección de correo":
|
||||||
"Verifica tu dirección de correo",
|
"Verifica tu dirección de correo",
|
||||||
|
|
@ -269,5 +270,7 @@
|
||||||
"Detectado":
|
"Detectado":
|
||||||
"Detectado",
|
"Detectado",
|
||||||
"Zonas vigiladas por nuestros usuari@s actualmente":
|
"Zonas vigiladas por nuestros usuari@s actualmente":
|
||||||
"Zonas vigiladas por nuestros usuari@s actualmente"
|
"Zonas vigiladas por nuestros usuari@s actualmente",
|
||||||
|
"Iniciar sesión con Facebook":
|
||||||
|
"Iniciar sesión con Facebook"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue