use Modern::Perl;
use CGI qw ( -utf8 );
-use JSON;
+use JSON qw( to_json );
use HTTP::Request;
-use C4::Auth;
-use C4::Output;
+use C4::Auth qw( get_template_and_user );
+use C4::Output qw( output_html_with_http_headers );
use Koha::SharedContent;
-my $query = new CGI;
+my $query = CGI->new;
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
{
template_name => "admin/share_content.tt",
query => $query,
type => "intranet",
- authnotrequired => 0,
flagsrequired => { parameters => 'manage_mana' },
- debug => 1,
}
);
-my $op = $query->param('op') || q||;
+my $op = $query->param('op') || q{};
+my $mana_base = C4::Context->config('mana_config') || '';
+# Check the mana server actually exists at the other end
+my $bad_url;
+if ($mana_base) {
+ my $request = HTTP::Request->new( GET => $mana_base );
+ my $result = Koha::SharedContent::process_request($request);
+ $bad_url = 1 unless (exists($result->{version}));
+}
if ( $op eq 'save' ) {
- my $auto_share = $query->param('autosharewithmana') || q||;
+ my $auto_share = $query->param('autosharewithmana') || q{};
my $mana = $query->param('mana');
C4::Context->set_preference('Mana', $mana);
C4::Context->set_preference('ManaToken', '');
}
-if ( $op eq 'send' ) {
+if ( $op eq 'send' && not $bad_url ) {
my $name = $query->param('name');
my $email = $query->param('email');
my $content = to_json({name => $name,
email => $email});
- my $mana_ip = C4::Context->config('mana_config');
- my $url = "$mana_ip/getsecuritytoken";
+ my $url = "$mana_base/getsecuritytoken";
my $request = HTTP::Request->new( POST => $url );
$request->content($content);
my $result = Koha::SharedContent::process_request($request);
}
-my $mana_url = C4::Context->config('mana_config') || '';
-
$template->param(
- mana_url => $mana_url,
+ mana_url => $mana_base,
+ bad_url => $bad_url,
);
output_html_with_http_headers $query, $cookie, $template->output;