2021-09-07 15:11:12 +02:00

119 lines
2.5 KiB
JavaScript

'use strict';
const _ = require('lodash');
const { getService } = require('../utils');
const { isValidEmailTemplate } = require('./validation/email-template');
module.exports = {
async getEmailTemplate(ctx) {
ctx.send(
await strapi
.store({
environment: '',
type: 'plugin',
name: 'users-permissions',
key: 'email',
})
.get()
);
},
async updateEmailTemplate(ctx) {
if (_.isEmpty(ctx.request.body)) {
return ctx.badRequest('Request body cannot be empty');
}
const emailTemplates = ctx.request.body['email-templates'];
for (let key in emailTemplates) {
const template = emailTemplates[key].options.message;
if (!isValidEmailTemplate(template)) {
return ctx.badRequest('Invalid template');
}
}
await strapi
.store({
environment: '',
type: 'plugin',
name: 'users-permissions',
key: 'email',
})
.set({ value: emailTemplates });
ctx.send({ ok: true });
},
async getAdvancedSettings(ctx) {
const settings = await strapi
.store({
environment: '',
type: 'plugin',
name: 'users-permissions',
key: 'advanced',
})
.get();
const roles = await getService('role').getRoles();
ctx.send({ settings, roles });
},
async updateAdvancedSettings(ctx) {
if (_.isEmpty(ctx.request.body)) {
return ctx.badRequest('Request body cannot be empty');
}
await strapi
.store({
environment: '',
type: 'plugin',
name: 'users-permissions',
key: 'advanced',
})
.set({ value: ctx.request.body });
ctx.send({ ok: true });
},
async getProviders(ctx) {
const providers = await strapi
.store({
environment: '',
type: 'plugin',
name: 'users-permissions',
key: 'grant',
})
.get();
for (const provider in providers) {
if (provider !== 'email') {
providers[provider].redirectUri = strapi
.plugin('users-permissions')
.service('providers')
.buildRedirectUri(provider);
}
}
ctx.send(providers);
},
async updateProviders(ctx) {
if (_.isEmpty(ctx.request.body)) {
return ctx.badRequest('Request body cannot be empty');
}
await strapi
.store({
environment: '',
type: 'plugin',
name: 'users-permissions',
key: 'grant',
})
.set({ value: ctx.request.body.providers });
ctx.send({ ok: true });
},
};