UNPKG

verdaccio-mongodb

Version:
59 lines (58 loc) 2.09 kB
import { PluginOptions, AuthAccessCallback, AuthCallback, Callback, PackageAccess, IPluginAuth, RemoteUser, Logger } from '@verdaccio/types'; import LRU from 'lru-cache'; import { AuthMongoDBConfig } from '../types/index'; /** * Custom Verdaccio Authenticate Plugin. */ export default class AuthMongoDB implements IPluginAuth<AuthMongoDBConfig> { logger: Logger; private config; cache: LRU<string, unknown>; constructor(config: AuthMongoDBConfig, options: PluginOptions<AuthMongoDBConfig>); /** * Authenticate an user. * @param user user to log * @param password provided password * @param cb callback function */ authenticate(username: string, password: string, cb: AuthCallback): Promise<void>; /** * Change a user password * @param username username to create * @param password current/old password * @param newPassword new password * @param cb callback function */ changePassword(username: string, password: string, newPassword: string, cb: Callback): Promise<void>; /** * Add a user to the database * @param username username to create * @param password provided password * @param cb callback function */ adduser(username: string, password: string, cb: Callback): Promise<void>; /** * Check if user is allowed to access a package * Triggered on each access request * @param user * @param pkg * @param cb */ allow_access(user: RemoteUser, pkg: PackageAccess, cb: AuthAccessCallback): Promise<void>; /** * Check if user is allowed to publish a package * Triggered on each publish request * @param user * @param pkg * @param cb */ allow_publish(user: RemoteUser, pkg: PackageAccess, cb: AuthAccessCallback): Promise<void>; /** * Check if user is allowed to remove a package * Triggered on each unpublish request * @param user * @param pkg * @param cb */ allow_unpublish(user: RemoteUser, pkg: PackageAccess, cb: AuthAccessCallback): Promise<void>; }