cnpmcore 3.78.0 → 3.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/core/service/OrgService.d.ts +1 -0
- package/dist/app/core/service/OrgService.js +15 -1
- package/dist/app/core/service/TeamService.js +9 -5
- package/dist/app/port/UserRoleManager.d.ts +2 -0
- package/dist/app/port/UserRoleManager.js +27 -1
- package/dist/app/port/controller/OrgController.d.ts +34 -0
- package/dist/app/port/controller/OrgController.js +222 -0
- package/dist/app/port/controller/PackageVersionFileController.js +3 -1
- package/dist/app/port/controller/TeamController.d.ts +47 -0
- package/dist/app/port/controller/TeamController.js +329 -0
- package/dist/app/port/controller/package/DownloadPackageVersionTar.js +3 -1
- package/dist/app/port/controller/package/ShowPackageController.d.ts +1 -0
- package/dist/app/port/controller/package/ShowPackageController.js +14 -5
- package/dist/app/port/controller/package/ShowPackageVersionController.js +2 -1
- package/dist/app/repository/OrgRepository.js +1 -1
- package/dist/app/repository/PackageRepository.d.ts +1 -0
- package/dist/app/repository/PackageRepository.js +7 -1
- package/dist/app/repository/TeamRepository.d.ts +2 -0
- package/dist/app/repository/TeamRepository.js +18 -1
- package/dist/app/repository/UserRepository.d.ts +1 -0
- package/dist/app/repository/UserRepository.js +7 -1
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@ export declare class OrgService extends AbstractService {
|
|
|
12
12
|
createOrg(cmd: CreateOrgCmd): Promise<Org>;
|
|
13
13
|
removeOrg(orgId: string): Promise<void>;
|
|
14
14
|
findOrgByName(name: string): Promise<Org | null>;
|
|
15
|
+
ensureOrgForScope(scope: string): Promise<Org>;
|
|
15
16
|
addMember(orgId: string, userId: string, role?: 'owner' | 'member'): Promise<OrgMember>;
|
|
16
17
|
removeMember(orgId: string, userId: string): Promise<void>;
|
|
17
18
|
listMembers(orgId: string): Promise<OrgMember[]>;
|
|
@@ -56,6 +56,20 @@ let OrgService = class OrgService extends AbstractService_1.AbstractService {
|
|
|
56
56
|
async findOrgByName(name) {
|
|
57
57
|
return await this.orgRepository.findOrgByName(name);
|
|
58
58
|
}
|
|
59
|
+
// Auto-create org for allowScopes if it doesn't exist
|
|
60
|
+
async ensureOrgForScope(scope) {
|
|
61
|
+
const orgName = scope.replace(/^@/, '');
|
|
62
|
+
const existing = await this.orgRepository.findOrgByName(orgName);
|
|
63
|
+
if (existing)
|
|
64
|
+
return existing;
|
|
65
|
+
const org = Org_1.Org.create({
|
|
66
|
+
name: orgName,
|
|
67
|
+
description: `Auto-created org for scope ${scope}`,
|
|
68
|
+
});
|
|
69
|
+
await this.orgRepository.saveOrg(org);
|
|
70
|
+
this.logger.info('[OrgService:ensureOrgForScope] orgId: %s, scope: %s', org.orgId, scope);
|
|
71
|
+
return org;
|
|
72
|
+
}
|
|
59
73
|
async addMember(orgId, userId, role = 'member') {
|
|
60
74
|
const org = await this.orgRepository.findOrgByOrgId(orgId);
|
|
61
75
|
if (!org) {
|
|
@@ -119,4 +133,4 @@ exports.OrgService = OrgService = __decorate([
|
|
|
119
133
|
accessLevel: tegg_1.AccessLevel.PUBLIC,
|
|
120
134
|
})
|
|
121
135
|
], OrgService);
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb3JlL3NlcnZpY2UvT3JnU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxzQ0FJcUI7QUFDckIsMkNBQTJEO0FBQzNELGtFQUErRDtBQUMvRCxzREFBeUQ7QUFDekQsa0VBQStEO0FBQy9ELG9FQUFpRTtBQUNqRSx1Q0FBb0M7QUFDcEMsbURBQWdEO0FBQ2hELHlDQUFzQztBQUN0QyxxREFBa0Q7QUFXM0MsSUFBTSxVQUFVLEdBQWhCLE1BQU0sVUFBVyxTQUFRLGlDQUFlO0lBTzdDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBaUI7UUFDL0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEUsSUFBSSxRQUFRLEVBQUU7WUFDWixNQUFNLElBQUksMkJBQWMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLENBQUM7U0FDOUQ7UUFFRCx3RUFBd0U7UUFDeEUsTUFBTSxHQUFHLEdBQUcsU0FBRyxDQUFDLE1BQU0sQ0FBQztZQUNyQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7WUFDZCxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVc7U0FDN0IsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxjQUFjLEdBQUcsV0FBSSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7WUFDaEIsSUFBSSxFQUFFLDJCQUFlO1lBQ3JCLFdBQVcsRUFBRSxjQUFjO1NBQzVCLENBQUMsQ0FBQztRQUNILE1BQU0sV0FBVyxHQUFHLHFCQUFTLENBQUMsTUFBTSxDQUFDO1lBQ25DLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztZQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLGFBQWE7WUFDekIsSUFBSSxFQUFFLE9BQU87U0FDZCxDQUFDLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyx1QkFBVSxDQUFDLE1BQU0sQ0FBQztZQUNuQyxNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU07WUFDN0IsTUFBTSxFQUFFLEdBQUcsQ0FBQyxhQUFhO1NBQzFCLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUV4RixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywrREFBK0QsRUFDOUUsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWE7UUFDM0IsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLElBQVk7UUFDOUIsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxzREFBc0Q7SUFDdEQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQWE7UUFDbkMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRSxJQUFJLFFBQVE7WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUU5QixNQUFNLEdBQUcsR0FBRyxTQUFHLENBQUMsTUFBTSxDQUFDO1lBQ3JCLElBQUksRUFBRSxPQUFPO1lBQ2IsV0FBVyxFQUFFLDhCQUE4QixLQUFLLEVBQUU7U0FDbkQsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxREFBcUQsRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFGLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxPQUEyQixRQUFRO1FBQ2hGLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSSwwQkFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsb0JBQW9CO1FBQ3BCLElBQUksTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLElBQUksTUFBTSxFQUFFO1lBQ1YsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDbkIsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM3QzthQUFNO1lBQ0wsTUFBTSxHQUFHLHFCQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0M7UUFFRCw4QkFBOEI7UUFDOUIsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsMkJBQWUsQ0FBQyxDQUFDO1FBQ2xGLElBQUksY0FBYyxFQUFFO1lBQ2xCLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQy9GLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDdkIsTUFBTSxVQUFVLEdBQUcsdUJBQVUsQ0FBQyxNQUFNLENBQUM7b0JBQ25DLE1BQU0sRUFBRSxjQUFjLENBQUMsTUFBTTtvQkFDN0IsTUFBTTtpQkFDUCxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNqRDtTQUNGO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0RBQXdELEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhLEVBQUUsTUFBYztRQUM5QyxvQ0FBb0M7UUFDcEMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRSxrQkFBa0I7UUFDbEIsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaURBQWlELEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQWE7UUFDN0IsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxPQUFnQjtRQUMzRSxJQUFJLE9BQU87WUFBRSxPQUFPO1FBQ3BCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7WUFDdEMsTUFBTSxJQUFJLDJCQUFjLENBQUMsaURBQWlELENBQUMsQ0FBQztTQUM3RTtJQUNILENBQUM7Q0FDRixDQUFBO0FBbkhZLGdDQUFVO0FBRUo7SUFEaEIsSUFBQSxhQUFNLEdBQUU7OEJBQ3VCLDZCQUFhO2lEQUFDO0FBRzdCO0lBRGhCLElBQUEsYUFBTSxHQUFFOzhCQUN3QiwrQkFBYztrREFBQztxQkFMckMsVUFBVTtJQUh0QixJQUFBLHFCQUFjLEVBQUM7UUFDZCxXQUFXLEVBQUUsa0JBQVcsQ0FBQyxNQUFNO0tBQ2hDLENBQUM7R0FDVyxVQUFVLENBbUh0QiJ9
|
|
@@ -51,10 +51,14 @@ let TeamService = class TeamService extends AbstractService_1.AbstractService {
|
|
|
51
51
|
if (!team) {
|
|
52
52
|
throw new egg_errors_1.NotFoundError('Team not found');
|
|
53
53
|
}
|
|
54
|
-
//
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
// For allowScopes orgs, skip org member check (self-registry users have implicit access)
|
|
55
|
+
// For other orgs, must be an org member first
|
|
56
|
+
const org = await this.orgRepository.findOrgByOrgId(team.orgId);
|
|
57
|
+
if (org && !this.config.cnpmcore.allowScopes.includes(`@${org.name}`)) {
|
|
58
|
+
const orgMember = await this.orgRepository.findMember(team.orgId, userId);
|
|
59
|
+
if (!orgMember) {
|
|
60
|
+
throw new egg_errors_1.ForbiddenError('User must be an org member before joining a team');
|
|
61
|
+
}
|
|
58
62
|
}
|
|
59
63
|
const existing = await this.teamRepository.findMember(teamId, userId);
|
|
60
64
|
if (existing) {
|
|
@@ -108,4 +112,4 @@ exports.TeamService = TeamService = __decorate([
|
|
|
108
112
|
accessLevel: tegg_1.AccessLevel.PUBLIC,
|
|
109
113
|
})
|
|
110
114
|
], TeamService);
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVhbVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29yZS9zZXJ2aWNlL1RlYW1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNDQUlxQjtBQUNyQiwyQ0FBMkQ7QUFDM0Qsa0VBQStEO0FBQy9ELHNEQUF5RDtBQUN6RCxrRUFBK0Q7QUFDL0Qsb0VBQWlFO0FBQ2pFLHlDQUFzQztBQUN0QyxxREFBa0Q7QUFDbEQsdURBQW9EO0FBSzdDLElBQU0sV0FBVyxHQUFqQixNQUFNLFdBQVksU0FBUSxpQ0FBZTtJQVE5QyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQWEsRUFBRSxJQUFZLEVBQUUsV0FBb0I7UUFDaEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakUsSUFBSSxRQUFRLEVBQUU7WUFDWixNQUFNLElBQUksMkJBQWMsQ0FBQyxTQUFTLElBQUksa0JBQWtCLENBQUMsQ0FBQztTQUMzRDtRQUVELE1BQU0sSUFBSSxHQUFHLFdBQUksQ0FBQyxNQUFNLENBQUM7WUFDdkIsS0FBSztZQUNMLElBQUk7WUFDSixXQUFXO1NBQ1osQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwREFBMEQsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2RyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQWM7UUFDN0IsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FB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
|
|
@@ -10,6 +10,7 @@ export declare class UserRoleManager {
|
|
|
10
10
|
protected logger: EggLogger;
|
|
11
11
|
private readonly registryManagerService;
|
|
12
12
|
private readonly tokenService;
|
|
13
|
+
private readonly teamRepository;
|
|
13
14
|
private handleAuthorized;
|
|
14
15
|
private currentAuthorizedUser;
|
|
15
16
|
private currentAuthorizedToken;
|
|
@@ -22,4 +23,5 @@ export declare class UserRoleManager {
|
|
|
22
23
|
requiredPackageMaintainer(pkg: PackageEntity, user: UserEntity): Promise<void>;
|
|
23
24
|
requiredPackageScope(scope: string, user: UserEntity): Promise<void>;
|
|
24
25
|
isAdmin(ctx: EggContext): Promise<boolean>;
|
|
26
|
+
checkReadAccess(ctx: EggContext, scope: string, name: string): Promise<boolean>;
|
|
25
27
|
}
|
|
@@ -13,6 +13,7 @@ exports.UserRoleManager = void 0;
|
|
|
13
13
|
const tegg_1 = require("@eggjs/tegg");
|
|
14
14
|
const egg_errors_1 = require("egg-errors");
|
|
15
15
|
const PackageRepository_1 = require("../repository/PackageRepository");
|
|
16
|
+
const TeamRepository_1 = require("../repository/TeamRepository");
|
|
16
17
|
const PackageUtil_1 = require("../common/PackageUtil");
|
|
17
18
|
const RegistryManagerService_1 = require("../core/service/RegistryManagerService");
|
|
18
19
|
const TokenService_1 = require("../core/service/TokenService");
|
|
@@ -159,6 +160,27 @@ let UserRoleManager = class UserRoleManager {
|
|
|
159
160
|
return false;
|
|
160
161
|
return user.name in this.config.cnpmcore.admins;
|
|
161
162
|
}
|
|
163
|
+
// self scope + no team binding = everyone can read, returns false
|
|
164
|
+
// self scope + team binding = only team members can read, returns true
|
|
165
|
+
// returns true if package is team-bound (private cache needed)
|
|
166
|
+
async checkReadAccess(ctx, scope, name) {
|
|
167
|
+
if (!scope || !this.config.cnpmcore.allowScopes.includes(scope))
|
|
168
|
+
return false;
|
|
169
|
+
const pkg = await this.packageRepository.findPackage(scope, name);
|
|
170
|
+
if (!pkg)
|
|
171
|
+
return false; // let downstream throw 404
|
|
172
|
+
const hasTeamBinding = await this.teamRepository.hasAnyTeamBinding(pkg.packageId);
|
|
173
|
+
if (!hasTeamBinding)
|
|
174
|
+
return false; // no team binding, everyone can read
|
|
175
|
+
// team binding exists, require auth
|
|
176
|
+
const user = await this.requiredAuthorizedUser(ctx, 'read');
|
|
177
|
+
if (await this.isAdmin(ctx))
|
|
178
|
+
return true;
|
|
179
|
+
const hasAccess = await this.teamRepository.hasPackageAccess(pkg.packageId, user.userId);
|
|
180
|
+
if (hasAccess)
|
|
181
|
+
return true;
|
|
182
|
+
throw new egg_errors_1.ForbiddenError(`"${user.name}" is not authorized to access ${pkg.fullname}`);
|
|
183
|
+
}
|
|
162
184
|
};
|
|
163
185
|
exports.UserRoleManager = UserRoleManager;
|
|
164
186
|
__decorate([
|
|
@@ -181,10 +203,14 @@ __decorate([
|
|
|
181
203
|
(0, tegg_1.Inject)(),
|
|
182
204
|
__metadata("design:type", TokenService_1.TokenService)
|
|
183
205
|
], UserRoleManager.prototype, "tokenService", void 0);
|
|
206
|
+
__decorate([
|
|
207
|
+
(0, tegg_1.Inject)(),
|
|
208
|
+
__metadata("design:type", TeamRepository_1.TeamRepository)
|
|
209
|
+
], UserRoleManager.prototype, "teamRepository", void 0);
|
|
184
210
|
exports.UserRoleManager = UserRoleManager = __decorate([
|
|
185
211
|
(0, tegg_1.ContextProto)({
|
|
186
212
|
// only inject on port module
|
|
187
213
|
accessLevel: tegg_1.AccessLevel.PRIVATE,
|
|
188
214
|
})
|
|
189
215
|
], UserRoleManager);
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlclJvbGVNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXBwL3BvcnQvVXNlclJvbGVNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNDQUtxQjtBQUVyQiwyQ0FBK0Q7QUFDL0QsdUVBQW9FO0FBQ3BFLGlFQUE4RDtBQUk5RCx1REFBd0Q7QUFDeEQsbUZBQWdGO0FBQ2hGLCtEQUE0RDtBQVNyRCxJQUFNLGVBQWUsR0FBckIsTUFBTSxlQUFlO0lBQXJCO1FBY0cscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0lBK0tuQyxDQUFDO0lBM0tDLHVCQUF1QjtJQUN2QiwwQkFBMEI7SUFDMUIsdUNBQXVDO0lBQ3ZDLHFDQUFxQztJQUNyQyxnRUFBZ0U7SUFDekQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQWUsRUFBRSxRQUFnQjtRQUUvRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFL0QsMEJBQTBCO1FBQzFCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCx3Q0FBd0M7UUFDeEMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6RSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsc0JBQXVCLENBQUM7UUFDMUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVsRSx1Q0FBdUM7UUFDdkMsTUFBTSxDQUFFLEtBQUssRUFBRSxJQUFJLENBQUUsR0FBRyxJQUFBLDZCQUFlLEVBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEQsTUFBTSxHQUFH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
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { EggContext } from '@eggjs/tegg';
|
|
2
|
+
import { AbstractController } from './AbstractController';
|
|
3
|
+
export declare class OrgController extends AbstractController {
|
|
4
|
+
private readonly orgService;
|
|
5
|
+
private readonly teamRepository;
|
|
6
|
+
createOrg(ctx: EggContext, body: {
|
|
7
|
+
name: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
}): Promise<{
|
|
10
|
+
ok: boolean;
|
|
11
|
+
}>;
|
|
12
|
+
showOrg(ctx: EggContext, orgName: string): Promise<{
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
created: Date;
|
|
16
|
+
}>;
|
|
17
|
+
removeOrg(ctx: EggContext, orgName: string): Promise<{
|
|
18
|
+
ok: boolean;
|
|
19
|
+
}>;
|
|
20
|
+
listMembers(ctx: EggContext, orgName: string): Promise<Record<string, string>>;
|
|
21
|
+
addMember(ctx: EggContext, orgName: string, body: {
|
|
22
|
+
user: string;
|
|
23
|
+
role?: 'owner' | 'member';
|
|
24
|
+
}): Promise<{
|
|
25
|
+
ok: boolean;
|
|
26
|
+
}>;
|
|
27
|
+
removeMember(ctx: EggContext, orgName: string, username: string): Promise<{
|
|
28
|
+
ok: boolean;
|
|
29
|
+
}>;
|
|
30
|
+
listUserTeams(ctx: EggContext, orgName: string, username: string): Promise<{
|
|
31
|
+
name: string;
|
|
32
|
+
description: string;
|
|
33
|
+
}[]>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.OrgController = void 0;
|
|
16
|
+
const tegg_1 = require("@eggjs/tegg");
|
|
17
|
+
const egg_errors_1 = require("egg-errors");
|
|
18
|
+
const AbstractController_1 = require("./AbstractController");
|
|
19
|
+
const AdminAccess_1 = require("../middleware/AdminAccess");
|
|
20
|
+
const OrgService_1 = require("../../core/service/OrgService");
|
|
21
|
+
const TeamRepository_1 = require("../../repository/TeamRepository");
|
|
22
|
+
let OrgController = class OrgController extends AbstractController_1.AbstractController {
|
|
23
|
+
// PUT /-/org — Admin only
|
|
24
|
+
async createOrg(ctx, body) {
|
|
25
|
+
const authorizedUser = await this.userRoleManager.requiredAuthorizedUser(ctx, 'setting');
|
|
26
|
+
if (!body.name) {
|
|
27
|
+
throw new egg_errors_1.UnprocessableEntityError('name is required');
|
|
28
|
+
}
|
|
29
|
+
await this.orgService.createOrg({
|
|
30
|
+
name: body.name,
|
|
31
|
+
description: body.description,
|
|
32
|
+
creatorUserId: authorizedUser.userId,
|
|
33
|
+
});
|
|
34
|
+
return { ok: true };
|
|
35
|
+
}
|
|
36
|
+
// GET /-/org/:orgName
|
|
37
|
+
async showOrg(ctx, orgName) {
|
|
38
|
+
await this.userRoleManager.requiredAuthorizedUser(ctx, 'read');
|
|
39
|
+
const org = await this.orgService.findOrgByName(orgName);
|
|
40
|
+
if (!org) {
|
|
41
|
+
throw new egg_errors_1.NotFoundError(`Org "${orgName}" not found`);
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
name: org.name,
|
|
45
|
+
description: org.description,
|
|
46
|
+
created: org.createdAt,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
// DELETE /-/org/:orgName — Admin only
|
|
50
|
+
async removeOrg(ctx, orgName) {
|
|
51
|
+
await this.userRoleManager.requiredAuthorizedUser(ctx, 'setting');
|
|
52
|
+
const org = await this.orgService.findOrgByName(orgName);
|
|
53
|
+
if (!org) {
|
|
54
|
+
throw new egg_errors_1.NotFoundError(`Org "${orgName}" not found`);
|
|
55
|
+
}
|
|
56
|
+
await this.orgService.removeOrg(org.orgId);
|
|
57
|
+
return { ok: true };
|
|
58
|
+
}
|
|
59
|
+
// GET /-/org/:orgName/member — npm org ls
|
|
60
|
+
async listMembers(ctx, orgName) {
|
|
61
|
+
await this.userRoleManager.requiredAuthorizedUser(ctx, 'read');
|
|
62
|
+
const org = await this.orgService.findOrgByName(orgName);
|
|
63
|
+
if (!org) {
|
|
64
|
+
throw new egg_errors_1.NotFoundError(`Org "${orgName}" not found`);
|
|
65
|
+
}
|
|
66
|
+
const members = await this.orgService.listMembers(org.orgId);
|
|
67
|
+
const users = await this.userRepository.findUsersByUserIds(members.map(m => m.userId));
|
|
68
|
+
const userMap = new Map(users.map(u => [u.userId, u]));
|
|
69
|
+
const result = {};
|
|
70
|
+
for (const member of members) {
|
|
71
|
+
const user = userMap.get(member.userId);
|
|
72
|
+
if (user) {
|
|
73
|
+
result[user.displayName] = member.role;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
// PUT /-/org/:orgName/member — npm org set
|
|
79
|
+
async addMember(ctx, orgName, body) {
|
|
80
|
+
const authorizedUser = await this.userRoleManager.requiredAuthorizedUser(ctx, 'setting');
|
|
81
|
+
const org = await this.orgService.findOrgByName(orgName);
|
|
82
|
+
if (!org) {
|
|
83
|
+
throw new egg_errors_1.NotFoundError(`Org "${orgName}" not found`);
|
|
84
|
+
}
|
|
85
|
+
const isAdmin = await this.userRoleManager.isAdmin(ctx);
|
|
86
|
+
await this.orgService.requiredOrgOwnerOrAdmin(org.orgId, authorizedUser.userId, isAdmin);
|
|
87
|
+
if (!body.user) {
|
|
88
|
+
throw new egg_errors_1.UnprocessableEntityError('user is required');
|
|
89
|
+
}
|
|
90
|
+
const targetUser = await this.userRepository.findUserByName(body.user);
|
|
91
|
+
if (!targetUser) {
|
|
92
|
+
throw new egg_errors_1.NotFoundError(`User "${body.user}" not found`);
|
|
93
|
+
}
|
|
94
|
+
await this.orgService.addMember(org.orgId, targetUser.userId, body.role || 'member');
|
|
95
|
+
return { ok: true };
|
|
96
|
+
}
|
|
97
|
+
// DELETE /-/org/:orgName/member/:username — npm org rm
|
|
98
|
+
async removeMember(ctx, orgName, username) {
|
|
99
|
+
const authorizedUser = await this.userRoleManager.requiredAuthorizedUser(ctx, 'setting');
|
|
100
|
+
const org = await this.orgService.findOrgByName(orgName);
|
|
101
|
+
if (!org) {
|
|
102
|
+
throw new egg_errors_1.NotFoundError(`Org "${orgName}" not found`);
|
|
103
|
+
}
|
|
104
|
+
const isAdmin = await this.userRoleManager.isAdmin(ctx);
|
|
105
|
+
await this.orgService.requiredOrgOwnerOrAdmin(org.orgId, authorizedUser.userId, isAdmin);
|
|
106
|
+
const targetUser = await this.userRepository.findUserByName(username);
|
|
107
|
+
if (!targetUser) {
|
|
108
|
+
throw new egg_errors_1.NotFoundError(`User "${username}" not found`);
|
|
109
|
+
}
|
|
110
|
+
await this.orgService.removeMember(org.orgId, targetUser.userId);
|
|
111
|
+
return { ok: true };
|
|
112
|
+
}
|
|
113
|
+
// GET /-/org/:orgName/member/:username/team
|
|
114
|
+
async listUserTeams(ctx, orgName, username) {
|
|
115
|
+
await this.userRoleManager.requiredAuthorizedUser(ctx, 'read');
|
|
116
|
+
const org = await this.orgService.findOrgByName(orgName);
|
|
117
|
+
if (!org) {
|
|
118
|
+
throw new egg_errors_1.NotFoundError(`Org "${orgName}" not found`);
|
|
119
|
+
}
|
|
120
|
+
const targetUser = await this.userRepository.findUserByName(username);
|
|
121
|
+
if (!targetUser) {
|
|
122
|
+
throw new egg_errors_1.NotFoundError(`User "${username}" not found`);
|
|
123
|
+
}
|
|
124
|
+
const teams = await this.teamRepository.listTeamsByUserIdAndOrgId(targetUser.userId, org.orgId);
|
|
125
|
+
return teams.map(t => ({ name: t.name, description: t.description }));
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
exports.OrgController = OrgController;
|
|
129
|
+
__decorate([
|
|
130
|
+
(0, tegg_1.Inject)(),
|
|
131
|
+
__metadata("design:type", OrgService_1.OrgService)
|
|
132
|
+
], OrgController.prototype, "orgService", void 0);
|
|
133
|
+
__decorate([
|
|
134
|
+
(0, tegg_1.Inject)(),
|
|
135
|
+
__metadata("design:type", TeamRepository_1.TeamRepository)
|
|
136
|
+
], OrgController.prototype, "teamRepository", void 0);
|
|
137
|
+
__decorate([
|
|
138
|
+
(0, tegg_1.HTTPMethod)({
|
|
139
|
+
path: '/-/org',
|
|
140
|
+
method: tegg_1.HTTPMethodEnum.PUT,
|
|
141
|
+
}),
|
|
142
|
+
(0, tegg_1.Middleware)(AdminAccess_1.AdminAccess),
|
|
143
|
+
__param(0, (0, tegg_1.Context)()),
|
|
144
|
+
__param(1, (0, tegg_1.HTTPBody)()),
|
|
145
|
+
__metadata("design:type", Function),
|
|
146
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
147
|
+
__metadata("design:returntype", Promise)
|
|
148
|
+
], OrgController.prototype, "createOrg", null);
|
|
149
|
+
__decorate([
|
|
150
|
+
(0, tegg_1.HTTPMethod)({
|
|
151
|
+
path: '/-/org/:orgName',
|
|
152
|
+
method: tegg_1.HTTPMethodEnum.GET,
|
|
153
|
+
}),
|
|
154
|
+
__param(0, (0, tegg_1.Context)()),
|
|
155
|
+
__param(1, (0, tegg_1.HTTPParam)()),
|
|
156
|
+
__metadata("design:type", Function),
|
|
157
|
+
__metadata("design:paramtypes", [Object, String]),
|
|
158
|
+
__metadata("design:returntype", Promise)
|
|
159
|
+
], OrgController.prototype, "showOrg", null);
|
|
160
|
+
__decorate([
|
|
161
|
+
(0, tegg_1.HTTPMethod)({
|
|
162
|
+
path: '/-/org/:orgName',
|
|
163
|
+
method: tegg_1.HTTPMethodEnum.DELETE,
|
|
164
|
+
}),
|
|
165
|
+
(0, tegg_1.Middleware)(AdminAccess_1.AdminAccess),
|
|
166
|
+
__param(0, (0, tegg_1.Context)()),
|
|
167
|
+
__param(1, (0, tegg_1.HTTPParam)()),
|
|
168
|
+
__metadata("design:type", Function),
|
|
169
|
+
__metadata("design:paramtypes", [Object, String]),
|
|
170
|
+
__metadata("design:returntype", Promise)
|
|
171
|
+
], OrgController.prototype, "removeOrg", null);
|
|
172
|
+
__decorate([
|
|
173
|
+
(0, tegg_1.HTTPMethod)({
|
|
174
|
+
path: '/-/org/:orgName/member',
|
|
175
|
+
method: tegg_1.HTTPMethodEnum.GET,
|
|
176
|
+
}),
|
|
177
|
+
__param(0, (0, tegg_1.Context)()),
|
|
178
|
+
__param(1, (0, tegg_1.HTTPParam)()),
|
|
179
|
+
__metadata("design:type", Function),
|
|
180
|
+
__metadata("design:paramtypes", [Object, String]),
|
|
181
|
+
__metadata("design:returntype", Promise)
|
|
182
|
+
], OrgController.prototype, "listMembers", null);
|
|
183
|
+
__decorate([
|
|
184
|
+
(0, tegg_1.HTTPMethod)({
|
|
185
|
+
path: '/-/org/:orgName/member',
|
|
186
|
+
method: tegg_1.HTTPMethodEnum.PUT,
|
|
187
|
+
}),
|
|
188
|
+
__param(0, (0, tegg_1.Context)()),
|
|
189
|
+
__param(1, (0, tegg_1.HTTPParam)()),
|
|
190
|
+
__param(2, (0, tegg_1.HTTPBody)()),
|
|
191
|
+
__metadata("design:type", Function),
|
|
192
|
+
__metadata("design:paramtypes", [Object, String, Object]),
|
|
193
|
+
__metadata("design:returntype", Promise)
|
|
194
|
+
], OrgController.prototype, "addMember", null);
|
|
195
|
+
__decorate([
|
|
196
|
+
(0, tegg_1.HTTPMethod)({
|
|
197
|
+
path: '/-/org/:orgName/member/:username',
|
|
198
|
+
method: tegg_1.HTTPMethodEnum.DELETE,
|
|
199
|
+
}),
|
|
200
|
+
__param(0, (0, tegg_1.Context)()),
|
|
201
|
+
__param(1, (0, tegg_1.HTTPParam)()),
|
|
202
|
+
__param(2, (0, tegg_1.HTTPParam)()),
|
|
203
|
+
__metadata("design:type", Function),
|
|
204
|
+
__metadata("design:paramtypes", [Object, String, String]),
|
|
205
|
+
__metadata("design:returntype", Promise)
|
|
206
|
+
], OrgController.prototype, "removeMember", null);
|
|
207
|
+
__decorate([
|
|
208
|
+
(0, tegg_1.HTTPMethod)({
|
|
209
|
+
path: '/-/org/:orgName/member/:username/team',
|
|
210
|
+
method: tegg_1.HTTPMethodEnum.GET,
|
|
211
|
+
}),
|
|
212
|
+
__param(0, (0, tegg_1.Context)()),
|
|
213
|
+
__param(1, (0, tegg_1.HTTPParam)()),
|
|
214
|
+
__param(2, (0, tegg_1.HTTPParam)()),
|
|
215
|
+
__metadata("design:type", Function),
|
|
216
|
+
__metadata("design:paramtypes", [Object, String, String]),
|
|
217
|
+
__metadata("design:returntype", Promise)
|
|
218
|
+
], OrgController.prototype, "listUserTeams", null);
|
|
219
|
+
exports.OrgController = OrgController = __decorate([
|
|
220
|
+
(0, tegg_1.HTTPController)()
|
|
221
|
+
], OrgController);
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvT3JnQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQ0FVcUI7QUFDckIsMkNBQXFFO0FBQ3JFLDZEQUEwRDtBQUMxRCwyREFBd0Q7QUFDeEQsOERBQTJEO0FBQzNELG9FQUFpRTtBQUcxRCxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEsdUNBQWtCO0lBT25ELDBCQUEwQjtJQU1wQixBQUFOLEtBQUssQ0FBQyxTQUFTLENBQVksR0FBZSxFQUFjLElBQTRDO1FBQ2xHLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxNQUFNLElBQUkscUNBQXdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN4RDtRQUNELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDOUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLGFBQWEsRUFBRSxjQUFjLENBQUMsTUFBTTtTQUNyQyxDQUFDLENBQUM7UUFDSCxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxzQkFBc0I7SUFLaEIsQUFBTixLQUFLLENBQUMsT0FBTyxDQUFZLEdBQWUsRUFBZSxPQUFlO1FBQ3BFLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxJQUFJLDBCQUFhLENBQUMsUUFBUSxPQUFPLGFBQWEsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsT0FBTztZQUNMLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtZQUNkLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVztZQUM1QixPQUFPLEVBQUUsR0FBRyxDQUFDLFNBQVM7U0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRCxzQ0FBc0M7SUFNaEMsQUFBTixLQUFLLENBQUMsU0FBUyxDQUFZLEdBQWUsRUFBZSxPQUFlO1FBQ3RFLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbEUsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxJQUFJLDBCQUFhLENBQUMsUUFBUSxPQUFPLGFBQWEsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsMENBQTBDO0lBS3BDLEFBQU4sS0FBSyxDQUFDLFdBQVcsQ0FBWSxHQUFlLEVBQWUsT0FBZTtRQUN4RSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSSwwQkFBYSxDQUFDLFFBQVEsT0FBTyxhQUFhLENBQUMsQ0FBQztTQUN2RDtRQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkYsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxNQUFNLEdBQTJCLEVBQUUsQ0FBQztRQUMxQyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtZQUM1QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4QyxJQUFJLElBQUksRUFBRTtnQkFDUixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7YUFDeEM7U0FDRjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCwyQ0FBMkM7SUFLckMsQUFBTixLQUFLLENBQUMsU0FBUyxDQUFZLEdBQWUsRUFBZSxPQUFlLEVBQzFELElBQWlEO1FBQzdELE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekYsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxJQUFJLDBCQUFhLENBQUMsUUFBUSxPQUFPLGFBQWEsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXpGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsTUFBTSxJQUFJLHFDQUF3QixDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDeEQ7UUFDRCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsTUFBTSxJQUFJLDBCQUFhLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxhQUFhLENBQUMsQ0FBQztTQUMxRDtRQUNELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLENBQUM7UUFDckYsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsdURBQXVEO0lBS2pELEFBQU4sS0FBSyxDQUFDLFlBQVksQ0FBWSxHQUFlLEVBQWUsT0FBZSxFQUM1RCxRQUFnQjtRQUM3QixNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3pGLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSSwwQkFBYSxDQUFDLFFBQVEsT0FBTyxhQUFhLENBQUMsQ0FBQztTQUN2RDtRQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEQsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV6RixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixNQUFNLElBQUksMEJBQWEsQ0FBQyxTQUFTLFFBQVEsYUFBYSxDQUFDLENBQUM7U0FDekQ7UUFDRCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELDRDQUE0QztJQUt0QyxBQUFOLEtBQUssQ0FBQyxhQUFhLENBQVksR0FBZSxFQUFlLE9BQWUsRUFDN0QsUUFBZ0I7UUFDN0IsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvRCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixNQUFNLElBQUksMEJBQWEsQ0FBQyxRQUFRLE9BQU8sYUFBYSxDQUFDLENBQUM7U0FDdkQ7UUFDRCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixNQUFNLElBQUksMEJBQWEsQ0FBQyxTQUFTLFFBQVEsYUFBYSxDQUFDLENBQUM7U0FDekQ7UUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEcsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDRixDQUFBO0FBeEpZLHNDQUFhO0FBRVA7SUFEaEIsSUFBQSxhQUFNLEdBQUU7OEJBQ29CLHVCQUFVO2lEQUFDO0FBR3ZCO0lBRGhCLElBQUEsYUFBTSxHQUFFOzhCQUN3QiwrQkFBYztxREFBQztBQVExQztJQUxMLElBQUEsaUJBQVUsRUFBQztRQUNWLElBQUksRUFBRSxRQUFRO1FBQ2QsTUFBTSxFQUFFLHFCQUFjLENBQUMsR0FBRztLQUMzQixDQUFDO0lBQ0QsSUFBQSxpQkFBVSxFQUFDLHlCQUFXLENBQUM7SUFDUCxXQUFBLElBQUEsY0FBTyxHQUFFLENBQUE7SUFBbUIsV0FBQSxJQUFBLGVBQVEsR0FBRSxDQUFBOzs7OzhDQVd0RDtBQU9LO0lBSkwsSUFBQSxpQkFBVSxFQUFDO1FBQ1YsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixNQUFNLEVBQUUscUJBQWMsQ0FBQyxHQUFHO0tBQzNCLENBQUM7SUFDYSxXQUFBLElBQUEsY0FBTyxHQUFFLENBQUE7SUFBbUIsV0FBQSxJQUFBLGdCQUFTLEdBQUUsQ0FBQTs7Ozs0Q0FXckQ7QUFRSztJQUxMLElBQUEsaUJBQVUsRUFBQztRQUNWLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsTUFBTSxFQUFFLHFCQUFjLENBQUMsTUFBTTtLQUM5QixDQUFDO0lBQ0QsSUFBQSxpQkFBVSxFQUFDLHlCQUFXLENBQUM7SUFDUCxXQUFBLElBQUEsY0FBTyxHQUFFLENBQUE7SUFBbUIsV0FBQSxJQUFBLGdCQUFTLEdBQUUsQ0FBQTs7Ozs4Q0FRdkQ7QUFPSztJQUpMLElBQUEsaUJBQVUsRUFBQztRQUNWLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsTUFBTSxFQUFFLHFCQUFjLENBQUMsR0FBRztLQUMzQixDQUFDO0lBQ2lCLFdBQUEsSUFBQSxjQUFPLEdBQUUsQ0FBQTtJQUFtQixXQUFBLElBQUEsZ0JBQVMsR0FBRSxDQUFBOzs7O2dEQWlCekQ7QUFPSztJQUpMLElBQUEsaUJBQVUsRUFBQztRQUNWLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsTUFBTSxFQUFFLHFCQUFjLENBQUMsR0FBRztLQUMzQixDQUFDO0lBQ2UsV0FBQSxJQUFBLGNBQU8sR0FBRSxDQUFBO0lBQW1CLFdBQUEsSUFBQSxnQkFBUyxHQUFFLENBQUE7SUFDckQsV0FBQSxJQUFBLGVBQVEsR0FBRSxDQUFBOzs7OzhDQWtCWjtBQU9LO0lBSkwsSUFBQSxpQkFBVSxFQUFDO1FBQ1YsSUFBSSxFQUFFLGtDQUFrQztRQUN4QyxNQUFNLEVBQUUscUJBQWMsQ0FBQyxNQUFNO0tBQzlCLENBQUM7SUFDa0IsV0FBQSxJQUFBLGNBQU8sR0FBRSxDQUFBO0lBQW1CLFdBQUEsSUFBQSxnQkFBUyxHQUFFLENBQUE7SUFDeEQsV0FBQSxJQUFBLGdCQUFTLEdBQUUsQ0FBQTs7OztpREFlYjtBQU9LO0lBSkwsSUFBQSxpQkFBVSxFQUFDO1FBQ1YsSUFBSSxFQUFFLHVDQUF1QztRQUM3QyxNQUFNLEVBQUUscUJBQWMsQ0FBQyxHQUFHO0tBQzNCLENBQUM7SUFDbUIsV0FBQSxJQUFBLGNBQU8sR0FBRSxDQUFBO0lBQW1CLFdBQUEsSUFBQSxnQkFBUyxHQUFFLENBQUE7SUFDekQsV0FBQSxJQUFBLGdCQUFTLEdBQUUsQ0FBQTs7OztrREFZYjt3QkF2SlUsYUFBYTtJQUR6QixJQUFBLHFCQUFjLEdBQUU7R0FDSixhQUFhLENBd0p6QiJ9
|
|
@@ -62,6 +62,7 @@ let PackageVersionFileController = class PackageVersionFileController extends Ab
|
|
|
62
62
|
ctx.tValidate(typebox_1.Spec, `${fullname}@${versionSpec}`);
|
|
63
63
|
ctx.vary(this.config.cnpmcore.cdnVaryHeader);
|
|
64
64
|
const [scope, name] = (0, PackageUtil_1.getScopeAndName)(fullname);
|
|
65
|
+
await this.userRoleManager.checkReadAccess(ctx, scope, name);
|
|
65
66
|
const packageVersion = await __classPrivateFieldGet(this, _PackageVersionFileController_instances, "m", _PackageVersionFileController_getPackageVersion).call(this, ctx, fullname, scope, name, versionSpec);
|
|
66
67
|
ctx.set('cache-control', META_CACHE_CONTROL);
|
|
67
68
|
const hasMeta = typeof meta === 'string' || ctx.path.endsWith('/files/');
|
|
@@ -87,6 +88,7 @@ let PackageVersionFileController = class PackageVersionFileController extends Ab
|
|
|
87
88
|
ctx.tValidate(typebox_1.Spec, `${fullname}@${versionSpec}`);
|
|
88
89
|
ctx.vary(this.config.cnpmcore.cdnVaryHeader);
|
|
89
90
|
const [scope, name] = (0, PackageUtil_1.getScopeAndName)(fullname);
|
|
91
|
+
await this.userRoleManager.checkReadAccess(ctx, scope, name);
|
|
90
92
|
path = `/${path}`;
|
|
91
93
|
const packageVersion = await __classPrivateFieldGet(this, _PackageVersionFileController_instances, "m", _PackageVersionFileController_getPackageVersion).call(this, ctx, fullname, scope, name, versionSpec);
|
|
92
94
|
if (path.endsWith('/')) {
|
|
@@ -246,4 +248,4 @@ __decorate([
|
|
|
246
248
|
exports.PackageVersionFileController = PackageVersionFileController = __decorate([
|
|
247
249
|
(0, tegg_1.HTTPController)()
|
|
248
250
|
], PackageVersionFileController);
|
|
249
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZVZlcnNpb25GaWxlQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvUGFja2FnZVZlcnNpb25GaWxlQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQ0FVcUI7QUFDckIsMkNBQTJDO0FBQzNDLHlDQUFpQztBQUNqQyw2REFBMEQ7QUFDMUQsMkRBQXdEO0FBQ3hELDBEQUFnRjtBQUNoRiw0RkFBeUY7QUFDekYsb0ZBQWlGO0FBR2pGLG9FQUFpRTtBQUNqRSx3Q0FBa0M7QUFpQmxDLFNBQVMsY0FBYyxDQUFDLElBQXdCO0lBQzlDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsTUFBTTtRQUNaLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztRQUM3QixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1FBQzlCLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSztRQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO0tBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxrQkFBa0IsR0FBRyxrQ0FBa0MsQ0FBQztBQUM5RCxNQUFNLGtCQUFrQixHQUFHLDBCQUEwQixDQUFDO0FBRy9DLElBQU0sNEJBQTRCLEdBQWxDLE1BQU0sNEJBQTZCLFNBQVEsdUNBQWtCO0lBQTdEOzs7SUF5TFAsQ0FBQztJQXJLTyxBQUFOLEtBQUssQ0FBQyxJQUFJLENBQVksR0FBZSxFQUFlLFFBQWdCLEVBQWUsV0FBbUI7UUFDcEcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFJLEVBQUUsR0FBRyxRQUFRLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNsRCx1QkFBQSxJQUFJLGlHQUFvQixNQUF4QixJQUFJLENBQXNCLENBQUM7UUFDM0IsTUFBTSxDQUFF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
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZVZlcnNpb25GaWxlQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvUGFja2FnZVZlcnNpb25GaWxlQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQ0FVcUI7QUFDckIsMkNBQTJDO0FBQzNDLHlDQUFpQztBQUNqQyw2REFBMEQ7QUFDMUQsMkRBQXdEO0FBQ3hELDBEQUFnRjtBQUNoRiw0RkFBeUY7QUFDekYsb0ZBQWlGO0FBR2pGLG9FQUFpRTtBQUNqRSx3Q0FBa0M7QUFpQmxDLFNBQVMsY0FBYyxDQUFDLElBQXdCO0lBQzlDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsTUFBTTtRQUNaLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztRQUM3QixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1FBQzlCLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSztRQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO0tBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxrQkFBa0IsR0FBRyxrQ0FBa0MsQ0FBQztBQUM5RCxNQUFNLGtCQUFrQixHQUFHLDBCQUEwQixDQUFDO0FBRy9DLElBQU0sNEJBQTRCLEdBQWxDLE1BQU0sNEJBQTZCLFNBQVEsdUNBQWtCO0lBQTdEOzs7SUEyTFAsQ0FBQztJQXZLTyxBQUFOLEtBQUssQ0FBQyxJQUFJLENBQVksR0FBZSxFQUFlLFFBQWdCLEVBQWUsV0FBbUI7UUFDcEcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFJLEVBQUUsR0FBRyxRQUFRLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNsRCx1QkFBQSxJQUFJLGlHQUFvQixNQUF4QixJQUFJLENBQXNCLENBQUM7UUFDM0IsTUFBTSxDQUFF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
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { EggContext } from '@eggjs/tegg';
|
|
2
|
+
import { AbstractController } from './AbstractController';
|
|
3
|
+
export declare class TeamController extends AbstractController {
|
|
4
|
+
private readonly orgService;
|
|
5
|
+
private readonly teamService;
|
|
6
|
+
private readonly teamRepository;
|
|
7
|
+
private isAllowScopeOrg;
|
|
8
|
+
private findOrg;
|
|
9
|
+
private requireOrgWriteAccess;
|
|
10
|
+
private requireTeamWriteAccess;
|
|
11
|
+
createTeam(ctx: EggContext, orgName: string, body: {
|
|
12
|
+
name: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
}): Promise<{
|
|
15
|
+
ok: boolean;
|
|
16
|
+
}>;
|
|
17
|
+
listTeams(ctx: EggContext, orgName: string): Promise<{
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
}[]>;
|
|
21
|
+
showTeam(ctx: EggContext, orgName: string, teamName: string): Promise<{
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
created: Date;
|
|
25
|
+
}>;
|
|
26
|
+
removeTeam(ctx: EggContext, orgName: string, teamName: string): Promise<{
|
|
27
|
+
ok: boolean;
|
|
28
|
+
}>;
|
|
29
|
+
listTeamMembers(ctx: EggContext, orgName: string, teamName: string): Promise<string[]>;
|
|
30
|
+
addTeamMember(ctx: EggContext, orgName: string, teamName: string, body: {
|
|
31
|
+
user: string;
|
|
32
|
+
}): Promise<{
|
|
33
|
+
ok: boolean;
|
|
34
|
+
}>;
|
|
35
|
+
removeTeamMember(ctx: EggContext, orgName: string, teamName: string, username: string): Promise<{
|
|
36
|
+
ok: boolean;
|
|
37
|
+
}>;
|
|
38
|
+
listTeamPackages(ctx: EggContext, orgName: string, teamName: string): Promise<Record<string, string>>;
|
|
39
|
+
grantPackageAccess(ctx: EggContext, orgName: string, teamName: string, body: {
|
|
40
|
+
package: string;
|
|
41
|
+
}): Promise<{
|
|
42
|
+
ok: boolean;
|
|
43
|
+
}>;
|
|
44
|
+
revokePackageAccess(ctx: EggContext, orgName: string, teamName: string, scope: string, name: string): Promise<{
|
|
45
|
+
ok: boolean;
|
|
46
|
+
}>;
|
|
47
|
+
}
|