mirror of
				https://github.com/strapi/strapi.git
				synced 2025-10-31 09:56:44 +00:00 
			
		
		
		
	 a22f2cefef
			
		
	
	
		a22f2cefef
		
	
	
	
	
		
			
			- set security defaults for development mode that are standard - refactor error messages to work without ctx.request.admin - remove mask middleware and add a sanitization layer to the core-api to hide private fileds
		
			
				
	
	
		
			84 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| /**
 | |
|  * Email.js controller
 | |
|  *
 | |
|  * @description: A set of functions called "actions" of the `email` plugin.
 | |
|  */
 | |
| 
 | |
| const _ = require('lodash');
 | |
| 
 | |
| module.exports = {
 | |
|   send: async ctx => {
 | |
|     // Retrieve provider configuration.
 | |
|     const config = await strapi
 | |
|       .store({
 | |
|         environment: strapi.config.environment,
 | |
|         type: 'plugin',
 | |
|         name: 'email',
 | |
|       })
 | |
|       .get({ key: 'provider' });
 | |
| 
 | |
|     // Verify if the file email is enable.
 | |
|     if (config.enabled === false) {
 | |
|       strapi.log.error('Email is disabled');
 | |
|       return ctx.badRequest(null, [
 | |
|         {
 | |
|           messages: [
 | |
|             { id: 'Email.status.disabled', message: 'Emails disabled' },
 | |
|           ],
 | |
|         },
 | |
|       ]);
 | |
|     }
 | |
| 
 | |
|     // Something is wrong
 | |
|     if (ctx.status === 400) {
 | |
|       return;
 | |
|     }
 | |
| 
 | |
|     let options = ctx.request.body;
 | |
| 
 | |
|     await strapi.plugins.email.services.email.send(options, config);
 | |
| 
 | |
|     // Send 200 `ok`
 | |
|     ctx.send({});
 | |
|   },
 | |
| 
 | |
|   getEnvironments: async ctx => {
 | |
|     const environments = _.map(
 | |
|       _.keys(strapi.config.environments),
 | |
|       environment => {
 | |
|         return {
 | |
|           name: environment,
 | |
|           active: strapi.config.environment === environment,
 | |
|         };
 | |
|       }
 | |
|     );
 | |
| 
 | |
|     ctx.send({ environments });
 | |
|   },
 | |
| 
 | |
|   getSettings: async ctx => {
 | |
|     let config = await strapi.plugins.email.services.email.getProviderConfig(
 | |
|       ctx.params.environment
 | |
|     );
 | |
| 
 | |
|     ctx.send({
 | |
|       providers: strapi.plugins.email.config.providers,
 | |
|       config,
 | |
|     });
 | |
|   },
 | |
| 
 | |
|   updateSettings: async ctx => {
 | |
|     await strapi
 | |
|       .store({
 | |
|         environment: ctx.params.environment,
 | |
|         type: 'plugin',
 | |
|         name: 'email',
 | |
|       })
 | |
|       .set({ key: 'provider', value: ctx.request.body });
 | |
| 
 | |
|     ctx.send({ ok: true });
 | |
|   },
 | |
| };
 |