UNPKG

@sync-in/server

Version:

The secure, open-source platform for file storage, sharing, collaboration, and sync

350 lines (349 loc) 16.6 kB
/* * 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 _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 _userpassworddto = require("./dto/user-password.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.usersAdminManager.listUsers(); } getUser(userId) { return this.usersAdminManager.getUser(userId); } createUser(createUserDto) { return this.usersAdminManager.createUserOrGuest(createUserDto, typeof createUserDto?.role !== 'undefined' ? createUserDto.role : _user.USER_ROLE.USER, true); } updateUser(userId, updateUserDto) { return this.usersAdminManager.updateUserOrGuest(userId, updateUserDto); } deleteUser(admin, userId, adminDeleteUserDto) { return this.usersAdminManager.deleteUserFromAdmin(admin, userId, adminDeleteUserDto); } listGuests() { return this.usersAdminManager.listGuests(); } getGuest(guestId) { return this.usersAdminManager.getGuest(guestId); } createGuest(user, createGuestDto) { return this.usersAdminManager.createGuest(user, createGuestDto); } updateGuest(guestId, updateGuestDto) { return this.usersAdminManager.updateGuest(guestId, updateGuestDto); } deleteGuest(guestId) { return this.usersAdminManager.deleteGuest(guestId); } searchMembers(searchMembersDto) { return this.usersAdminManager.searchMembers(searchMembersDto); } browseGroups(name) { return this.usersAdminManager.browseGroups(name); } browsePersonalGroups(name) { return this.usersAdminManager.browseGroups(name, _group.GROUP_TYPE.PERSONAL); } getGroup(groupId) { return this.usersAdminManager.getGroup(groupId); } createGroup(createGroupDto) { return this.usersAdminManager.createGroup(createGroupDto); } updateGroup(groupId, updateGroupDto) { return this.usersAdminManager.updateGroup(groupId, updateGroupDto); } deleteGroup(groupId) { return this.usersAdminManager.deleteGroup(groupId); } addUsersToGroup(groupId, userIds) { return this.usersAdminManager.addUsersToGroup(groupId, userIds); } removeUserFromGroup(groupId, userId) { return this.usersAdminManager.removeUserFromGroup(groupId, userId); } updateUserFromGroup(groupId, userId, updateUserFromGroupDto) { return this.usersAdminManager.updateUserFromGroup(groupId, userId, updateUserFromGroupDto); } impersonateUser(admin, userId, adminPasswordDto, res) { return this.usersAdminManager.impersonateUser(admin, userId, adminPasswordDto, res); } logOutImpersonateUser(user, res) { return this.usersAdminManager.logoutImpersonateUser(user, res); } constructor(usersAdminManager){ this.usersAdminManager = usersAdminManager; } }; _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), _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`), _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`), _ts_param(0, (0, _userdecorator.GetUser)()), _ts_param(1, (0, _common.Param)('id', _common.ParseIntPipe)), _ts_param(2, (0, _common.Body)()), _ts_metadata("design:type", Function), _ts_metadata("design:paramtypes", [ typeof _usermodel.UserModel === "undefined" ? Object : _usermodel.UserModel, Number, typeof _deleteuserdto.AdminDeleteUserDto === "undefined" ? Object : _deleteuserdto.AdminDeleteUserDto ]), _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), _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`), _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`), _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, "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`), _ts_param(0, (0, _userdecorator.GetUser)()), _ts_param(1, (0, _common.Param)('id', _common.ParseIntPipe)), _ts_param(2, (0, _common.Body)()), _ts_param(3, (0, _common.Res)({ passthrough: true })), _ts_metadata("design:type", Function), _ts_metadata("design:paramtypes", [ typeof _usermodel.UserModel === "undefined" ? Object : _usermodel.UserModel, Number, typeof _userpassworddto.UserPasswordDto === "undefined" ? Object : _userpassworddto.UserPasswordDto, 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