forked from mirrored/github-readme-stats
refactor: move access guards logic into reusable functions (#4535)
* refactor: move access guards logic into reusable functions * Update src/common/access.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Alexandr <qwerty541zxc@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
co-authored by
Copilot
Alexandr
parent
09627ce715
commit
195e2fc72d
+15
-16
@@ -1,7 +1,6 @@
|
||||
// @ts-check
|
||||
|
||||
import { CONSTANTS, renderError, parseBoolean } from "../src/common/utils.js";
|
||||
import { gistWhitelist } from "../src/common/envs.js";
|
||||
import { isLocaleAvailable } from "../src/translations.js";
|
||||
import { renderGistCard } from "../src/cards/gist.js";
|
||||
import { fetchGist } from "../src/fetchers/gist.js";
|
||||
@@ -10,6 +9,7 @@ import {
|
||||
setCacheHeaders,
|
||||
setErrorCacheHeaders,
|
||||
} from "../src/common/cache.js";
|
||||
import { guardAccess } from "../src/common/access.js";
|
||||
|
||||
export default async (req, res) => {
|
||||
const {
|
||||
@@ -29,21 +29,20 @@ export default async (req, res) => {
|
||||
|
||||
res.setHeader("Content-Type", "image/svg+xml");
|
||||
|
||||
if (gistWhitelist && !gistWhitelist.includes(id)) {
|
||||
return res.send(
|
||||
renderError(
|
||||
"This gist ID is not whitelisted",
|
||||
"Please deploy your own instance",
|
||||
{
|
||||
title_color,
|
||||
text_color,
|
||||
bg_color,
|
||||
border_color,
|
||||
theme,
|
||||
show_repo_link: false,
|
||||
},
|
||||
),
|
||||
);
|
||||
const access = guardAccess({
|
||||
res,
|
||||
id,
|
||||
type: "gist",
|
||||
colors: {
|
||||
title_color,
|
||||
text_color,
|
||||
bg_color,
|
||||
border_color,
|
||||
theme,
|
||||
},
|
||||
});
|
||||
if (!access.isPassed) {
|
||||
return access.result;
|
||||
}
|
||||
|
||||
if (locale && !isLocaleAvailable(locale)) {
|
||||
|
||||
+15
-34
@@ -1,13 +1,12 @@
|
||||
// @ts-check
|
||||
|
||||
import { renderStatsCard } from "../src/cards/stats.js";
|
||||
import { blacklist } from "../src/common/blacklist.js";
|
||||
import { guardAccess } from "../src/common/access.js";
|
||||
import {
|
||||
resolveCacheSeconds,
|
||||
setCacheHeaders,
|
||||
setErrorCacheHeaders,
|
||||
} from "../src/common/cache.js";
|
||||
import { whitelist } from "../src/common/envs.js";
|
||||
import {
|
||||
CONSTANTS,
|
||||
parseArray,
|
||||
@@ -49,38 +48,20 @@ export default async (req, res) => {
|
||||
} = req.query;
|
||||
res.setHeader("Content-Type", "image/svg+xml");
|
||||
|
||||
if (whitelist && !whitelist.includes(username)) {
|
||||
return res.send(
|
||||
renderError(
|
||||
"This username is not whitelisted",
|
||||
"Please deploy your own instance",
|
||||
{
|
||||
title_color,
|
||||
text_color,
|
||||
bg_color,
|
||||
border_color,
|
||||
theme,
|
||||
show_repo_link: false,
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
if (whitelist === undefined && blacklist.includes(username)) {
|
||||
return res.send(
|
||||
renderError(
|
||||
"This username is blacklisted",
|
||||
"Please deploy your own instance",
|
||||
{
|
||||
title_color,
|
||||
text_color,
|
||||
bg_color,
|
||||
border_color,
|
||||
theme,
|
||||
show_repo_link: false,
|
||||
},
|
||||
),
|
||||
);
|
||||
const access = guardAccess({
|
||||
res,
|
||||
id: username,
|
||||
type: "username",
|
||||
colors: {
|
||||
title_color,
|
||||
text_color,
|
||||
bg_color,
|
||||
border_color,
|
||||
theme,
|
||||
},
|
||||
});
|
||||
if (!access.isPassed) {
|
||||
return access.result;
|
||||
}
|
||||
|
||||
if (locale && !isLocaleAvailable(locale)) {
|
||||
|
||||
+15
-34
@@ -1,13 +1,12 @@
|
||||
// @ts-check
|
||||
|
||||
import { renderRepoCard } from "../src/cards/repo.js";
|
||||
import { blacklist } from "../src/common/blacklist.js";
|
||||
import { guardAccess } from "../src/common/access.js";
|
||||
import {
|
||||
resolveCacheSeconds,
|
||||
setCacheHeaders,
|
||||
setErrorCacheHeaders,
|
||||
} from "../src/common/cache.js";
|
||||
import { whitelist } from "../src/common/envs.js";
|
||||
import { CONSTANTS, parseBoolean, renderError } from "../src/common/utils.js";
|
||||
import { fetchRepo } from "../src/fetchers/repo.js";
|
||||
import { isLocaleAvailable } from "../src/translations.js";
|
||||
@@ -32,38 +31,20 @@ export default async (req, res) => {
|
||||
|
||||
res.setHeader("Content-Type", "image/svg+xml");
|
||||
|
||||
if (whitelist && !whitelist.includes(username)) {
|
||||
return res.send(
|
||||
renderError(
|
||||
"This username is not whitelisted",
|
||||
"Please deploy your own instance",
|
||||
{
|
||||
title_color,
|
||||
text_color,
|
||||
bg_color,
|
||||
border_color,
|
||||
theme,
|
||||
show_repo_link: false,
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
if (whitelist === undefined && blacklist.includes(username)) {
|
||||
return res.send(
|
||||
renderError(
|
||||
"This username is blacklisted",
|
||||
"Please deploy your own instance",
|
||||
{
|
||||
title_color,
|
||||
text_color,
|
||||
bg_color,
|
||||
border_color,
|
||||
theme,
|
||||
show_repo_link: false,
|
||||
},
|
||||
),
|
||||
);
|
||||
const access = guardAccess({
|
||||
res,
|
||||
id: username,
|
||||
type: "username",
|
||||
colors: {
|
||||
title_color,
|
||||
text_color,
|
||||
bg_color,
|
||||
border_color,
|
||||
theme,
|
||||
},
|
||||
});
|
||||
if (!access.isPassed) {
|
||||
return access.result;
|
||||
}
|
||||
|
||||
if (locale && !isLocaleAvailable(locale)) {
|
||||
|
||||
+15
-34
@@ -1,13 +1,12 @@
|
||||
// @ts-check
|
||||
|
||||
import { renderTopLanguages } from "../src/cards/top-languages.js";
|
||||
import { blacklist } from "../src/common/blacklist.js";
|
||||
import { guardAccess } from "../src/common/access.js";
|
||||
import {
|
||||
resolveCacheSeconds,
|
||||
setCacheHeaders,
|
||||
setErrorCacheHeaders,
|
||||
} from "../src/common/cache.js";
|
||||
import { whitelist } from "../src/common/envs.js";
|
||||
import {
|
||||
CONSTANTS,
|
||||
parseArray,
|
||||
@@ -44,38 +43,20 @@ export default async (req, res) => {
|
||||
} = req.query;
|
||||
res.setHeader("Content-Type", "image/svg+xml");
|
||||
|
||||
if (whitelist && !whitelist.includes(username)) {
|
||||
return res.send(
|
||||
renderError(
|
||||
"This username is not whitelisted",
|
||||
"Please deploy your own instance",
|
||||
{
|
||||
title_color,
|
||||
text_color,
|
||||
bg_color,
|
||||
border_color,
|
||||
theme,
|
||||
show_repo_link: false,
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
if (whitelist === undefined && blacklist.includes(username)) {
|
||||
return res.send(
|
||||
renderError(
|
||||
"This username is blacklisted",
|
||||
"Please deploy your own instance",
|
||||
{
|
||||
title_color,
|
||||
text_color,
|
||||
bg_color,
|
||||
border_color,
|
||||
theme,
|
||||
show_repo_link: false,
|
||||
},
|
||||
),
|
||||
);
|
||||
const access = guardAccess({
|
||||
res,
|
||||
id: username,
|
||||
type: "username",
|
||||
colors: {
|
||||
title_color,
|
||||
text_color,
|
||||
bg_color,
|
||||
border_color,
|
||||
theme,
|
||||
},
|
||||
});
|
||||
if (!access.isPassed) {
|
||||
return access.result;
|
||||
}
|
||||
|
||||
if (locale && !isLocaleAvailable(locale)) {
|
||||
|
||||
+15
-16
@@ -7,7 +7,6 @@ import {
|
||||
parseBoolean,
|
||||
renderError,
|
||||
} from "../src/common/utils.js";
|
||||
import { whitelist } from "../src/common/envs.js";
|
||||
import { fetchWakatimeStats } from "../src/fetchers/wakatime.js";
|
||||
import { isLocaleAvailable } from "../src/translations.js";
|
||||
import {
|
||||
@@ -15,6 +14,7 @@ import {
|
||||
setCacheHeaders,
|
||||
setErrorCacheHeaders,
|
||||
} from "../src/common/cache.js";
|
||||
import { guardAccess } from "../src/common/access.js";
|
||||
|
||||
export default async (req, res) => {
|
||||
const {
|
||||
@@ -44,21 +44,20 @@ export default async (req, res) => {
|
||||
|
||||
res.setHeader("Content-Type", "image/svg+xml");
|
||||
|
||||
if (whitelist && !whitelist.includes(username)) {
|
||||
return res.send(
|
||||
renderError(
|
||||
"This username is not whitelisted",
|
||||
"Please deploy your own instance",
|
||||
{
|
||||
title_color,
|
||||
text_color,
|
||||
bg_color,
|
||||
border_color,
|
||||
theme,
|
||||
show_repo_link: false,
|
||||
},
|
||||
),
|
||||
);
|
||||
const access = guardAccess({
|
||||
res,
|
||||
id: username,
|
||||
type: "wakatime",
|
||||
colors: {
|
||||
title_color,
|
||||
text_color,
|
||||
bg_color,
|
||||
border_color,
|
||||
theme,
|
||||
},
|
||||
});
|
||||
if (!access.isPassed) {
|
||||
return access.result;
|
||||
}
|
||||
|
||||
if (locale && !isLocaleAvailable(locale)) {
|
||||
|
||||
Reference in New Issue
Block a user