Bug 30466: Convert serials pages tabs to Bootstrap
[koha-ffzg.git] / admin / share_content.pl
index 4f46316..89dd4e0 100755 (executable)
 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);
@@ -57,15 +63,14 @@ if ( $op eq 'reset' ) {
     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);
@@ -78,10 +83,9 @@ if ( $op eq 'send' ) {
 }
 
 
-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;