Added a new endpoint that returns a users permissions as objects sorted into two arrays
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/pr Build is passing
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	continuous-integration/drone/pr Build is passing
				
			ref #93
This commit is contained in:
		| @@ -8,6 +8,7 @@ import { UpdateUser } from '../models/actions/update/UpdateUser'; | ||||
| import { User } from '../models/entities/User'; | ||||
| import { ResponseEmpty } from '../models/responses/ResponseEmpty'; | ||||
| import { ResponseUser } from '../models/responses/ResponseUser'; | ||||
| import { ResponseUserPermissions } from '../models/responses/ResponseUserPermissions'; | ||||
| import { PermissionController } from './PermissionController'; | ||||
|  | ||||
|  | ||||
| @@ -26,7 +27,7 @@ export class UserController { | ||||
| 	@Get() | ||||
| 	@Authorized("USER:GET") | ||||
| 	@ResponseSchema(ResponseUser, { isArray: true }) | ||||
| 	@OpenAPI({ description: 'Lists all users. <br> This includes their groups and permissions directly granted to them (if existing/associated).' }) | ||||
| 	@OpenAPI({ description: 'Lists all users. <br> This includes their groups and permissions granted to them.' }) | ||||
| 	async getAll() { | ||||
| 		let responseUsers: ResponseUser[] = new Array<ResponseUser>(); | ||||
| 		const users = await this.userRepository.find({ relations: ['permissions', 'groups', 'groups.permissions'] }); | ||||
| @@ -41,13 +42,25 @@ export class UserController { | ||||
| 	@ResponseSchema(ResponseUser) | ||||
| 	@ResponseSchema(UserNotFoundError, { statusCode: 404 }) | ||||
| 	@OnUndefined(UserNotFoundError) | ||||
| 	@OpenAPI({ description: 'Lists all information about the user whose id got provided. <br> Please remember that only permissions granted directly to the user will show up here, not permissions inherited from groups.' }) | ||||
| 	@OpenAPI({ description: 'Lists all information about the user whose id got provided. <br> Please remember that all permissions granted to the user will show up here.' }) | ||||
| 	async getOne(@Param('id') id: number) { | ||||
| 		let user = await this.userRepository.findOne({ id: id }, { relations: ['permissions', 'groups', 'groups.permissions'] }) | ||||
| 		if (!user) { throw new UserNotFoundError(); } | ||||
| 		return new ResponseUser(user); | ||||
| 	} | ||||
|  | ||||
| 	@Get('/:id/permissions') | ||||
| 	@Authorized("USER:GET") | ||||
| 	@ResponseSchema(ResponseUser) | ||||
| 	@ResponseSchema(UserNotFoundError, { statusCode: 404 }) | ||||
| 	@OnUndefined(UserNotFoundError) | ||||
| 	@OpenAPI({ description: 'Lists all permissions granted to the user sorted into directly granted and inherited as permission response objects.' }) | ||||
| 	async getPermissions(@Param('id') id: number) { | ||||
| 		let user = await this.userRepository.findOne({ id: id }, { relations: ['permissions', 'groups', 'groups.permissions', 'permissions.principal', 'groups.permissions.principal'] }) | ||||
| 		if (!user) { throw new UserNotFoundError(); } | ||||
| 		return new ResponseUserPermissions(user); | ||||
| 	} | ||||
|  | ||||
| 	@Post() | ||||
| 	@Authorized("USER:CREATE") | ||||
| 	@ResponseSchema(ResponseUser) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user