simplify
This commit is contained in:
parent
a4e1662553
commit
c199167a8f
@ -15,34 +15,45 @@ export function onRequest(context) {
|
||||
// Parse the path out of the url
|
||||
const url = new URL(context.request.url);
|
||||
|
||||
// The first segment of the path is probably the user
|
||||
var path_split = url.pathname.split("/");
|
||||
// // The first segment of the path is probably the user
|
||||
// var path_split = url.pathname.split("/");
|
||||
|
||||
// The image name is the part between `/vx/` and the first action token
|
||||
var image_name = "";
|
||||
for (var token of path_split) {
|
||||
if (token == "v2" || token == "") {
|
||||
continue;
|
||||
}
|
||||
if (POSSIBLE_ACTION_TOKENS.includes(token)) {
|
||||
// // The image name is the part between `/vx/` and the first action token
|
||||
// var image_name = "";
|
||||
// for (var token of path_split) {
|
||||
// if (token == "v2" || token == "") {
|
||||
// continue;
|
||||
// }
|
||||
// if (POSSIBLE_ACTION_TOKENS.includes(token)) {
|
||||
// break;
|
||||
// }
|
||||
// image_name += token + "/";
|
||||
// }
|
||||
|
||||
// // The action_url is everything after the image name
|
||||
// var action_url = url.pathname.replace(`/v2/${image_name}`, "");
|
||||
|
||||
// // If there is a slash and the first part is not an allowed user, fail
|
||||
// var image_name_parts = image_name.split("/");
|
||||
// if (image_name_parts.length > 1 && !ALLOWED_USERS.includes(image_name_parts[0])) {
|
||||
// return new Response(`User does not exist ${image_name_parts[0]}`, { status: 404 });
|
||||
// }
|
||||
|
||||
// // If there is no slash, add the default user to the image name
|
||||
// if (image_name_parts.length == 1) {
|
||||
// image_name = `${DEFAULT_USER}/${image_name}`;
|
||||
// }
|
||||
|
||||
var has_allowed_user = false;
|
||||
for (var user of ALLOWED_USERS) {
|
||||
if (url.pathname.startsWith(`/v2/${user}/`)) {
|
||||
has_allowed_user = true;
|
||||
break;
|
||||
}
|
||||
image_name += token + "/";
|
||||
}
|
||||
if (!has_allowed_user) {
|
||||
return new Response(`User does not exist`, { status: 404 });
|
||||
}
|
||||
|
||||
// The action_url is everything after the image name
|
||||
var action_url = url.pathname.replace(`/v2/${image_name}`, "");
|
||||
|
||||
// If there is a slash and the first part is not an allowed user, fail
|
||||
var image_name_parts = image_name.split("/");
|
||||
if (image_name_parts.length > 1 && !ALLOWED_USERS.includes(image_name_parts[0])) {
|
||||
return new Response(`User does not exist ${image_name_parts[0]}`, { status: 404 });
|
||||
}
|
||||
|
||||
// If there is no slash, add the default user to the image name
|
||||
if (image_name_parts.length == 1) {
|
||||
image_name = `${DEFAULT_USER}/${image_name}`;
|
||||
}
|
||||
|
||||
return Response.redirect(`https://ghcr.io/v2/${image_name}/${action_url}`, 302);
|
||||
return Response.redirect(`https://ghcr.io/${url.pathname}`, 302);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user