@sync-in/server
Version:
The secure, open-source platform for file storage, sharing, collaboration, and sync
361 lines (360 loc) • 17 kB
JavaScript
/*
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
* This file is part of Sync-in | The open source file sync and share solution
* See the LICENSE file for licensing details
*/ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "AdminUsersController", {
enumerable: true,
get: function() {
return AdminUsersController;
}
});
const _common = require("@nestjs/common");
const _fastify = require("fastify");
const _authtwofaguard = require("../../authentication/guards/auth-two-fa-guard");
const _group = require("./constants/group");
const _routes = require("./constants/routes");
const _user = require("./constants/user");
const _rolesdecorator = require("./decorators/roles.decorator");
const _userdecorator = require("./decorators/user.decorator");
const _createorupdategroupdto = require("./dto/create-or-update-group.dto");
const _createorupdateuserdto = require("./dto/create-or-update-user.dto");
const _deleteuserdto = require("./dto/delete-user.dto");
const _searchmembersdto = require("./dto/search-members.dto");
const _rolesguard = require("./guards/roles.guard");
const _usermodel = require("./models/user.model");
const _adminusersmanagerservice = require("./services/admin-users-manager.service");
function _ts_decorate(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;
}
function _ts_metadata(k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
}
function _ts_param(paramIndex, decorator) {
return function(target, key) {
decorator(target, key, paramIndex);
};
}
let AdminUsersController = class AdminUsersController {
listUsers() {
return this.adminUsersManager.listUsers();
}
getUser(userId) {
return this.adminUsersManager.getUser(userId);
}
createUser(createUserDto) {
return this.adminUsersManager.createUserOrGuest(createUserDto, typeof createUserDto?.role !== 'undefined' ? createUserDto.role : _user.USER_ROLE.USER, true);
}
updateUser(userId, updateUserDto) {
return this.adminUsersManager.updateUserOrGuest(userId, updateUserDto);
}
deleteUser(userId, deleteUserDto) {
return this.adminUsersManager.deleteUserOrGuestFromAdmin(userId, {
...deleteUserDto,
isGuest: false
});
}
listGuests() {
return this.adminUsersManager.listGuests();
}
getGuest(guestId) {
return this.adminUsersManager.getGuest(guestId);
}
createGuest(user, createGuestDto) {
return this.adminUsersManager.createGuest(user, createGuestDto);
}
updateGuest(guestId, updateGuestDto) {
return this.adminUsersManager.updateGuest(guestId, updateGuestDto);
}
deleteGuest(guestId, deleteUserDto) {
return this.adminUsersManager.deleteUserOrGuestFromAdmin(guestId, {
...deleteUserDto,
isGuest: true
});
}
searchMembers(searchMembersDto) {
return this.adminUsersManager.searchMembers(searchMembersDto);
}
browseGroups(name) {
return this.adminUsersManager.browseGroups(name);
}
browsePersonalGroups(name) {
return this.adminUsersManager.browseGroups(name, _group.GROUP_TYPE.PERSONAL);
}
getGroup(groupId) {
return this.adminUsersManager.getGroup(groupId);
}
createGroup(createGroupDto) {
return this.adminUsersManager.createGroup(createGroupDto);
}
updateGroup(groupId, updateGroupDto) {
return this.adminUsersManager.updateGroup(groupId, updateGroupDto);
}
deleteGroup(groupId) {
return this.adminUsersManager.deleteGroup(groupId);
}
addUsersToGroup(groupId, userIds) {
return this.adminUsersManager.addUsersToGroup(groupId, userIds);
}
removeUserFromGroup(groupId, userId) {
return this.adminUsersManager.removeUserFromGroup(groupId, userId);
}
updateUserFromGroup(groupId, userId, updateUserFromGroupDto) {
return this.adminUsersManager.updateUserFromGroup(groupId, userId, updateUserFromGroupDto);
}
impersonateUser(admin, userId, res) {
return this.adminUsersManager.impersonateUser(admin, userId, res);
}
logOutImpersonateUser(user, res) {
return this.adminUsersManager.logoutImpersonateUser(user, res);
}
constructor(adminUsersManager){
this.adminUsersManager = adminUsersManager;
}
};
_ts_decorate([
(0, _common.Get)(`${_routes.ADMIN_USERS_ROUTE.USERS}/${_routes.ADMIN_USERS_ROUTE.LIST}`),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", []),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "listUsers", null);
_ts_decorate([
(0, _common.Get)(`${_routes.ADMIN_USERS_ROUTE.USERS}/:id`),
_ts_param(0, (0, _common.Param)('id', _common.ParseIntPipe)),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
Number
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "getUser", null);
_ts_decorate([
(0, _common.Post)(_routes.ADMIN_USERS_ROUTE.USERS),
(0, _common.UseGuards)(_authtwofaguard.AuthTwoFaGuardWithoutPassword),
_ts_param(0, (0, _common.Body)()),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
typeof _createorupdateuserdto.CreateUserDto === "undefined" ? Object : _createorupdateuserdto.CreateUserDto
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "createUser", null);
_ts_decorate([
(0, _common.Put)(`${_routes.ADMIN_USERS_ROUTE.USERS}/:id`),
(0, _common.UseGuards)(_authtwofaguard.AuthTwoFaGuardWithoutPassword),
_ts_param(0, (0, _common.Param)('id', _common.ParseIntPipe)),
_ts_param(1, (0, _common.Body)()),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
Number,
typeof _createorupdateuserdto.UpdateUserDto === "undefined" ? Object : _createorupdateuserdto.UpdateUserDto
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "updateUser", null);
_ts_decorate([
(0, _common.Delete)(`${_routes.ADMIN_USERS_ROUTE.USERS}/:id`),
(0, _common.UseGuards)(_authtwofaguard.AuthTwoFaGuard),
_ts_param(0, (0, _common.Param)('id', _common.ParseIntPipe)),
_ts_param(1, (0, _common.Body)()),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
Number,
typeof _deleteuserdto.DeleteUserDto === "undefined" ? Object : _deleteuserdto.DeleteUserDto
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "deleteUser", null);
_ts_decorate([
(0, _common.Get)(`${_routes.ADMIN_USERS_ROUTE.GUESTS}/${_routes.ADMIN_USERS_ROUTE.LIST}`),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", []),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "listGuests", null);
_ts_decorate([
(0, _common.Get)(`${_routes.ADMIN_USERS_ROUTE.GUESTS}/:id`),
_ts_param(0, (0, _common.Param)('id', _common.ParseIntPipe)),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
Number
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "getGuest", null);
_ts_decorate([
(0, _common.Post)(_routes.ADMIN_USERS_ROUTE.GUESTS),
(0, _common.UseGuards)(_authtwofaguard.AuthTwoFaGuardWithoutPassword),
_ts_param(0, (0, _userdecorator.GetUser)()),
_ts_param(1, (0, _common.Body)()),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
typeof _usermodel.UserModel === "undefined" ? Object : _usermodel.UserModel,
typeof _createorupdateuserdto.CreateUserDto === "undefined" ? Object : _createorupdateuserdto.CreateUserDto
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "createGuest", null);
_ts_decorate([
(0, _common.Put)(`${_routes.ADMIN_USERS_ROUTE.GUESTS}/:id`),
(0, _common.UseGuards)(_authtwofaguard.AuthTwoFaGuardWithoutPassword),
_ts_param(0, (0, _common.Param)('id', _common.ParseIntPipe)),
_ts_param(1, (0, _common.Body)()),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
Number,
typeof _createorupdateuserdto.UpdateUserDto === "undefined" ? Object : _createorupdateuserdto.UpdateUserDto
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "updateGuest", null);
_ts_decorate([
(0, _common.Delete)(`${_routes.ADMIN_USERS_ROUTE.GUESTS}/:id`),
(0, _common.UseGuards)(_authtwofaguard.AuthTwoFaGuard),
_ts_param(0, (0, _common.Param)('id', _common.ParseIntPipe)),
_ts_param(1, (0, _common.Body)()),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
Number,
typeof _deleteuserdto.DeleteUserDto === "undefined" ? Object : _deleteuserdto.DeleteUserDto
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "deleteGuest", null);
_ts_decorate([
(0, _common.Search)(_routes.ADMIN_USERS_ROUTE.MEMBERS),
_ts_param(0, (0, _common.Body)()),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
typeof _searchmembersdto.SearchMembersDto === "undefined" ? Object : _searchmembersdto.SearchMembersDto
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "searchMembers", null);
_ts_decorate([
(0, _common.Get)(`${_routes.ADMIN_USERS_ROUTE.GROUPS}/${_routes.ADMIN_USERS_ROUTE.BROWSE}/:name?`),
_ts_param(0, (0, _common.Param)('name')),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
String
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "browseGroups", null);
_ts_decorate([
(0, _common.Get)(`${_routes.ADMIN_USERS_ROUTE.PGROUPS}/${_routes.ADMIN_USERS_ROUTE.BROWSE}/:name?`),
_ts_param(0, (0, _common.Param)('name')),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
String
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "browsePersonalGroups", null);
_ts_decorate([
(0, _common.Get)(`${_routes.ADMIN_USERS_ROUTE.GROUPS}/:id`),
_ts_param(0, (0, _common.Param)('id', _common.ParseIntPipe)),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
Number
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "getGroup", null);
_ts_decorate([
(0, _common.Post)(`${_routes.ADMIN_USERS_ROUTE.GROUPS}`),
_ts_param(0, (0, _common.Body)()),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
typeof _createorupdategroupdto.CreateOrUpdateGroupDto === "undefined" ? Object : _createorupdategroupdto.CreateOrUpdateGroupDto
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "createGroup", null);
_ts_decorate([
(0, _common.Put)(`${_routes.ADMIN_USERS_ROUTE.GROUPS}/:id`),
_ts_param(0, (0, _common.Param)('id', _common.ParseIntPipe)),
_ts_param(1, (0, _common.Body)()),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
Number,
typeof _createorupdategroupdto.CreateOrUpdateGroupDto === "undefined" ? Object : _createorupdategroupdto.CreateOrUpdateGroupDto
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "updateGroup", null);
_ts_decorate([
(0, _common.Delete)(`${_routes.ADMIN_USERS_ROUTE.GROUPS}/:id`),
_ts_param(0, (0, _common.Param)('id', _common.ParseIntPipe)),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
Number
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "deleteGroup", null);
_ts_decorate([
(0, _common.Patch)(`${_routes.ADMIN_USERS_ROUTE.GROUPS}/:groupId/${_routes.ADMIN_USERS_ROUTE.USERS}`),
_ts_param(0, (0, _common.Param)('groupId', _common.ParseIntPipe)),
_ts_param(1, (0, _common.Body)()),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
Number,
Array
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "addUsersToGroup", null);
_ts_decorate([
(0, _common.Delete)(`${_routes.ADMIN_USERS_ROUTE.GROUPS}/:groupId/${_routes.ADMIN_USERS_ROUTE.USERS}/:userId`),
_ts_param(0, (0, _common.Param)('groupId', _common.ParseIntPipe)),
_ts_param(1, (0, _common.Param)('userId', _common.ParseIntPipe)),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
Number,
Number
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "removeUserFromGroup", null);
_ts_decorate([
(0, _common.Patch)(`${_routes.ADMIN_USERS_ROUTE.GROUPS}/:groupId/${_routes.ADMIN_USERS_ROUTE.USERS}/:userId`),
_ts_param(0, (0, _common.Param)('groupId', _common.ParseIntPipe)),
_ts_param(1, (0, _common.Param)('userId', _common.ParseIntPipe)),
_ts_param(2, (0, _common.Body)()),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
Number,
Number,
typeof _createorupdateuserdto.UpdateUserFromGroupDto === "undefined" ? Object : _createorupdateuserdto.UpdateUserFromGroupDto
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "updateUserFromGroup", null);
_ts_decorate([
(0, _common.Post)(`${_routes.ADMIN_USERS_ROUTE.IMPERSONATE}/:id`),
(0, _common.UseGuards)(_authtwofaguard.AuthTwoFaGuard),
_ts_param(0, (0, _userdecorator.GetUser)()),
_ts_param(1, (0, _common.Param)('id', _common.ParseIntPipe)),
_ts_param(2, (0, _common.Res)({
passthrough: true
})),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
typeof _usermodel.UserModel === "undefined" ? Object : _usermodel.UserModel,
Number,
typeof _fastify.FastifyReply === "undefined" ? Object : _fastify.FastifyReply
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "impersonateUser", null);
_ts_decorate([
(0, _common.Post)(`${_routes.ADMIN_USERS_ROUTE.IMPERSONATE}/${_routes.ADMIN_USERS_ROUTE.LOGOUT}`),
(0, _rolesdecorator.UserHaveRole)(_user.USER_ROLE.GUEST),
_ts_param(0, (0, _userdecorator.GetUser)()),
_ts_param(1, (0, _common.Res)({
passthrough: true
})),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
typeof _usermodel.UserModel === "undefined" ? Object : _usermodel.UserModel,
typeof _fastify.FastifyReply === "undefined" ? Object : _fastify.FastifyReply
]),
_ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
], AdminUsersController.prototype, "logOutImpersonateUser", null);
AdminUsersController = _ts_decorate([
(0, _common.Controller)(_routes.ADMIN_USERS_ROUTE.BASE),
(0, _rolesdecorator.UserHaveRole)(_user.USER_ROLE.ADMINISTRATOR),
(0, _common.UseGuards)(_rolesguard.UserRolesGuard),
_ts_metadata("design:type", Function),
_ts_metadata("design:paramtypes", [
typeof _adminusersmanagerservice.AdminUsersManager === "undefined" ? Object : _adminusersmanagerservice.AdminUsersManager
])
], AdminUsersController);
//# sourceMappingURL=admin-users.controller.js.map