cnpmcore
Version:
26 lines (25 loc) • 1.14 kB
TypeScript
import { EggContext } from '@eggjs/tegg';
import { EggLogger } from 'egg';
import { Package as PackageEntity } from '../core/entity/Package';
import { User as UserEntity } from '../core/entity/User';
import { Token as TokenEntity } from '../core/entity/Token';
export type TokenRole = 'read' | 'publish' | 'setting';
export declare class UserRoleManager {
private readonly packageRepository;
private readonly config;
protected logger: EggLogger;
private readonly registryManagerService;
private readonly tokenService;
private handleAuthorized;
private currentAuthorizedUser;
private currentAuthorizedToken;
checkPublishAccess(ctx: EggContext, fullname: string): Promise<UserEntity>;
getAuthorizedUserAndToken(ctx: EggContext): Promise<{
token: TokenEntity;
user: UserEntity;
} | null>;
requiredAuthorizedUser(ctx: EggContext, role: TokenRole): Promise<UserEntity>;
requiredPackageMaintainer(pkg: PackageEntity, user: UserEntity): Promise<void>;
requiredPackageScope(scope: string, user: UserEntity): Promise<void>;
isAdmin(ctx: EggContext): Promise<boolean>;
}