| 
									
										
										
										
											2022-03-22 18:19:46 +01:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const { getService } = require('../utils'); | 
					
						
							| 
									
										
										
										
											2022-05-13 16:10:18 +02:00
										 |  |  | const { ACTIONS, FILE_MODEL_UID } = require('../constants'); | 
					
						
							| 
									
										
										
										
											2022-04-06 12:02:47 +02:00
										 |  |  | const validateSettings = require('./validation/admin/settings'); | 
					
						
							| 
									
										
										
										
											2022-03-22 18:19:46 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | module.exports = { | 
					
						
							|  |  |  |   async updateSettings(ctx) { | 
					
						
							|  |  |  |     const { | 
					
						
							|  |  |  |       request: { body }, | 
					
						
							|  |  |  |       state: { userAbility }, | 
					
						
							|  |  |  |     } = ctx; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-13 16:10:18 +02:00
										 |  |  |     if (userAbility.cannot(ACTIONS.readSettings, FILE_MODEL_UID)) { | 
					
						
							| 
									
										
										
										
											2022-03-22 18:19:46 +01:00
										 |  |  |       return ctx.forbidden(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const data = await validateSettings(body); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await getService('upload').setSettings(data); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ctx.body = { data }; | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   async getSettings(ctx) { | 
					
						
							|  |  |  |     const { | 
					
						
							|  |  |  |       state: { userAbility }, | 
					
						
							|  |  |  |     } = ctx; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-13 16:10:18 +02:00
										 |  |  |     if (userAbility.cannot(ACTIONS.readSettings, FILE_MODEL_UID)) { | 
					
						
							| 
									
										
										
										
											2022-03-22 18:19:46 +01:00
										 |  |  |       return ctx.forbidden(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const data = await getService('upload').getSettings(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ctx.body = { data }; | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | }; |