0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-12-23 22:27:34 -05:00
verdaccio/test/functional/plugins/authorize.js

32 lines
752 B
JavaScript
Raw Normal View History

2017-04-19 14:15:28 -05:00
'use strict';
2015-04-11 08:09:19 -05:00
2017-04-19 14:15:28 -05:00
module.exports = Plugin;
2015-04-11 08:09:19 -05:00
function Plugin(config, stuff) {
2017-04-19 14:15:28 -05:00
let self = Object.create(Plugin.prototype);
self._config = config;
return self;
2015-04-11 08:09:19 -05:00
}
// plugin is expected to be compatible with...
2017-04-19 14:15:28 -05:00
Plugin.prototype.verdaccio_version = '1.1.0';
2015-04-11 08:09:19 -05:00
2017-04-19 14:15:28 -05:00
Plugin.prototype.allow_access = function(user, pkg, cb) {
let self = this;
if (!pkg.handled_by_auth_plugin) {
2015-04-11 08:09:19 -05:00
// delegate to next plugin
2017-04-19 14:15:28 -05:00
return cb(null, false);
2015-04-11 08:09:19 -05:00
}
if (user.name !== self._config.allow_user) {
2017-04-19 14:15:28 -05:00
var err = Error('i don\'t know anything about you');
err.status = 403;
return cb(err);
2015-04-11 08:09:19 -05:00
}
2017-04-19 14:15:28 -05:00
if (pkg.name !== self._config.to_access) {
var err = Error('you\'re not allowed here');
err.status = 403;
return cb(err);
2015-04-11 08:09:19 -05:00
}
2017-04-19 14:15:28 -05:00
return cb(null, true);
};