From e53cfccbe6c4573a6cedc9800c2fdfaf97b5993b Mon Sep 17 00:00:00 2001
From: "renater.salaun" <renater.salaun@047e039d-479c-447e-8a29-aa6bf4a09bab>
Date: Mon, 15 Sep 2014 14:09:55 +0000
Subject: [PATCH] First version of the web interface

git-svn-id: https://svn.geant.net/GEANT/edugain_testidp_account_manager/trunk@8 047e039d-479c-447e-8a29-aa6bf4a09bab
---
 bin/account-manager-web.pl                    | 211 ++++++++++++++++++
 lib/IdPAccountManager/Tools.pm                |  64 ++++++
 resources/geant_logo_rgb_300dpi.jpg           | Bin 0 -> 72279 bytes
 .../mail/notification_generic_error.tt2.eml   |  19 ++
 templates/web/content.tt2.html                |  13 ++
 templates/web/index.tt2.html                  | 153 +++++++++++++
 templates/web/title.tt2.html                  |   6 +
 7 files changed, 466 insertions(+)
 create mode 100755 bin/account-manager-web.pl
 create mode 100644 resources/geant_logo_rgb_300dpi.jpg
 create mode 100644 templates/mail/notification_generic_error.tt2.eml
 create mode 100644 templates/web/content.tt2.html
 create mode 100644 templates/web/index.tt2.html
 create mode 100644 templates/web/title.tt2.html

