feat: add new options to the web disable login and pkg managers (#2947)
This commit is contained in:
parent
d6415d4dc3
commit
1a7b1ee8ad
|
@ -7840,14 +7840,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||||
]],
|
]],
|
||||||
["core-js", [
|
["core-js", [
|
||||||
["npm:2.6.9", {
|
["npm:2.6.9", {
|
||||||
"packageLocation": "./.yarn/cache/core-js-npm-2.6.9-f821bf686c-00c30207eb.zip/node_modules/core-js/",
|
"packageLocation": "./.yarn/unplugged/core-js-npm-2.6.9-f821bf686c/node_modules/core-js/",
|
||||||
"packageDependencies": [
|
"packageDependencies": [
|
||||||
["core-js", "npm:2.6.9"]
|
["core-js", "npm:2.6.9"]
|
||||||
],
|
],
|
||||||
"linkType": "HARD",
|
"linkType": "HARD",
|
||||||
}],
|
}],
|
||||||
["npm:3.20.2", {
|
["npm:3.20.2", {
|
||||||
"packageLocation": "./.yarn/cache/core-js-npm-3.20.2-656ea79cc8-642927e21a.zip/node_modules/core-js/",
|
"packageLocation": "./.yarn/unplugged/core-js-npm-3.20.2-656ea79cc8/node_modules/core-js/",
|
||||||
"packageDependencies": [
|
"packageDependencies": [
|
||||||
["core-js", "npm:3.20.2"]
|
["core-js", "npm:3.20.2"]
|
||||||
],
|
],
|
||||||
|
@ -14898,7 +14898,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||||
]],
|
]],
|
||||||
["puppeteer", [
|
["puppeteer", [
|
||||||
["npm:5.5.0", {
|
["npm:5.5.0", {
|
||||||
"packageLocation": "./.yarn/cache/puppeteer-npm-5.5.0-bba75ba998-08ba8a7da5.zip/node_modules/puppeteer/",
|
"packageLocation": "./.yarn/unplugged/puppeteer-npm-5.5.0-bba75ba998/node_modules/puppeteer/",
|
||||||
"packageDependencies": [
|
"packageDependencies": [
|
||||||
["puppeteer", "npm:5.5.0"],
|
["puppeteer", "npm:5.5.0"],
|
||||||
["debug", "virtual:65523936f66795efc0bd6f7ca9a755f1be9f9bb998dc7cd39f5d823ea185c793a03b3f329f921a146569ee8bdffdd22dd15c2e08d286539b118e1cbbab91f8cf#npm:4.1.1"],
|
["debug", "virtual:65523936f66795efc0bd6f7ca9a755f1be9f9bb998dc7cd39f5d823ea185c793a03b3f329f921a146569ee8bdffdd22dd15c2e08d286539b118e1cbbab91f8cf#npm:4.1.1"],
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { Response, Router } from 'express';
|
import { Response, Router } from 'express';
|
||||||
|
|
||||||
|
import { hasLogin } from '../../../lib/utils';
|
||||||
import { limiter } from '../../rate-limiter';
|
import { limiter } from '../../rate-limiter';
|
||||||
import packageApi from './package';
|
import packageApi from './package';
|
||||||
import search from './search';
|
import search from './search';
|
||||||
|
@ -18,6 +19,8 @@ export default (auth, storage, config) => {
|
||||||
route.use('/data/', packageApi(storage, auth, config));
|
route.use('/data/', packageApi(storage, auth, config));
|
||||||
route.use('/data/', search(storage, auth));
|
route.use('/data/', search(storage, auth));
|
||||||
route.use('/sec/', limiter(config?.userRateLimit));
|
route.use('/sec/', limiter(config?.userRateLimit));
|
||||||
route.use('/sec/', user(auth, storage));
|
if (hasLogin(config)) {
|
||||||
|
route.use('/sec/', user(auth, storage));
|
||||||
|
}
|
||||||
return route;
|
return route;
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { URL } from 'url';
|
||||||
import { HEADERS } from '@verdaccio/commons-api';
|
import { HEADERS } from '@verdaccio/commons-api';
|
||||||
|
|
||||||
import { WEB_TITLE } from '../../../lib/constants';
|
import { WEB_TITLE } from '../../../lib/constants';
|
||||||
import { getPublicUrl, isHTTPProtocol } from '../../../lib/utils';
|
import { getPublicUrl, hasLogin, isHTTPProtocol } from '../../../lib/utils';
|
||||||
import renderTemplate from './template';
|
import renderTemplate from './template';
|
||||||
|
|
||||||
const pkgJSON = require('../../../../package.json');
|
const pkgJSON = require('../../../../package.json');
|
||||||
|
@ -50,7 +50,9 @@ export default function renderHTML(config, manifest, manifestFiles, req, res) {
|
||||||
const darkMode = config?.web?.darkMode ?? false;
|
const darkMode = config?.web?.darkMode ?? false;
|
||||||
const title = config?.web?.title ?? WEB_TITLE;
|
const title = config?.web?.title ?? WEB_TITLE;
|
||||||
const scope = config?.web?.scope ?? '';
|
const scope = config?.web?.scope ?? '';
|
||||||
|
const login = hasLogin(config);
|
||||||
const logoURI = resolveLogo(config, req);
|
const logoURI = resolveLogo(config, req);
|
||||||
|
const pkgManagers = config?.web?.pkgManagers ?? ['yarn', 'pnpm', 'npm'];
|
||||||
const version = pkgJSON.version;
|
const version = pkgJSON.version;
|
||||||
const primaryColor = validatePrimaryColor(config?.web?.primary_color) ?? '#4b5e40';
|
const primaryColor = validatePrimaryColor(config?.web?.primary_color) ?? '#4b5e40';
|
||||||
const { scriptsBodyAfter, metaScripts, scriptsbodyBefore } = Object.assign(
|
const { scriptsBodyAfter, metaScripts, scriptsbodyBefore } = Object.assign(
|
||||||
|
@ -69,6 +71,8 @@ export default function renderHTML(config, manifest, manifestFiles, req, res) {
|
||||||
base,
|
base,
|
||||||
primaryColor,
|
primaryColor,
|
||||||
version,
|
version,
|
||||||
|
pkgManagers,
|
||||||
|
login,
|
||||||
logo: logoURI,
|
logo: logoURI,
|
||||||
title,
|
title,
|
||||||
scope,
|
scope,
|
||||||
|
|
|
@ -12,7 +12,7 @@ import validator from 'validator';
|
||||||
// eslint-disable-next-line max-len
|
// eslint-disable-next-line max-len
|
||||||
import { getBadData, getBadRequest, getCode, getConflict, getForbidden, getInternalError, getNotFound, getServiceUnavailable, getUnauthorized } from '@verdaccio/commons-api';
|
import { getBadData, getBadRequest, getCode, getConflict, getForbidden, getInternalError, getNotFound, getServiceUnavailable, getUnauthorized } from '@verdaccio/commons-api';
|
||||||
import sanitizyReadme from '@verdaccio/readme';
|
import sanitizyReadme from '@verdaccio/readme';
|
||||||
import { Author, Package, Version } from '@verdaccio/types';
|
import { Author, Config, Package, Version } from '@verdaccio/types';
|
||||||
|
|
||||||
import { AuthorAvatar, StringValue } from '../../types';
|
import { AuthorAvatar, StringValue } from '../../types';
|
||||||
import { GENERIC_AVATAR, generateGravatarUrl } from '../utils/user';
|
import { GENERIC_AVATAR, generateGravatarUrl } from '../utils/user';
|
||||||
|
@ -689,3 +689,9 @@ export function wrapPrefix(prefix: string | void): string {
|
||||||
return prefix;
|
return prefix;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function hasLogin(config: Config) {
|
||||||
|
// FIXME: types are not yet on the library verdaccio/monorepo
|
||||||
|
// @ts-ignore
|
||||||
|
return _.isNil(config?.web?.login) || config?.web?.login === true;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue