From 975a144e0e790e7273247d364a721feecfc9d9bb Mon Sep 17 00:00:00 2001
From: phasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Date: Wed, 7 Jul 2010 18:44:13 +0000
Subject: [PATCH] Merge branch 'browser'

git-svn-id: svn://svn.open-ils.org/ILS/trunk@16871 dcc99617-32d9-48b4-a31d-7c20da2025e4
---
 Open-ILS/examples/remoteauth.cgi | 54 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100755 Open-ILS/examples/remoteauth.cgi

diff --git a/Open-ILS/examples/remoteauth.cgi b/Open-ILS/examples/remoteauth.cgi
new file mode 100755
index 0000000000..4529b7c3b5
--- /dev/null
+++ b/Open-ILS/examples/remoteauth.cgi
@@ -0,0 +1,54 @@
+#!/usr/bin/perl
+#use strict;
+use warnings;
+
+use CGI;
+use Digest::MD5 qw(md5_hex);
+
+use OpenSRF::EX qw(:try);
+use OpenSRF::System;
+
+
+my $bootstrap = '/openils/conf/opensrf_core.xml';
+my $cgi = new CGI;
+my $u = $cgi->param('user');
+my $p = $cgi->param('passwd');
+
+print $cgi->header(-type=>'text/html', -expires=>'-1d');
+
+OpenSRF::System->bootstrap_client( config_file => $bootstrap );
+
+if (!$u || !$p) {
+	print "+INCOMPLETE";
+} else {
+	my $nametype = 'username';
+	$nametype = 'barcode' if ($u =~ /^\d+$/o);
+	my $seed = OpenSRF::AppSession
+		->create("open-ils.auth")
+		->request( 'open-ils.auth.authenticate.init', $u )
+		->gather(1);
+	if ($seed) {
+		my $response = OpenSRF::AppSession
+			->create("open-ils.auth")
+			->request( 'open-ils.auth.authenticate.complete', { $nametype => $u, password => md5_hex($seed . md5_hex($p)), type => 'temp' })
+			->gather(1);
+		if ($response->{payload}->{authtoken}) {
+			my $user = OpenSRF::AppSession
+				->create("open-ils.auth")
+				->request( "open-ils.auth.session.retrieve", $response->{payload}->{authtoken} )
+				->gather(1);
+			if (ref($user) eq 'HASH' && $user->{ilsevent} == 1001) {
+				print "+NO";
+			} else {
+				print "+VALID";
+			}
+		} else {
+			print "+NO";
+		}
+	} else {
+		print "+BACKEND_ERROR";
+	}
+
+}
+
+1;
-- 
2.11.0