From 66f183cceaf0a10f25ba71048541d082e4be260e Mon Sep 17 00:00:00 2001 From: "@jotadeveloper" <@jotadeveloper> Date: Fri, 12 Jul 2019 13:30:34 +0200 Subject: [PATCH] feat: add logging output for each action --- plugins/auth-memory/src/Memory.ts | 19 ++++++++++++++++++- plugins/auth-memory/tsconfig.json | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/plugins/auth-memory/src/Memory.ts b/plugins/auth-memory/src/Memory.ts index 97859a8f..7323167c 100644 --- a/plugins/auth-memory/src/Memory.ts +++ b/plugins/auth-memory/src/Memory.ts @@ -1,7 +1,8 @@ import { PluginOptions, Callback, PackageAccess, IPluginAuth, RemoteUser, Logger } from '@verdaccio/types'; -import { VerdaccioMemoryConfig, Users, UserMemory } from '../types/index'; import { getConflict, getForbidden, getNotFound, getUnauthorized } from '@verdaccio/commons-api/lib'; +import { VerdaccioMemoryConfig, Users, UserMemory } from '../types/index'; + export default class Memory implements IPluginAuth { public _logger: Logger; public _users: Users; @@ -19,22 +20,26 @@ export default class Memory implements IPluginAuth { const userCredentials = this._users[user]; if (!userCredentials) { + this._logger.debug({user}, '[VerdaccioMemory] user @{user} does not exist'); return done(null, false); } if (password !== userCredentials.password) { const err = getUnauthorized("i don't like your password"); + this._logger.info({user}, '[VerdaccioMemory] password invalid for: @{user}'); return done(err); } // authentication succeeded! // return all usergroups this user has access to; + this._logger.info({user}, '[VerdaccioMemory] authentication succeeded for @{user}'); return done(null, [user]); } adduser(user: string, password: string, done: Callback) { if (this._users[user]) { + this._logger.debug({user}, '[VerdaccioMemory] user @{user} already exist'); return done(null, true); } @@ -48,19 +53,23 @@ export default class Memory implements IPluginAuth { this._users[user] = { name: user, password: password }; + this._logger.info({ user }, '[VerdaccioMemory] user added succeeded for @{user}'); done(null, user); } changePassword(username: string, password: string, newPassword: string, cb: Callback) { const user: UserMemory = this._users[username]; + this._logger.debug({ user: user.name }, 'user: @{user} init change password'); if (user && user.password === password) { user.password = newPassword; this._users[username] = user; + this._logger.info({ user }, '[VerdaccioMemory] user changed password succeeded for @{user}'); cb(null, user); } else { const err = getNotFound('user not found'); + this._logger.debug({ user: user.name }, 'change password user @{user} not found'); return cb(err); } @@ -68,30 +77,37 @@ export default class Memory implements IPluginAuth { allow_access(user: RemoteUser, pkg: PackageAccess, cb: Callback) { if (pkg.access!.includes('$all') || pkg.access!.includes('$anonymous')) { + this._logger.debug({ user: user.name }, '[VerdaccioMemory] user: @{user} has been granted access'); + return cb(null, true); } if (!user.name) { const err = getForbidden('not allowed to access package'); + this._logger.debug({ user: user.name }, 'user: @{user} not allowed to access package'); return cb(err); } if (pkg.access!.includes(user.name) || pkg.access!.includes('$authenticated')) { + this._logger.debug({ user: user.name }, '[VerdaccioMemory] user: @{user} has been granted access'); return cb(null, true); } const err = getForbidden('not allowed to access package'); + this._logger.debug({ user: user.name }, '[VerdaccioMemory] user: @{user} not allowed to access package'); return cb(err); } allow_publish(user: RemoteUser, pkg: PackageAccess, cb: Callback) { if (pkg.publish!.includes('$all') || pkg.publish!.includes('$anonymous')) { + this._logger.debug({ user: user.name }, '[VerdaccioMemory] user: @{user} has been granted to publish'); return cb(null, true); } if (!user.name) { const err = getForbidden('not allowed to publish package'); + this._logger.debug({ user: user.name }, 'user: @{user} not allowed to publish package'); return cb(err); } @@ -101,6 +117,7 @@ export default class Memory implements IPluginAuth { } const err = getForbidden('not allowed to publish package'); + this._logger.debug({ user: user.name }, '[VerdaccioMemory] user: @{user} not allowed to publish package'); return cb(err); } diff --git a/plugins/auth-memory/tsconfig.json b/plugins/auth-memory/tsconfig.json index 5ca4c129..0ddfdeee 100644 --- a/plugins/auth-memory/tsconfig.json +++ b/plugins/auth-memory/tsconfig.json @@ -6,7 +6,7 @@ "noImplicitAny": true, "strict": true, "outDir": "lib", - "allowSyntheticDefaultImports": true, + "allowSyntheticDefaultImports": true, "esModuleInterop": true, "typeRoots": [ "./node_modules/@verdaccio/types/lib/verdaccio",