#!/usr/bin/perl
# $Id: sha1hash 43847 2015-09-09 11:05:21Z joostvb $
# $URL: https://svn.uvt.nl/its-id/trunk/sources/sha1hash/sha1hash $
#
# Author: Thijs Kinkhorst <thijs@uvt.nl>
# Copyright 2013 Tilburg University
# Licenced under the GNU GPL version 2 or any later version

use warnings;
use strict;

use MIME::Base64;
use Digest::SHA qw(sha1);
use CGI qw();
# use Email::Send;
# use Email::Simple;

use Email::Sender::Simple;
use Email::Simple;
use Email::Simple::Creator;

print "Content-Type: text/html\n\n";

print <<HEREDOC;
<!DOCTYPE html>
<html><head><title>SHA1 hash generator</title></head><body>

<h1>SHA1 hash generator</h1>

HEREDOC

my $query = CGI->new;

if ( ! $query->param('insturen')  ) {

	print <<HEREDOC;
<form action="./sha1hash" method="post">
<table>
<tr><td><label for="naam">Uw (gebruikers)naam:</label></td>
    <td><input type="text" name="naam" id="naam" required placeholder="uw naam"></td></tr>
<tr><td><label for="password1">Wachtwoord:</label></td>
    <td><input type="password" name="password1" id="password1" required placeholder="gewenst wachtwoord"></td></tr>
<tr><td><label for="password2">Herhaal wachtwoord:</label></td>
    <td><input type="password" name="password2" id="password2" required placeholder="bevestig gewenst wachtwoord"></td></tr>
</table>

<input type="submit" name="insturen" value="okidoki, stuur maar in">
</form>

</body></html>
HEREDOC

	exit;

}

my $error;
my $naam      = $query->param('naam');
my $password1 = $query->param('password1');
my $password2 = $query->param('password2');

if ( $naam eq "" ) {
	$error .= "Naam niet ingevuld. ";
}
if ( $password1 eq "" ) {
	$error .= "Wachtwoord niet ingevuld.";
} elsif ( $password1 ne $password2 ) {
	$error .= "Wachtwoorden komen niet overeen.";
}

if ( $error ) {
	print "<p><strong>Fout opgetreden:</strong><br />$error</p>\n";
	print "</body></html>\n";
	exit;
}

my $hash = '{SHA}' . encode_base64(sha1($password1));

my $email = Email::Simple->create(
	header => [
		From	=> 'cgi.uvt.nl <lis-unix@uvt.nl>',
		To      => 'lis-networks@uvt.nl',
		Subject => 'Nieuwe sha1 hash',
	],
	body => "Naam: " . $naam . "\n" .
		"Hash: " . $hash . "\n" .
		"IP:   " . $query->remote_addr(),
);

if ( Email::Sender::Simple->send($email) ) {
	print "<p>Wachtwoord verzonden naar NOC.<br />Bedankt voor uw medewerking.</p>";
} else {
	print "<p><strong>Fout opgetreden:</strong> Er trad een fout op bij het versturen van de e-mail.</p>";
}

print "</body></html>";
