123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- import { TAPi18n } from '/imports/i18n';
- const passwordField = AccountsTemplates.removeField('password');
- const emailField = AccountsTemplates.removeField('email');
- let disableRegistration = false;
- let disableForgotPassword = false;
- let passwordLoginEnabled = false;
- let oidcRedirectionEnabled = false;
- let oauthServerUrl = "home";
- let oauthDashboardUrl = "";
- Meteor.call('isOidcRedirectionEnabled', (_, result) => {
- if(result)
- {
- oidcRedirectionEnabled = true;
- }
- });
- Meteor.call('isPasswordLoginEnabled', (_, result) => {
- if (result) {
- passwordLoginEnabled = true;
- }
- });
- Meteor.call('getOauthServerUrl', (_, result) => {
- if (result) {
- oauthServerUrl = result;
- }
- });
- Meteor.call('getOauthDashboardUrl', (_, result) => {
- if (result) {
- oauthDashboardUrl = result;
- }
- });
- Meteor.call('isDisableRegistration', (_, result) => {
- if (result) {
- disableRegistration = true;
- //console.log('disableRegistration');
- //console.log(result);
- }
- });
- Meteor.call('isDisableForgotPassword', (_, result) => {
- if (result) {
- disableForgotPassword = true;
- //console.log('disableForgotPassword');
- //console.log(result);
- }
- });
- AccountsTemplates.addFields([
- {
- _id: 'username',
- type: 'text',
- displayName: 'username',
- required: true,
- minLength: 2,
- },
- emailField,
- passwordField,
- {
- _id: 'invitationcode',
- type: 'text',
- displayName: 'Invitation Code',
- required: false,
- minLength: 6,
- template: 'invitationCode',
- },
- ]);
- AccountsTemplates.configure({
- defaultLayout: 'userFormsLayout',
- defaultContentRegion: 'content',
- confirmPassword: true,
- enablePasswordChange: true,
- sendVerificationEmail: true,
- showForgotPasswordLink: !disableForgotPassword,
- forbidClientAccountCreation: disableRegistration,
- onLogoutHook() {
- // here comeslogic for redirect
- if(oidcRedirectionEnabled)
- {
- window.location = oauthServerUrl + oauthDashboardUrl;
- }
- else
- {
- const homePage = 'home';
- if (FlowRouter.getRouteName() === homePage) {
- FlowRouter.reload();
- } else {
- FlowRouter.go(homePage);
- }
- }
- },
- });
- if (!disableForgotPassword) {
- [
- 'forgotPwd',
- 'resetPwd',
- ].forEach(routeName => AccountsTemplates.configureRoute(routeName));
- }
- if (!disableRegistration) {
- [
- 'signUp',
- ].forEach(routeName => AccountsTemplates.configureRoute(routeName));
- }
- [
- 'signIn',
- 'enrollAccount',
- ].forEach(routeName => AccountsTemplates.configureRoute(routeName));
- // We display the form to change the password in a popup window that already
- // have a title, so we unset the title automatically displayed by useraccounts.
- AccountsTemplates.configure({
- texts: {
- title: {
- changePwd: '',
- },
- },
- });
- AccountsTemplates.configureRoute('changePwd', {
- redirect() {
- // We should go back with the popup but we don't since user feedback about the change is within the popup only.
- // Once we have a global feedback popup mechanism we can use that here and close with the following:
- // Popup.back();
- },
- });
- if (Meteor.isServer) {
- [
- 'resetPassword-subject',
- 'resetPassword-text',
- 'verifyEmail-subject',
- 'verifyEmail-text',
- 'enrollAccount-subject',
- 'enrollAccount-text',
- ].forEach(str => {
- const [templateName, field] = str.split('-');
- Accounts.emailTemplates[templateName][field] = (user, url) => {
- return TAPi18n.__(
- `email-${str}`,
- {
- url,
- user: user.getName(),
- siteName: Accounts.emailTemplates.siteName,
- },
- user.getLanguage(),
- );
- };
- });
- }
|