| 
									
										
										
										
											2021-07-20 12:12:30 +02:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-19 16:49:33 +02:00
										 |  |  | const _ = require('lodash'); | 
					
						
							| 
									
										
										
										
											2021-07-20 12:12:30 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-19 16:49:33 +02:00
										 |  |  | const createProvider = emailConfig => { | 
					
						
							|  |  |  |   const providerName = _.toLower(emailConfig.provider); | 
					
						
							|  |  |  |   let provider; | 
					
						
							|  |  |  |   try { | 
					
						
							|  |  |  |     provider = require(`@strapi/provider-email-${providerName}`); | 
					
						
							|  |  |  |   } catch (err) { | 
					
						
							|  |  |  |     throw new Error( | 
					
						
							|  |  |  |       `The provider package isn't installed. Please run \`npm install @strap/provider-email-${providerName}\` --save` | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   return provider.init(emailConfig.providerOptions, emailConfig.settings); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module.exports = async () => { | 
					
						
							|  |  |  |   const emailConfig = strapi.config.get('plugin.email'); | 
					
						
							| 
									
										
										
										
											2021-08-19 22:27:00 +02:00
										 |  |  |   strapi.plugin('email').provider = createProvider(emailConfig); | 
					
						
							| 
									
										
										
										
											2021-08-19 16:49:33 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   // Add permissions
 | 
					
						
							|  |  |  |   const actions = [ | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       section: 'settings', | 
					
						
							|  |  |  |       category: 'email', | 
					
						
							|  |  |  |       displayName: 'Access the Email Settings page', | 
					
						
							|  |  |  |       uid: 'settings.read', | 
					
						
							|  |  |  |       pluginName: 'email', | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |   ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   await strapi.admin.services.permission.actionProvider.registerMany(actions); | 
					
						
							|  |  |  | }; |