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.
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb3JlL3NlcnZpY2UvT3JnU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxzQ0FJcUI7QUFDckIsMkNBQTJEO0FBQzNELGtFQUErRDtBQUMvRCxzREFBeUQ7QUFDekQsa0VBQStEO0FBQy9ELG9FQUFpRTtBQUNqRSx1Q0FBb0M7QUFDcEMsbURBQWdEO0FBQ2hELHlDQUFzQztBQUN0QyxxREFBa0Q7QUFXM0MsSUFBTSxVQUFVLEdBQWhCLE1BQU0sVUFBVyxTQUFRLGlDQUFlO0lBTzdDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBaUI7UUFDL0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEUsSUFBSSxRQUFRLEVBQUU7WUFDWixNQUFNLElBQUksMkJBQWMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLENBQUM7U0FDOUQ7UUFFRCx3RUFBd0U7UUFDeEUsTUFBTSxHQUFHLEdBQUcsU0FBRyxDQUFDLE1BQU0sQ0FBQztZQUNyQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7WUFDZCxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVc7U0FDN0IsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxjQUFjLEdBQUcsV0FBSSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7WUFDaEIsSUFBSSxFQUFFLDJCQUFlO1lBQ3JCLFdBQVcsRUFBRSxjQUFjO1NBQzVCLENBQUMsQ0FBQztRQUNILE1BQU0sV0FBVyxHQUFHLHFCQUFTLENBQUMsTUFBTSxDQUFDO1lBQ25DLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztZQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLGFBQWE7WUFDekIsSUFBSSxFQUFFLE9BQU87U0FDZCxDQUFDLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyx1QkFBVSxDQUFDLE1BQU0sQ0FBQztZQUNuQyxNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU07WUFDN0IsTUFBTSxFQUFFLEdBQUcsQ0FBQyxhQUFhO1NBQzFCLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUV4RixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywrREFBK0QsRUFDOUUsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWE7UUFDM0IsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLElBQVk7UUFDOUIsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWEsRUFBRSxNQUFjLEVBQUUsT0FBMkIsUUFBUTtRQUNoRixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixNQUFNLElBQUksMEJBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUMxQztRQUVELG9CQUFvQjtRQUNwQixJQUFJLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoRSxJQUFJLE1BQU0sRUFBRTtZQUNWLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNMLE1BQU0sR0FBRyxxQkFBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNuRCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzdDO1FBRUQsOEJBQThCO1FBQzlCLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLDJCQUFlLENBQUMsQ0FBQztRQUNsRixJQUFJLGNBQWMsRUFBRTtZQUNsQixNQUFNLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvRixJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3ZCLE1BQU0sVUFBVSxHQUFHLHVCQUFVLENBQUMsTUFBTSxDQUFDO29CQUNuQyxNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU07b0JBQzdCLE1BQU07aUJBQ1AsQ0FBQyxDQUFDO2dCQUNILE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDakQ7U0FDRjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdEQUF3RCxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEcsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYSxFQUFFLE1BQWM7UUFDOUMsb0NBQW9DO1FBQ3BDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEUsa0JBQWtCO1FBQ2xCLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFhO1FBQzdCLE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLEtBQWEsRUFBRSxNQUFjLEVBQUUsT0FBZ0I7UUFDM0UsSUFBSSxPQUFPO1lBQUUsT0FBTztRQUNwQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQ3RDLE1BQU0sSUFBSSwyQkFBYyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7U0FDN0U7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQXBHWSxnQ0FBVTtBQUVKO0lBRGhCLElBQUEsYUFBTSxHQUFFOzhCQUN1Qiw2QkFBYTtpREFBQztBQUc3QjtJQURoQixJQUFBLGFBQU0sR0FBRTs4QkFDd0IsK0JBQWM7a0RBQUM7cUJBTHJDLFVBQVU7SUFIdEIsSUFBQSxxQkFBYyxFQUFDO1FBQ2QsV0FBVyxFQUFFLGtCQUFXLENBQUMsTUFBTTtLQUNoQyxDQUFDO0dBQ1csVUFBVSxDQW9HdEIifQ==
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb3JlL3NlcnZpY2UvT3JnU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxzQ0FJcUI7QUFDckIsMkNBQTJEO0FBQzNELGtFQUErRDtBQUMvRCxzREFBeUQ7QUFDekQsa0VBQStEO0FBQy9ELG9FQUFpRTtBQUNqRSx1Q0FBb0M7QUFDcEMsbURBQWdEO0FBQ2hELHlDQUFzQztBQUN0QyxxREFBa0Q7QUFXM0MsSUFBTSxVQUFVLEdBQWhCLE1BQU0sVUFBVyxTQUFRLGlDQUFlO0lBTzdDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBaUI7UUFDL0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEUsSUFBSSxRQUFRLEVBQUU7WUFDWixNQUFNLElBQUksMkJBQWMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLENBQUM7U0FDOUQ7UUFFRCx3RUFBd0U7UUFDeEUsTUFBTSxHQUFHLEdBQUcsU0FBRyxDQUFDLE1BQU0sQ0FBQztZQUNyQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7WUFDZCxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVc7U0FDN0IsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxjQUFjLEdBQUcsV0FBSSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7WUFDaEIsSUFBSSxFQUFFLDJCQUFlO1lBQ3JCLFdBQVcsRUFBRSxjQUFjO1NBQzVCLENBQUMsQ0FBQztRQUNILE1BQU0sV0FBVyxHQUFHLHFCQUFTLENBQUMsTUFBTSxDQUFDO1lBQ25DLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztZQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLGFBQWE7WUFDekIsSUFBSSxFQUFFLE9B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
@@ -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
- // Must be an org member
55
- const orgMember = await this.orgRepository.findMember(team.orgId, userId);
56
- if (!orgMember) {
57
- throw new egg_errors_1.ForbiddenError('User must be an org member before joining a team');
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVhbVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29yZS9zZXJ2aWNlL1RlYW1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNDQUlxQjtBQUNyQiwyQ0FBMkQ7QUFDM0Qsa0VBQStEO0FBQy9ELHNEQUF5RDtBQUN6RCxrRUFBK0Q7QUFDL0Qsb0VBQWlFO0FBQ2pFLHlDQUFzQztBQUN0QyxxREFBa0Q7QUFDbEQsdURBQW9EO0FBSzdDLElBQU0sV0FBVyxHQUFqQixNQUFNLFdBQVksU0FBUSxpQ0FBZTtJQU85QyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQWEsRUFBRSxJQUFZLEVBQUUsV0FBb0I7UUFDaEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakUsSUFBSSxRQUFRLEVBQUU7WUFDWixNQUFNLElBQUksMkJBQWMsQ0FBQyxTQUFTLElBQUksa0JBQWtCLENBQUMsQ0FBQztTQUMzRDtRQUVELE1BQU0sSUFBSSxHQUFHLFdBQUksQ0FBQyxNQUFNLENBQUM7WUFDdkIsS0FBSztZQUNMLElBQUk7WUFDSixXQUFXO1NBQ1osQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwREFBMEQsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2RyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQWM7UUFDN0IsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FB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
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVhbVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29yZS9zZXJ2aWNlL1RlYW1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNDQUlxQjtBQUNyQiwyQ0FBMkQ7QUFDM0Qsa0VBQStEO0FBQy9ELHNEQUF5RDtBQUN6RCxrRUFBK0Q7QUFDL0Qsb0VBQWlFO0FBQ2pFLHlDQUFzQztBQUN0QyxxREFBa0Q7QUFDbEQsdURBQW9EO0FBSzdDLElBQU0sV0FBVyxHQUFqQixNQUFNLFdBQVksU0FBUSxpQ0FBZTtJQVE5QyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQWEsRUFBRSxJQUFZLEVBQUUsV0FBb0I7UUFDaEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakUsSUFBSSxRQUFRLEVBQUU7WUFDWixNQUFNLElBQUksMkJBQWMsQ0FBQyxTQUFTLElBQUksa0JBQWtCLENBQUMsQ0FBQztTQUMzRDtRQUVELE1BQU0sSUFBSSxHQUFHLFdBQUksQ0FBQyxNQUFNLENBQUM7WUFDdkIsS0FBSztZQUNMLElBQUk7WUFDSixXQUFXO1NBQ1osQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwREFBMEQsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2RyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQWM7UUFDN0IsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxNQUFNLElBQUksMEJBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLDJCQUFlLEVBQUU7WUFDakMsTUFBTSxJQUFJLDJCQUFjLENBQUMsbUNBQW1DLENBQUMsQ0FBQztTQUMvRDtRQUNELCtEQUErRDtRQUMvRCxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUNBQXFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBYyxFQUFFLE1BQWM7UUFDNUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxNQUFNLElBQUksMEJBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzNDO1FBRUQseUZBQXlGO1FBQ3pGLDhDQUE4QztRQUM5QyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRTtZQUNyRSxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDZCxNQUFNLElBQUksMkJBQWMsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO2FBQzlFO1NBQ0Y7UUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0RSxJQUFJLFFBQVEsRUFBRTtZQUNaLE9BQU8sUUFBUSxDQUFDO1NBQ2pCO1FBRUQsTUFBTSxNQUFNLEdBQUcsdUJBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNyRCxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdEQUFnRCxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUMvQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtREFBbUQsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBYztRQUM5QixPQUFPLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFjLEVBQUUsU0FBaUI7UUFDeEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxNQUFNLElBQUksMEJBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDMUUsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLFFBQVEsQ0FBQztTQUNqQjtRQUVELE1BQU0sV0FBVyxHQUFHLHlCQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDOUQsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0REFBNEQsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbEcsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxNQUFjLEVBQUUsU0FBaUI7UUFDekQsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkRBQTZELEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQWM7UUFDL0IsT0FBTyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hELENBQUM7Q0FDRixDQUFBO0FBbEdZLGtDQUFXO0FBRUw7SUFEaEIsSUFBQSxhQUFNLEdBQUU7OEJBQ3VCLDZCQUFhO2tEQUFDO0FBRzdCO0lBRGhCLElBQUEsYUFBTSxHQUFFOzhCQUN3QiwrQkFBYzttREFBQztzQkFMckMsV0FBVztJQUh2QixJQUFBLHFCQUFjLEVBQUM7UUFDZCxXQUFXLEVBQUUsa0JBQVcsQ0FBQyxNQUFNO0tBQ2hDLENBQUM7R0FDVyxXQUFXLENBa0d2QiJ9
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlclJvbGVNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXBwL3BvcnQvVXNlclJvbGVNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNDQUtxQjtBQUVyQiwyQ0FBK0Q7QUFDL0QsdUVBQW9FO0FBSXBFLHVEQUF3RDtBQUN4RCxtRkFBZ0Y7QUFDaEYsK0RBQTREO0FBU3JELElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFBckI7UUFZRyxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUF5Sm5DLENBQUM7SUFySkMsdUJBQXVCO0lBQ3ZCLDBCQUEwQjtJQUMxQix1Q0FBdUM7SUFDdkMscUNBQXFDO0lBQ3JDLGdFQUFnRTtJQUN6RCxLQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBZSxFQUFFLFFBQWdCO1FBRS9ELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUUvRCwwQkFBMEI7UUFDMUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELHdDQUF3QztRQUN4QyxNQUFNLHNCQUFzQixHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxzQkFBdUIsQ0FBQztRQUMxQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRWxFLHVDQUF1QztRQUN2QyxNQUFNLENBQUUsS0FBSyxFQUFFLElBQUksQ0FBRSxHQUFHLElBQUEsNkJBQWUsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUNsRCxNQUFNLEdBQUcsR0FBRyxNQUFNLElB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
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvT3JnQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQ0FVcUI7QUFDckIsMkNBQXFFO0FBQ3JFLDZEQUEwRDtBQUMxRCwyREFBd0Q7QUFDeEQsOERBQTJEO0FBQzNELG9FQUFpRTtBQUcxRCxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEsdUNBQWtCO0lBT25ELDBCQUEwQjtJQU1wQixBQUFOLEtBQUssQ0FBQyxTQUFTLENBQVksR0FBZSxFQUFjLElBQTRDO1FBQ2xHLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxNQUFNLElBQUkscUNBQXdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN4RDtRQUNELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDOUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLGFBQWEsRUFBRSxjQUFjLENBQUMsTUFBTTtTQUNyQyxDQUFDLENBQUM7UUFDSCxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxzQkFBc0I7SUFLaEIsQUFBTixLQUFLLENBQUMsT0FBTyxDQUFZLEdBQWUsRUFBZSxPQUFlO1FBQ3BFLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FB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
@@ -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
+ }