Browse Source

Create authentication.php

First commit in a series of commits adding a new authentication class.
FusionPBX 9 years ago
parent
commit
efaaecb1a9
1 changed files with 139 additions and 0 deletions
  1. 139 0
      core/authentication/resources/classes/authentication.php

+ 139 - 0
core/authentication/resources/classes/authentication.php

@@ -0,0 +1,139 @@
+<?php
+
+/**
+ * cache class provides an abstracted cache
+ *
+ * @method string set
+ * @method string get
+ * @method string delete
+ * @method string flush
+ */
+class cache {
+
+	/**
+	 * Called when the object is created
+	 */
+	public function __construct() {
+		//place holder
+	}
+
+	/**
+	 * Called when there are no references to a particular object
+	 * unset the variables used in the class
+	 */
+	public function __destruct() {
+		foreach ($this as $key => $value) {
+			unset($this->$key);
+		}
+	}
+
+	/**
+	 * Add a specific item in the cache
+	 * @var string $key		the cache id
+	 * @var string $value	string to be cached
+	 */
+	public function set($key, $value) {
+		// connect to event socket
+			$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
+			if ($fp === false) {
+				return false;
+			}
+
+		//send a custom event
+
+		//run the memcache
+			$command = "memcache set ".$key." ".$value;
+			$result = event_socket_request($fp, 'api '.$command);
+
+		//close event socket
+			fclose($fp);
+
+		// return result
+			return $result;
+	}
+
+	/**
+	 * Get a specific item from the cache
+	 * @var string $key		cache id
+	 */
+	public function get($key) {
+		// connect to event socket
+			$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
+			if ($fp === false) {
+				return false;
+			}
+
+		//send a custom event
+
+		//run the memcache
+			$command = "memcache get ".$key;
+			$result = event_socket_request($fp, 'api '.$command);
+
+		//close event socket
+			fclose($fp);
+
+		// return result
+			return $result;
+	}
+
+	/**
+	 * Delete a specific item from the cache
+	 * @var string $key		cache id
+	 */
+	public function delete($key) {
+		// connect to event socket
+			$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
+			if ($fp === false) {
+				return false;
+			}
+
+		//send a custom event
+			$event = "sendevent CUSTOM\n";
+			$event .= "Event-Name: CUSTOM\n";
+			$event .= "Event-Subclass: fusion::memcache\n";
+			$event .= "API-Command: memcache\n";
+			$event .= "API-Command-Argument: delete ".$key."\n";
+			event_socket_request($fp, $event);
+
+		//run the memcache
+			$command = "memcache delete ".$key;
+			$result = event_socket_request($fp, 'api '.$command);
+
+		//close event socket
+			fclose($fp);
+
+		// return result
+			return $result;
+	}
+
+	/**
+	 * Delete the entire cache
+	 */
+	public function flush() {
+		// connect to event socket
+			$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
+			if ($fp === false) {
+				return false;
+			}
+
+		//send a custom event
+			$event = "sendevent CUSTOM\n";
+			$event .= "Event-Name: CUSTOM\n";
+			$event .= "Event-Subclass: fusion::memcache\n";
+			$event .= "API-Command: memcache\n";
+			$event .= "API-Command-Argument: flush\n";
+			event_socket_request($fp, $event);
+
+		//run the memcache
+			$command = "memcache flush";
+			$result = event_socket_request($fp, 'api '.$command);
+
+		//close event socket
+			fclose($fp);
+
+		// return result
+			return $result;
+	}
+}
+
+?>