diff --git a/bin/account-manager-web.pl b/bin/account-manager-web.pl
new file mode 100755
index 0000000..d04e310
--- /dev/null
+++ b/bin/account-manager-web.pl
@@ -0,0 +1,211 @@
+#!/usr/bin/perl
+
+## 15/09/2014, Olivier Salaün
+## Web interface for the eduGAIN Test IdP Account Manager
+## TODO : rename %erreurs e
+
+use strict;
+use utf8;
+use lib "/opt/testidp/IdPAccountManager/lib";
+
+use CGI;
+use CGI::Cookie;
+use CGI::Util;
+use Template;
+use Template::Constants qw( :debug );
+use POSIX;
+
+use IdPAccountManager::TestAccount;
+
+## Defining parameters format
+my $urn_or_url_regex = '(http(s?):\/\/|urn:)[^\\\$\*\"\'\`\^\|\<\>\n\s]+'; ## Format de type URL HTTP ou URN
+my $url_regex = 'http(s?):\/\/[^\\\$\*\"\'\`\^\|\<\>\n\s]+'; 
+my $email_regex = '([\w\-\_\.\/\+\=\'\&]+|\".*\")\@[\w\-]+(\.[\w\-]+)+';
+my $domains_regex = '[\w\.\-]+(,[\w\.\-]+)*';
+my %format = (
+	      ## URL
+	      #'attributeauthority' => $url_regex,
+	      );
+
+my %actions = ('select_sp' => {'title_en' => 'Select your Service Provider'    }
+    );
+
+## Gives writes for the group
+umask 0002;
+
+chdir $IdPAccountManager::Conf::global{'root_manager_dir'};
+
+my $request = new WebRequest;
+
+if (defined $request) {
+    $request->execute();
+}
+
+$request->respond();
+
+package WebRequest;
+
+## New web request
+sub new {
+  my $pkg = shift;
+  my $request = {};
+  
+  my $http_query = new CGI;
+  
+  ## Input parameters
+  my %in_vars = $http_query->Vars;
+  $request->{'param_in'} = \%in_vars;
+    
+  ## Check if admin acts as another user
+  $request->{'cookies'} = CGI::Cookie->fetch;
+  #if (defined $request->{'cookies'}{'as_user'} && $request->{'is_admin'}) {
+  #    $request->{'utilisateur'} =  $request->{'as_user'} = $request->{'cookies'}{'as_user'}->value;
+  #    $request->{'is_admin'} = 0;
+  #}    
+
+  ## Usefull data for output (web pages or mail notices)
+  $request->{'param_out'}{'url_cgi'} = $ENV{'SCRIPT_NAME'};
+  $request->{'param_out'}{'env'} = \%ENV;
+  $request->{'param_out'}{'actions'} = \%actions;
+  $request->{'param_out'}{'conf'} = \%IdPAccountManager::Conf::global;
+
+  ## Dumping input data
+  #open TMP, ">/tmp/account_manager.in"; &IdPAccountManager::Tools::dump_var($request->{'param_in'}, 0, \*TMP); close TMP;
+  
+  ## Clean input vars
+  foreach my $key (keys %{$request->{'param_in'}}) {
+      #&IdPAccountManager::Tools::do_log('trace', "PARAM_ENTREE: %s=%s", $key, $request->{'param_in'}{$key});      
+    
+    ## Removing all ^M (0D)
+    $request->{'param_in'}{$key} =~ s/\r//g;
+    
+    $request->{'param_in'}{$key} =~ s/\s+$//; ## Remove trailing spaces
+    $request->{'param_in'}{$key} =~ s/^\s+//; ## Remove leading spaces
+    #if ($request->{'param_in'}{$key} =~ /\0/) {
+    #  my @valeurs = split /\0/, $request->{'param_in'}{$key};
+    #  $request->{'param_in'}{$key} = $valeurs[0]; ## Only keep first value of multi-valued parameters
+    #}
+
+    ## If action_xx param is set, then action=xx
+    ## Usefull to have sementicless values in submit forms
+    if ($key =~ /^action_(\w+)$/) {
+      #&IdPAccountManager::Tools::do_log('trace', "ACTION $key");
+      $request->{'param_in'}{'action'} = $1;
+    }
+  }
+  
+  ## Check the requested action
+  if ($request->{'param_in'}{'action'} ) {
+    $request->{'action'} = $request->{'param_in'}{'action'};
+  }else {
+    ## Default action
+    &IdPAccountManager::Tools::do_log('info', "Default action");
+    $request->{'action'} = 'help';
+  }
+        
+  bless $request, $pkg;
+
+  return $request;
+}
+
+## Execute a web request
+sub execute {
+  my $self = shift;
+  &IdPAccountManager::Tools::do_log('debug', "");  
+
+  my $status;
+
+  ## Check input parameters format
+  foreach my $key (keys %{$request->{'param_in'}}) {
+      if ($self->{'param_in'}{$key} !~ /^\s*$/ && 
+	  defined $format{$key} &&
+	  ! ref($format{$key})) { 
+	  unless ($self->{'param_in'}{$key} =~ /^$format{$key}$/) {
+	      push @{$self->{'param_out'}{'erreurs'}}, "format_$key";
+	      &IdPAccountManager::Tools::do_log('error', "Incorrect parameter format : $key");
+	      return undef;
+	  }
+      }
+  }
+  
+  do {
+    ## Actions can be chained
+    $self->{'action'} = $self->{'next_action'} if ($self->{'next_action'});
+    delete $self->{'next_action'}; ## Prevent loops 
+
+    if (defined $actions{$self->{'action'}}) { 
+				
+	  ## Execute the target subroutine named req_actionName
+	  my $sub = 'req_'.$self->{'action'};
+      $status = &{$sub}($self);
+
+     }else {
+       ## Inknown action
+       push @{$self->{'param_out'}{'erreurs'}}, "unknown_action";
+       &IdPAccountManager::Tools::do_log('error', "Unknown action '%s'", $self->{'action'});
+
+     }
+
+  } while ($self->{'next_action'});
+
+  #return undef if (!defined $status);
+  
+  return 1;
+}
+
+
+## Return HTML content
+sub respond {
+  my $self = shift;
+  &IdPAccountManager::Tools::do_log('debug', "");
+  
+  ## Dump output data
+  #open TMP, ">/tmp/account_registry.out"; &IdPAccountManager::Tools::dump_var($self->{'param_out'}, 0, \*TMP); close TMP;
+
+  ## Automatic pass object entries to the output hash
+  foreach my $key (keys %{$self}) {
+	    #&IdPAccountManager::Tools::do_log('trace', "Passing $key");
+      $self->{'param_out'}{$key} ||= $self->{$key} unless ($key eq 'param_out');
+  }
+
+  ## An action may redirect to an external URL
+  if ($self->{'url_redirection'}) {
+	    #&IdPAccountManager::Tools::do_log('trace', "URL Redirect : $self->{'url_redirection'}");
+    printf "Location: %s\n\n", $self->{'url_redirection'};
+
+  }else {
+    #$self->{'param_out'}{'cookie'} = CGI::Cookie->new(-name=>'as_user',-value=>$self->{'as_user'},-expires=>'-1M');
+
+    ## Parse template
+    my $tt2 = Template->new({
+				ENCODING => 'iso-8859-1', ## le défaut apparemment
+				FILTERS => {'encode_utf8', => [\&IdPAccountManager::Tools::encode_utf8, 0],
+					    'escape_quotes' => [\&IdPAccountManager::Tools::escape_quotes, 0]},
+                #DEBUG => 'all',
+                #DEBUG => 'caller',
+                #DEBUG => 'parser'
+            });
+    
+    my $template = 'templates/web/index.tt2.html';
+    
+    unless ($tt2->process($template, $self->{'param_out'}, \*STDOUT)) {
+      printf "Content-type: text/plain\n\n Error: %s", $tt2->error();
+      &IdPAccountManager::Tools::do_log('error', "Web parser error : %s", $tt2->error());
+    }
+  }
+  
+   ## Ignore some type of errors
+   my @erreurs_admin;
+   foreach my $id_erreur (@{$self->{'param_out'}{'erreurs'}}) {
+     unless ($id_erreur =~ /^(error_x)$/) {
+         push @erreurs_admin, $id_erreur;
+     }
+   }
+      
+   ## Mail notification of admins about the error
+   if (@erreurs_admin) {
+     &IdPAccountManager::Tools::mail_notice('template' => 'templates/mail/notification_generic_error.tt2.eml', 
+ 		 'data' => $self->{'param_out'});
+  }  
+
+}
\ No newline at end of file
diff --git a/lib/IdPAccountManager/Tools.pm b/lib/IdPAccountManager/Tools.pm
index 620d2d3..98b1a09 100644
--- a/lib/IdPAccountManager/Tools.pm
+++ b/lib/IdPAccountManager/Tools.pm
@@ -135,6 +135,70 @@ sub do_log {
     return 1;
 }
 
