33 lines
1.1 KiB
Diff
33 lines
1.1 KiB
Diff
|
diff --git src/lib/Hydra/Controller/Root.pm src/lib/Hydra/Controller/Root.pm
|
||
|
index a9b0d558..71869ba0 100644
|
||
|
--- a/src/lib/Hydra/Controller/Root.pm
|
||
|
+++ b/src/lib/Hydra/Controller/Root.pm
|
||
|
@@ -19,6 +19,11 @@ use Net::Prometheus;
|
||
|
# Put this controller at top-level.
|
||
|
__PACKAGE__->config->{namespace} = '';
|
||
|
|
||
|
+sub isRedistRestricted {
|
||
|
+ my ($path) = @_;
|
||
|
+
|
||
|
+ return index($path, "-RESTRICTDIST-") >= 0;
|
||
|
+}
|
||
|
|
||
|
sub noLoginNeeded {
|
||
|
my ($c) = @_;
|
||
|
@@ -319,6 +324,7 @@ sub nar :Local :Args(1) {
|
||
|
$path = $Nix::Config::storeDir . "/$path";
|
||
|
|
||
|
gone($c, "Path " . $path . " is no longer available.") unless isValidPath($path);
|
||
|
+ notFound($c, "Redistribution restricted") if isRedistRestricted($path);
|
||
|
|
||
|
$c->stash->{current_view} = 'NixNAR';
|
||
|
$c->stash->{storePath} = $path;
|
||
|
@@ -368,6 +374,7 @@ sub narinfo :LocalRegex('^([a-z0-9]+).narinfo$') :Args(0) {
|
||
|
setCacheHeaders($c, 60 * 60);
|
||
|
return;
|
||
|
}
|
||
|
+ notFound($c, "Redistribution restricted") if isRedistRestricted($path);
|
||
|
|
||
|
$c->stash->{storePath} = $path;
|
||
|
$c->forward('Hydra::View::NARInfo');
|