diff --git a/sso/hive/expired.php b/sso/hive/expired.php
new file mode 100644
index 00000000000..58dd43be2ee
--- /dev/null
+++ b/sso/hive/expired.php
@@ -0,0 +1,47 @@
+
+
+
+
diff --git a/sso/hive/lib.php b/sso/hive/lib.php
new file mode 100755
index 00000000000..5ba3c2f4a3f
--- /dev/null
+++ b/sso/hive/lib.php
@@ -0,0 +1,68 @@
+sso = 'hive';
+ // $CFG->hiveprotocol = 'http';
+ // $CFG->hiveport = '80';
+ // $CFG->hivehost = 'turkey.harvestroad.com.au';
+ // $CFG->hivepath = '/cgi-bin/hive/hive.cgi';
+ // $CFG->hivecbid = '28';
+
+function sso_user_login($username, $password) {
+
+ global $CFG, $SESSION;
+
+ include($CFG->libdir.'/snoopy/Snoopy.class.inc');
+
+ if (empty($CFG->hivehost)) {
+ return false; // Hive config variables not configured yet
+ }
+
+/// Set up Snoopy
+
+ $snoopy = new Snoopy;
+
+ $submit_url = $CFG->hiveprotocol .'://'. $CFG->hivehost .':'. $CFG->hiveport .''. $CFG->hivepath ;
+
+ $submit_vars['HIVE_UNAME'] = $username;
+ $submit_vars['HIVE_UPASS'] = $password;
+ $submit_vars['HIVE_ENDUSER']= $username;
+ $submit_vars['HIVE_REQ'] = '2112';
+ $submit_vars['HIVE_REF'] = 'hin:hive@API Login 3';
+ $submit_vars['HIVE_RET'] = 'ORG';
+ $submit_vars['HIVE_REM'] = '';
+ $submit_vars['HIVE_PROD'] = '0';
+ $submit_vars['HIVE_USERIP'] = getremoteaddr();
+
+
+/// We use POST to call Hive with a bit more security
+ $snoopy->submit($submit_url,$submit_vars);
+
+/// If there's a bug, we may need to use GET instead
+/// foreach ($submit_vars as $name => $value) {
+/// $params[] = "$name=".urlencode($value);
+/// }
+/// $submit_url .= '?'.implode('&', $params);
+/// $snoopy->fetch($submit_url);
+
+/// Extract HIVE_SESSION from headers
+
+ foreach ($snoopy->headers as $header) {
+ if (strpos($header, 'HIVE_SESSION=') !== false) {
+ $header = explode('HIVE_SESSION=', $header);
+ if (count($header) > 1) {
+ $cookie = explode(';', $header[1]);
+ $cookie = $cookie[0];
+ $SESSION->HIVE_SESSION = $cookie;
+ $SESSION->HIVE_PASSWORD = $password;
+ return true;
+ }
+ }
+ }
+ return false; // No cookie found
+}
+
+?>
diff --git a/sso/hive/login.php b/sso/hive/login.php
new file mode 100644
index 00000000000..3d4cb11984a
--- /dev/null
+++ b/sso/hive/login.php
@@ -0,0 +1,23 @@
+username, $frm->password)) {
+
+ /// reopen Hive
+ redirect($CFG->wwwroot.'/mod/resource/type/repository/hive/openhive.php');
+ } else {
+ redirect($CFG->wwwroot.'/sso/hive/expired.php');
+ }
+
+?>
+