1 package FS::ClientAPI::MasonComponent;
4 use vars qw($DEBUG $me);
5 use FS::Mason qw( mason_interps );
9 $me = '[FS::ClientAPI::MasonComponent]';
11 my %allowed_comps = map { $_=>1 } qw(
12 /elements/select-did.html
19 my( $fs_interp, $rt_interp ) = mason_interps('standalone', 'outbuf'=>\$outbuf);
24 warn "$me mason_comp called on $packet\n" if $DEBUG;
26 my $comp = $packet->{'comp'};
27 unless ( $allowed_comps{$comp} ) {
28 return { 'error' => 'Illegal component' };
31 my @args = $packet->{'args'} ? @{ $packet->{'args'} } : ();
33 my $conf = new FS::Conf;
34 $FS::Mason::Request::FSURL = $conf->config('selfservice_server-base_url');
35 $FS::Mason::Request::QUERY_STRING = $packet->{'query_string'} || '';
38 $fs_interp->exec($comp, @args); #only FS for now alas...
40 #errors? (turn off in-line error reporting?)
42 return { 'output' => $outbuf };