cnpmcore
Version:
73 lines • 5.74 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); }
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AccessController = void 0;
const tegg_1 = require("@eggjs/tegg");
const AbstractController_1 = require("./AbstractController");
const PackageUtil_1 = require("../../common/PackageUtil");
const constants_1 = require("../../common/constants");
const egg_errors_1 = require("egg-errors");
let AccessController = class AccessController extends AbstractController_1.AbstractController {
async listCollaborators(fullname) {
const [scope, name] = (0, PackageUtil_1.getScopeAndName)(fullname);
const pkg = await this.packageRepository.findPackage(scope, name);
// return 403 if pkg not exists
if (!pkg) {
throw new egg_errors_1.ForbiddenError('Forbidden');
}
const maintainers = await this.packageRepository.listPackageMaintainers(pkg.packageId);
const res = {};
maintainers.forEach(maintainer => {
res[maintainer.displayName] = constants_1.PackageAccessLevel.write;
});
return res;
}
async listPackagesByUser(username) {
const user = await this.userRepository.findUserByName(username);
if (!user) {
throw new egg_errors_1.NotFoundError(`User "${username}" not found`);
}
const pkgs = await this.packageRepository.listPackagesByUserId(user.userId);
const res = {};
pkgs.forEach(pkg => {
res[(0, PackageUtil_1.getFullname)(pkg.scope, pkg.name)] = constants_1.PackageAccessLevel.write;
});
return res;
}
};
exports.AccessController = AccessController;
__decorate([
(0, tegg_1.HTTPMethod)({
path: `/-/package/:fullname(${PackageUtil_1.FULLNAME_REG_STRING})/collaborators`,
method: tegg_1.HTTPMethodEnum.GET,
}),
__param(0, (0, tegg_1.HTTPParam)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", Promise)
], AccessController.prototype, "listCollaborators", null);
__decorate([
(0, tegg_1.HTTPMethod)({
path: '/-/org/:username/package',
method: tegg_1.HTTPMethodEnum.GET,
}),
__param(0, (0, tegg_1.HTTPParam)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", Promise)
], AccessController.prototype, "listPackagesByUser", null);
exports.AccessController = AccessController = __decorate([
(0, tegg_1.HTTPController)()
], AccessController);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNjZXNzQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvQWNjZXNzQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQ0FLcUI7QUFDckIsNkRBQTBEO0FBQzFELDBEQUE2RjtBQUM3RixzREFBNEQ7QUFDNUQsMkNBQTJEO0FBR3BELElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWlCLFNBQVEsdUNBQWtCO0lBS2hELEFBQU4sS0FBSyxDQUFDLGlCQUFpQixDQUFjLFFBQWdCO1FBQ25ELE1BQU0sQ0FBRSxLQUFLLEVBQUUsSUFBSSxDQUFFLEdBQUcsSUFBQSw2QkFBZSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEUsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixNQUFNLElBQUksMkJBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN2QztRQUVELE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLEdBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RixNQUFNLEdBQUcsR0FBMkIsRUFBRSxDQUFDO1FBQ3ZDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDL0IsR0FBRyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyw4QkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFNSyxBQUFOLEtBQUssQ0FBQyxrQkFBa0IsQ0FBYyxRQUFnQjtRQUNwRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxNQUFNLElBQUksMEJBQWEsQ0FBQyxTQUFTLFFBQVEsYUFBYSxDQUFDLENBQUM7U0FDekQ7UUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUUsTUFBTSxHQUFHLEdBQTJCLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pCLEdBQUcsQ0FBQyxJQUFBLHlCQUFXLEVBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyw4QkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FHRixDQUFBO0FBMUNZLDRDQUFnQjtBQUtyQjtJQUpMLElBQUEsaUJBQVUsRUFBQztRQUNWLElBQUksRUFBRSx3QkFBd0IsaUNBQW1CLGlCQUFpQjtRQUNsRSxNQUFNLEVBQUUscUJBQWMsQ0FBQyxHQUFHO0tBQzNCLENBQUM7SUFDdUIsV0FBQSxJQUFBLGdCQUFTLEdBQUUsQ0FBQTs7Ozt5REFlbkM7QUFNSztJQUpMLElBQUEsaUJBQVUsRUFBQztRQUNWLElBQUksRUFBRSwwQkFBMEI7UUFDaEMsTUFBTSxFQUFFLHFCQUFjLENBQUMsR0FBRztLQUMzQixDQUFDO0lBQ3dCLFdBQUEsSUFBQSxnQkFBUyxHQUFFLENBQUE7Ozs7MERBYXBDOzJCQXZDVSxnQkFBZ0I7SUFENUIsSUFBQSxxQkFBYyxHQUFFO0dBQ0osZ0JBQWdCLENBMEM1QiJ9