Lang for oauth users

This commit is contained in:
vjrj 2018-02-12 19:52:22 +01:00
parent 47b55267df
commit 08b3289f4d
6 changed files with 42 additions and 25 deletions

View file

@ -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: {

View file

@ -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);

View 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;

View file

@ -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;

View file

@ -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",

View file

@ -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"
} }