+## Send a mail notice
+## Default is to send email to the manager admins, unless other recipients are specified
+## mail_notice(IN)
+## IN is a HASH with expected entries :
+##   template : mail template file
+##   data : data used by the TT2 parser
+sub mail_notice {
+  my %in = @_;
+  my $tt2_file = $in{'template'};
+  my $mail_data = $in{'data'};
+
+  $mail_data->{'conf'} ||= \%IdPAccountManager::Conf::global;
+
+  my $notice_email = $in{'to'} || $IdPAccountManager::Conf::global{'admin_email'};
+  $mail_data->{'to'} = $notice_email;
+  
+  ## Protection to prevent notifications during test dev phases
+  ## Notify only adresses @renater.fr
+  if ($IdPAccountManager::Conf::global{'no_mail_outside'}) {
+	foreach my $email (split /,/, $notice_email) {
+		unless ($email =~ /\@(cru|renater)\.fr$/) {
+			&do_log('error',"Notification to an external address skipped");
+			return undef;
+		}
+	}
+  }
+
+  &do_log('trace', '(template=%s, to=%s)', $in{'template'}, $mail_data->{'to'});
+
+  open SENDMAIL, "|/usr/sbin/sendmail -f ".$IdPAccountManager::Conf::global{'notice_from'}." $notice_email";
+
+  my $tt2 = Template->new(FILTERS => {qencode => [\&qencode, 0]});
+  unless ($tt2->process($tt2_file, $mail_data, \*SENDMAIL)) {
+      &do_log('error', "Erreur TT2 : %s", $tt2->error());
+  }
+  close SENDMAIL;
+}
+
+sub qencode {
+    my $string = shift;
+    # We are not able to determine the name of header field, so assume
+    # longest (maybe) one.    
+    return MIME::EncWords::encode_mimewords(Encode::decode('utf8', $string),
+					    Encoding=>'A',
+					    Charset=> 'utf8',
+					    Field=>"subject");
+}
+
+## usefull to pass parameters to TT2
+sub encode_utf8 ($) {
+	my $string = shift||'';
+	
+	return Encode::encode('utf8', $string);
+}
+
+## usefull to pass parameters to TT2
+sub escape_quotes {
+	my $string = shift;
+	
+	$string =~ s/\'/\\\'/g;
+	
+	return $string;
+}
+
 1; # Magic true value required at end of module
 __END__
 
