I Found it on github
https://github.com/eprints/eprints/blob/392474eec1b8125a66ed2d3e12b02aeb67dc07c4/lib/defaultcfg/cfg.d/security.pl
On 7/20/18 6:24 PM, Chas. Owens wrote:
All of this is supposition since I can't see anything you haven't
shown us.
It sounds like this code is part of a larger program that is going to
call
do "EPrints";
which will bring the source of EPrints into the larger program. The $c
variable is probably setup there. What the code in EPrints is doing
is setting up a handler named can_request_view_document. At some
point in the larger program, it is going to say something like
my $document = $r->param(doc);
my $can_request = $c->{can_request_view_document}->($document, $r);
return 403, "You are not allowed to access $document" unless $can_request;
return 400, "$document doesn't exist" unless -f $document;
return 200, $document;
On Fri, Jul 20, 2018 at 11:06 AM James Kerwin <jkerwin2...@gmail.com
<mailto:jkerwin2...@gmail.com>> wrote:
Afternoon all,
I have been asked to take a look at a .pl file which is part of a
set-up called "EPrints". The particular file controls who can
access documents on a server.
Excluding some comments, the file starts like:
$c->{can_request_view_document} = sub
{
my( $doc, $r ) = @_;
It then goes on to complete the subroutine and return a value.
I understand that $doc and $r are populated via @_ but I have
never before seen the structure of the first line starting with
"$c". Additionally, the file doesn't look like a typical Perl file
(eg.#!/usr/bin/perl -w at the top and some use statements).
I know it's very vague, but could anybody explain this syntax to
me? My suspicion is that something else is calling the subroutines
in this file? Am I at least on the right track?
Thanks,
James