cnpmcore
Version:
Private NPM Registry for Enterprise
27 lines (26 loc) • 1.23 kB
TypeScript
import { Context, Logger } from 'egg';
import type { Package as PackageEntity } from '../core/entity/Package.ts';
import type { Token as TokenEntity } from '../core/entity/Token.ts';
import type { User as UserEntity } from '../core/entity/User.ts';
export type TokenRole = 'read' | 'publish' | 'setting';
export declare class UserRoleManager {
private readonly packageRepository;
private readonly config;
protected logger: Logger;
private readonly registryManagerService;
private readonly tokenService;
private readonly teamRepository;
private handleAuthorized;
private currentAuthorizedUser;
private currentAuthorizedToken;
checkPublishAccess(ctx: Context, fullname: string): Promise<UserEntity>;
getAuthorizedUserAndToken(ctx: Context): Promise<{
token: TokenEntity;
user: UserEntity;
} | null>;
requiredAuthorizedUser(ctx: Context, role: TokenRole): Promise<UserEntity>;
requiredPackageMaintainer(pkg: PackageEntity, user: UserEntity): Promise<void>;
requiredPackageScope(scope: string, user: UserEntity): Promise<void>;
isAdmin(ctx: Context): Promise<boolean>;
checkReadAccess(ctx: Context, scope: string, name: string): Promise<boolean>;
}