diff --git a/resources/geant_logo_rgb_300dpi.jpg b/resources/geant_logo_rgb_300dpi.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..820b7dee541a942c219abcbcf329b189e4433a96
GIT binary patch
literal 72279
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

literal 0
HcmV?d00001

diff --git a/templates/mail/notification_generic_error.tt2.eml b/templates/mail/notification_generic_error.tt2.eml
new file mode 100644
index 0000000..9908628
--- /dev/null
+++ b/templates/mail/notification_generic_error.tt2.eml
@@ -0,0 +1,19 @@
+From: [% conf.app_name %] <[% conf.notice_from %]>
+To: [% to %]
+Subject: [% subject %]
+Content-type: text/plain; charset=UTF-8; format=flowed
+
+You receive this notification as administrator of the eduGAIN Test Account Manager
+An error occured during test account processing.
+
+[% IF error_type == 'skipping_provider_metadata_issue' %]
+Le fichier de méta-données pour le provider [% entityid %] a un format incorrect ou n'a pas pu être téléchargé.
+
+L'URL des méta-données : [% provider.get('metadataurl') %]
+
+Check logs for more details
+[% ELSE %]
+Error: [% error_type %]
+
+Check logs for more details
+[% END %]
diff --git a/templates/web/content.tt2.html b/templates/web/content.tt2.html
new file mode 100644
index 0000000..16963a7
--- /dev/null
+++ b/templates/web/content.tt2.html
@@ -0,0 +1,13 @@
+
+
+[% IF action == 'select_sp' %]
+ [% TRY %]
+  [% PROCESS 'templates/select_sp.tt2.html' %]
+ [% CATCH %]
+  An error occured
+ [% END %]
+
+[% ELSE %]
+Error: unknown action
+
+[% END %]
diff --git a/templates/web/index.tt2.html b/templates/web/index.tt2.html
new file mode 100644
index 0000000..84f8a43
--- /dev/null
+++ b/templates/web/index.tt2.html
@@ -0,0 +1,153 @@
+Content-Type: text/html
+[% IF cookie %]Set-Cookie: [% cookie %][% END %]
+
+<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x
+html1/DTD/xhtml1-transitional.dtd">
+<html xml:lang="[% iso639 = locale.match('^(.)(.)'); iso639.0; iso639.1 %]" xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+
+<link type="text/css" href="/jquery/jquery-ui-1.8.16/css/smoothness/jquery-ui-1.8.16.custom.css" rel="Stylesheet" />	
+<link rel="stylesheet" media="screen" type="text/css" href="/css/renater.css" />
+<link rel="icon" type="image/png" href="/images/favicon.png" />
+
+<script type="text/javascript" src="/jquery/jquery-1.7.min.js"></script>
+<script type="text/javascript" src="/jquery/jquery-ui-1.8.16.custom.min.js"></script>
+
+<SCRIPT TYPE="text/javascript"> 
+<!--
+
+  // To confirm on a link (A HREF)
+  function request_confirm_link(my_url, my_message) {
+    question = confirm(my_message);
+    if (question !="0") {
+         top.location = my_url;
+    }
+  }
+
+function showhide(div){
+    var oDiv = document.getElementById(div);
+    if(oDiv.style.display == "none"){
+        oDiv.style.display = "block";
+    }else{
+        oDiv.style.display = "none";
+    }
+}
+
+function hide(div) {
+    var oDiv = document.getElementById(div);
+    oDiv.style.display = "none";
+}
+
+//-->      
+</SCRIPT>
+
+<STYLE type="text/css"><!--
+
+.login {float: left}
+.menu {float: right}
+.footer {text-align: center}
+.prod {background-color: #028A34}
+h1 {text-align: center}
+li,dd {margin-left:10px;}
+li.parametre {margin-bottom: 15px;}
+dd.parametre {margin-bottom: 15px;}
+div.important{border-style:solid;border-color:black;border-width:1px;background-color:#F5DEB3;padding:5px;}
+.mandatory{color:#e00853;font-style:italic;font-weight:bold;margin:0 3px}
+.notice{border:2px solid #05a;padding:5px 5px 5px 5px;margin:20px;}
+--></STYLE>
+<title> [% PROCESS 'templates/web/title.tt2.html' %] </title>
+
+</head>
+
+<body>
+
+<div id="wrapper">
+  <div id="header">
+	<div id="bandeau">
+		<div class="logo">
+			<img alt="GEANT logo" width="150" src="/resources/geant_logo_rgb_300dpi.jpg"/>
+		</div>
+		<div class="connection">
+	</div>
+
+	<div class="title">
+		[% PROCESS 'templates/web/title.tt2.html' %]        
+	</div>
+
+  </div>
+
+
+  <div id="content">
+
+[% IF erreurs %]
+<div class="ui-widget">
+ [% FOREACH err IN erreurs %]
+
+<p class="ui-state-error ui-corner-all" style="margin-top: 20px; padding: 0 .7em;"><span class="ui-icon ui-icon-info" style="float: left; margin-right: .3em;"></span>
+  [% IF lang == 'en' %]Error: [% ELSE %]Erreur : [% END %]
+
+  [% IF err == 'unknown_action' %]
+   [% IF lang == 'en' %]Unknown action[% ELSE %]action non supportée.[% END %]
+
+  [% ELSIF err == 'internal' %]
+   [% IF lang == 'en' %]internal error; administrators of the federation registry have been notified.[% ELSE %]erreur interne ; les administrateurs du guichet de la fédération ont été notifiés.[% END %]
+
+  [% ELSIF (matches = err.match('missing_(\w+)')) %]
+   [% IF lang == 'en' %]missing parameter '[% matches.0 %]'[% ELSE %]paramètre '[% matches.0 %]' manquant.[% END %]
+
+  [% ELSE %]
+   [% err %]
+
+  [% END %] <!-- autorisation -->
+</p>
+<br/>
+ [% END %] <!-- FOREACH -->
+</div>
+[% ELSE %]
+
+
+[% IF notifications %]
+<div class="ui-widget">
+ [% FOREACH notif IN notifications %]
+<p class="ui-state-highlight ui-corner-all" style="border: 2px solid #10427a; background: #DFF1EE;padding: 0.7em;"><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>
+  [% IF lang == 'en' %]Notice: [% ELSE %]Notification : [% END %]
+
+  [% IF notif == 'done' %]
+
+  [% IF lang == 'en' %]Operation has been performed[% ELSE %]L'opération a été effectuée;[%END%]
+
+  [% ELSE %]
+
+   [% notif %]<br/>
+
+  [% END %]
+
+ [% END %] <!-- FOREACH -->
+</b></div>
+[% END %] <!-- notifications -->
+
+[% PROCESS 'templates/web/content.tt2.html' %]
+
+[% END %] <!-- IF erreurs -->
+
+<p>
+
+[% IF dump %]
+DUMP :<br>
+
+ [% USE Dumper %]
+ [% Dumper.dump_html(dump) %]
+</p>
+[% END %]
+
+		<div>
+	<hr>
+
+<div align="middle">Test Account Manager [% conf.version %]</div>
+		</div>
+	</div>
+</div>
+</body>
+</html>
diff --git a/templates/web/title.tt2.html b/templates/web/title.tt2.html
new file mode 100644
index 0000000..80302a0
--- /dev/null
+++ b/templates/web/title.tt2.html
@@ -0,0 +1,6 @@
+[% conf.app_name %] - 
+
+  [% IF actions.$action %]
+    [% FILTER encode_utf8 %][% actions.$action.title %][% END %]
+  [% ELSE %]
+  [% END %]
-- 
GitLab