mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	fix: none authentication should have a mock user (#449)
This also fix the bug introduces where authentication mode triggers readOnly mode in the UI.
This commit is contained in:
		
							parent
							
								
									bd92e290b3
								
							
						
					
					
						commit
						0907d4749f
					
				| @ -11,6 +11,7 @@ const unleashSession = require('./middleware/session'); | ||||
| const responseTime = require('./middleware/response-time'); | ||||
| const requestLogger = require('./middleware/request-logger'); | ||||
| const simpleAuthentication = require('./middleware/simple-authentication'); | ||||
| const noAuthentication = require('./middleware/no-authentication'); | ||||
| 
 | ||||
| module.exports = function(config) { | ||||
|     const app = express(); | ||||
| @ -42,6 +43,10 @@ module.exports = function(config) { | ||||
|         simpleAuthentication(baseUriPath, app); | ||||
|     } | ||||
| 
 | ||||
|     if (config.adminAuthentication === 'none') { | ||||
|         noAuthentication(baseUriPath, app); | ||||
|     } | ||||
| 
 | ||||
|     if (typeof config.preRouterHook === 'function') { | ||||
|         config.preRouterHook(app); | ||||
|     } | ||||
|  | ||||
							
								
								
									
										12
									
								
								lib/middleware/no-authentication.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								lib/middleware/no-authentication.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| const User = require('../user'); | ||||
| 
 | ||||
| function noneAuthentication(basePath = '', app) { | ||||
|     app.use(`${basePath}/api/admin/`, (req, res, next) => { | ||||
|         req.user = new User({ email: 'none@unknown.com' }); | ||||
|         next(); | ||||
|     }); | ||||
| } | ||||
| 
 | ||||
| module.exports = noneAuthentication; | ||||
							
								
								
									
										30
									
								
								lib/middleware/no-authentication.test.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								lib/middleware/no-authentication.test.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| const test = require('ava'); | ||||
| const supertest = require('supertest'); | ||||
| const express = require('express'); | ||||
| const noAuthentication = require('./no-authentication'); | ||||
| 
 | ||||
| test('should add dummy user object to all requests', t => { | ||||
|     t.plan(1); | ||||
| 
 | ||||
|     const app = express(); | ||||
|     noAuthentication('', app); | ||||
|     app.get('/api/admin/test', (req, res) => { | ||||
|         const user = Object.assign({}, req.user); | ||||
| 
 | ||||
|         return res | ||||
|             .status(200) | ||||
|             .json(user) | ||||
|             .end(); | ||||
|     }); | ||||
|     const request = supertest(app); | ||||
| 
 | ||||
|     return request | ||||
|         .get('/api/admin/test') | ||||
|         .expect(200) | ||||
|         .expect(res => { | ||||
|             console.log(res.body); | ||||
|             t.true(res.body.email === 'none@unknown.com'); | ||||
|         }); | ||||
| }); | ||||
| @ -91,7 +91,7 @@ test.serial('creates new feature toggle with createdBy unknown', async t => { | ||||
|     await request | ||||
|         .get('/api/admin/events') | ||||
|         .expect(res => { | ||||
|             t.true(res.body.events[0].createdBy === 'unknown'); | ||||
|             t.true(res.body.events[0].createdBy === 'none@unknown.com'); | ||||
|         }) | ||||
|         .then(destroy); | ||||
| }); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user