homebridge-config-ui-x
Version:
A web based management, configuration and control platform for Homebridge.
137 lines • 5.83 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
import { Body, Controller, Delete, Get, Inject, Param, ParseIntPipe, Patch, Post, Request, UseGuards, } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { ApiBearerAuth, ApiBody, ApiOperation, ApiParam, ApiResponse, ApiTags, } from '@nestjs/swagger';
import { AuthService } from '../../core/auth/auth.service.js';
import { AdminGuard } from '../../core/auth/guards/admin.guard.js';
import { UserActivateOtpDto, UserDeactivateOtpDto, UserDto, UserUpdatePasswordDto } from './users.dto.js';
let UsersController = class UsersController {
authService;
constructor(authService) {
this.authService = authService;
}
getUsers() {
return this.authService.getUsers(true);
}
addUser(body) {
return this.authService.addUser(body);
}
updateUser(userId, body) {
return this.authService.updateUser(userId, body);
}
deleteUser(userId) {
return this.authService.deleteUser(userId);
}
updateOwnPassword(req, body) {
return this.authService.updateOwnPassword(req.user.username, body.currentPassword, body.newPassword);
}
setupOtp(req) {
return this.authService.setupOtp(req.user.username);
}
activateOtp(req, body) {
return this.authService.activateOtp(req.user.username, body.code);
}
deactivateOtp(req, body) {
return this.authService.deactivateOtp(req.user.username, body.password);
}
};
__decorate([
UseGuards(AdminGuard),
ApiResponse({ type: UserDto, isArray: true, status: 200 }),
ApiOperation({ summary: 'Get a list of existing users.' }),
Get(),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], UsersController.prototype, "getUsers", null);
__decorate([
UseGuards(AdminGuard),
ApiResponse({ type: UserDto, status: 201 }),
ApiOperation({ summary: 'Create a new user.' }),
Post(),
__param(0, Body()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [UserDto]),
__metadata("design:returntype", void 0)
], UsersController.prototype, "addUser", null);
__decorate([
UseGuards(AdminGuard),
ApiResponse({ type: UserDto, status: 200 }),
ApiOperation({ summary: 'Update a user.' }),
ApiParam({ name: 'userId', type: 'number' }),
Patch('/:userId'),
__param(0, Param('userId', ParseIntPipe)),
__param(1, Body()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Number, UserDto]),
__metadata("design:returntype", void 0)
], UsersController.prototype, "updateUser", null);
__decorate([
UseGuards(AdminGuard),
ApiOperation({ summary: 'Delete a user.' }),
ApiParam({ name: 'userId', type: 'number' }),
Delete('/:userId'),
__param(0, Param('userId', ParseIntPipe)),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Number]),
__metadata("design:returntype", void 0)
], UsersController.prototype, "deleteUser", null);
__decorate([
ApiOperation({ summary: 'Update the password for the current user.' }),
ApiBody({ type: UserUpdatePasswordDto }),
Post('/change-password'),
__param(0, Request()),
__param(1, Body()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, UserUpdatePasswordDto]),
__metadata("design:returntype", void 0)
], UsersController.prototype, "updateOwnPassword", null);
__decorate([
ApiOperation({ summary: 'Start 2FA setup for the current user.' }),
Post('/otp/setup'),
__param(0, Request()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", void 0)
], UsersController.prototype, "setupOtp", null);
__decorate([
ApiOperation({ summary: 'Activate 2FA setup for the current user.' }),
ApiBody({ type: UserActivateOtpDto }),
Post('/otp/activate'),
__param(0, Request()),
__param(1, Body()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, UserActivateOtpDto]),
__metadata("design:returntype", void 0)
], UsersController.prototype, "activateOtp", null);
__decorate([
ApiOperation({ summary: 'Deactivate 2FA setup for the current user.' }),
ApiBody({ type: UserDeactivateOtpDto }),
Post('/otp/deactivate'),
__param(0, Request()),
__param(1, Body()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, UserDeactivateOtpDto]),
__metadata("design:returntype", void 0)
], UsersController.prototype, "deactivateOtp", null);
UsersController = __decorate([
ApiTags('User Management'),
ApiBearerAuth(),
UseGuards(AuthGuard()),
Controller('users'),
__param(0, Inject(AuthService)),
__metadata("design:paramtypes", [AuthService])
], UsersController);
export { UsersController };
//# sourceMappingURL=users.controller.js.map