]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-file.php
Merge branch 'master' into testing
[quix0rs-gnu-social.git] / plugins / CasAuthentication / extlib / CAS / PGTStorage / pgt-file.php
index d48a60d670af1e8b4ce1206763806330fc891903..983e557c57e5587ae166b8464b78c695e5a13e5d 100644 (file)
-<?php
-
-/**
- * @file CAS/PGTStorage/pgt-file.php
- * Basic class for PGT file storage
- */
-
-/**
- * @class PGTStorageFile
- * The PGTStorageFile class is a class for PGT file storage. An instance of 
- * this class is returned by CASClient::SetPGTStorageFile().
- *
- * @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
- *
- * @ingroup internalPGTStorageFile
- */
-
-class PGTStorageFile extends PGTStorage
-{
-  /** 
-   * @addtogroup internalPGTStorageFile 
-   * @{ 
-   */
-
-  /**
-   * a string telling where PGT's should be stored on the filesystem. Written by
-   * PGTStorageFile::PGTStorageFile(), read by getPath().
-   *
-   * @private
-   */
-  var $_path;
-
-  /**
-   * This method returns the name of the directory where PGT's should be stored 
-   * on the filesystem.
-   *
-   * @return the name of a directory (with leading and trailing '/')
-   *
-   * @private
-   */
-  function getPath()
-    {
-      return $this->_path;
-    }
-
-  /**
-   * a string telling the format to use to store PGT's (plain or xml). Written by
-   * PGTStorageFile::PGTStorageFile(), read by getFormat().
-   *
-   * @private
-   */
-  var $_format;
-
-  /**
-   * This method returns the format to use when storing PGT's on the filesystem.
-   *
-   * @return a string corresponding to the format used (plain or xml).
-   *
-   * @private
-   */
-  function getFormat()
-    {
-      return $this->_format;
-    }
-
-  // ########################################################################
-  //  DEBUGGING
-  // ########################################################################
-  
-  /**
-   * This method returns an informational string giving the type of storage
-   * used by the object (used for debugging purposes).
-   *
-   * @return an informational string.
-   * @public
-   */
-  function getStorageType()
-    {
-      return "file";
-    }
-
-  /**
-   * This method returns an informational string giving informations on the
-   * parameters of the storage.(used for debugging purposes).
-   *
-   * @return an informational string.
-   * @public
-   */
-  function getStorageInfo()
-    {
-      return 'path=`'.$this->getPath().'\', format=`'.$this->getFormat().'\'';
-    }
-
-  // ########################################################################
-  //  CONSTRUCTOR
-  // ########################################################################
-  
-  /**
-   * The class constructor, called by CASClient::SetPGTStorageFile().
-   *
-   * @param $cas_parent the CASClient instance that creates the object.
-   * @param $format the format used to store the PGT's (`plain' and `xml' allowed).
-   * @param $path the path where the PGT's should be stored
-   *
-   * @public
-   */
-  function PGTStorageFile($cas_parent,$format,$path)
-    {
-      phpCAS::traceBegin();
-      // call the ancestor's constructor
-      $this->PGTStorage($cas_parent);
-
-      if (empty($format) ) $format = CAS_PGT_STORAGE_FILE_DEFAULT_FORMAT;
-      if (empty($path) ) $path = CAS_PGT_STORAGE_FILE_DEFAULT_PATH;
-
-      // check that the path is an absolute path
-      if (getenv("OS")=="Windows_NT"){
-       
-        if (!preg_match('`^[a-zA-Z]:`', $path)) {
-               phpCAS::error('an absolute path is needed for PGT storage to file');
-       }
-       
-      }
-      else
-      {
-      
-       if ( $path[0] != '/' ) {
-                       phpCAS::error('an absolute path is needed for PGT storage to file');
-       }
-
-       // store the path (with a leading and trailing '/')      
-       $path = preg_replace('|[/]*$|','/',$path);
-       $path = preg_replace('|^[/]*|','/',$path);
-      }
-      
-      $this->_path = $path;
-      // check the format and store it
-      switch ($format) {
-      case CAS_PGT_STORAGE_FILE_FORMAT_PLAIN:
-      case CAS_PGT_STORAGE_FILE_FORMAT_XML:
-       $this->_format = $format;
-       break;
-      default:
-       phpCAS::error('unknown PGT file storage format (`'.CAS_PGT_STORAGE_FILE_FORMAT_PLAIN.'\' and `'.CAS_PGT_STORAGE_FILE_FORMAT_XML.'\' allowed)');
-      }
-      phpCAS::traceEnd();      
-    }
-
-  // ########################################################################
-  //  INITIALIZATION
-  // ########################################################################
-  
-  /**
-   * This method is used to initialize the storage. Halts on error.
-   *
-   * @public
-   */
-  function init()
-    {
-      phpCAS::traceBegin();
-      // if the storage has already been initialized, return immediatly
-      if ( $this->isInitialized() )
-       return;
-      // call the ancestor's method (mark as initialized)
-      parent::init();
-      phpCAS::traceEnd();      
-    }
-
-  // ########################################################################
-  //  PGT I/O
-  // ########################################################################
-
-  /**
-   * This method returns the filename corresponding to a PGT Iou.
-   *
-   * @param $pgt_iou the PGT iou.
-   *
-   * @return a filename
-   * @private
-   */
-  function getPGTIouFilename($pgt_iou)
-    {
-      phpCAS::traceBegin();
-      $filename = $this->getPath().$pgt_iou.'.'.$this->getFormat();
-      phpCAS::traceEnd($filename);
-      return $filename;
-    }
-  
-  /**
-   * This method stores a PGT and its corresponding PGT Iou into a file. Echoes a
-   * warning on error.
-   *
-   * @param $pgt the PGT
-   * @param $pgt_iou the PGT iou
-   *
-   * @public
-   */
-  function write($pgt,$pgt_iou)
-    {
-      phpCAS::traceBegin();
-      $fname = $this->getPGTIouFilename($pgt_iou);
-      if ( $f=fopen($fname,"w") ) {
-       if ( fputs($f,$pgt) === FALSE ) {
-         phpCAS::error('could not write PGT to `'.$fname.'\'');
-       }
-       fclose($f);
-      } else {
-       phpCAS::error('could not open `'.$fname.'\'');
-      }
-      phpCAS::traceEnd();      
-    }
-
-  /**
-   * This method reads a PGT corresponding to a PGT Iou and deletes the 
-   * corresponding file.
-   *
-   * @param $pgt_iou the PGT iou
-   *
-   * @return the corresponding PGT, or FALSE on error
-   *
-   * @public
-   */
-  function read($pgt_iou)
-    {
-      phpCAS::traceBegin();
-      $pgt = FALSE;
-      $fname = $this->getPGTIouFilename($pgt_iou);
-      if ( !($f=fopen($fname,"r")) ) {
-       phpCAS::trace('could not open `'.$fname.'\'');
-      } else {
-       if ( ($pgt=fgets($f)) === FALSE ) {
-         phpCAS::trace('could not read PGT from `'.$fname.'\'');
-       } 
-       fclose($f);
-      }
-
-      // delete the PGT file
-      @unlink($fname);
-
-      phpCAS::traceEnd($pgt);
-      return $pgt;
-    }
-  
-  /** @} */
-  
-}
-
-  
+<?php\r
+/*\r
+ * Copyright © 2003-2010, The ESUP-Portail consortium & the JA-SIG Collaborative.\r
+ * All rights reserved.\r
+ * \r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions are met:\r
+ * \r
+ *     * Redistributions of source code must retain the above copyright notice,\r
+ *       this list of conditions and the following disclaimer.\r
+ *     * Redistributions in binary form must reproduce the above copyright notice,\r
+ *       this list of conditions and the following disclaimer in the documentation\r
+ *       and/or other materials provided with the distribution.\r
+ *     * Neither the name of the ESUP-Portail consortium & the JA-SIG\r
+ *       Collaborative nor the names of its contributors may be used to endorse or\r
+ *       promote products derived from this software without specific prior\r
+ *       written permission.\r
+\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND\r
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\r
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\r
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+/**\r
+ * @file CAS/PGTStorage/pgt-file.php\r
+ * Basic class for PGT file storage\r
+ */\r
+\r
+/**\r
+ * @class PGTStorageFile\r
+ * The PGTStorageFile class is a class for PGT file storage. An instance of \r
+ * this class is returned by CASClient::SetPGTStorageFile().\r
+ *\r
+ * @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>\r
+ *\r
+ * @ingroup internalPGTStorageFile\r
+ */\r
+\r
+class PGTStorageFile extends PGTStorage\r
+{\r
+  /** \r
+   * @addtogroup internalPGTStorageFile \r
+   * @{ \r
+   */\r
+\r
+  /**\r
+   * a string telling where PGT's should be stored on the filesystem. Written by\r
+   * PGTStorageFile::PGTStorageFile(), read by getPath().\r
+   *\r
+   * @private\r
+   */\r
+  var $_path;\r
+\r
+  /**\r
+   * This method returns the name of the directory where PGT's should be stored \r
+   * on the filesystem.\r
+   *\r
+   * @return the name of a directory (with leading and trailing '/')\r
+   *\r
+   * @private\r
+   */\r
+  function getPath()\r
+    {\r
+      return $this->_path;\r
+    }\r
+\r
+  /**\r
+   * a string telling the format to use to store PGT's (plain or xml). Written by\r
+   * PGTStorageFile::PGTStorageFile(), read by getFormat().\r
+   *\r
+   * @private\r
+   */\r
+  var $_format;\r
+\r
+  /**\r
+   * This method returns the format to use when storing PGT's on the filesystem.\r
+   *\r
+   * @return a string corresponding to the format used (plain or xml).\r
+   *\r
+   * @private\r
+   */\r
+  function getFormat()\r
+    {\r
+      return $this->_format;\r
+    }\r
+\r
+  // ########################################################################\r
+  //  DEBUGGING\r
+  // ########################################################################\r
+  \r
+  /**\r
+   * This method returns an informational string giving the type of storage\r
+   * used by the object (used for debugging purposes).\r
+   *\r
+   * @return an informational string.\r
+   * @public\r
+   */\r
+  function getStorageType()\r
+    {\r
+      return "file";\r
+    }\r
+\r
+  /**\r
+   * This method returns an informational string giving informations on the\r
+   * parameters of the storage.(used for debugging purposes).\r
+   *\r
+   * @return an informational string.\r
+   * @public\r
+   */\r
+  function getStorageInfo()\r
+    {\r
+      return 'path=`'.$this->getPath().'\', format=`'.$this->getFormat().'\'';\r
+    }\r
+\r
+  // ########################################################################\r
+  //  CONSTRUCTOR\r
+  // ########################################################################\r
+  \r
+  /**\r
+   * The class constructor, called by CASClient::SetPGTStorageFile().\r
+   *\r
+   * @param $cas_parent the CASClient instance that creates the object.\r
+   * @param $format the format used to store the PGT's (`plain' and `xml' allowed).\r
+   * @param $path the path where the PGT's should be stored\r
+   *\r
+   * @public\r
+   */\r
+  function PGTStorageFile($cas_parent,$format,$path)\r
+    {\r
+      phpCAS::traceBegin();\r
+      // call the ancestor's constructor\r
+      $this->PGTStorage($cas_parent);\r
+\r
+      if (empty($format) ) $format = CAS_PGT_STORAGE_FILE_DEFAULT_FORMAT;\r
+      if (empty($path) ) $path = CAS_PGT_STORAGE_FILE_DEFAULT_PATH;\r
+\r
+      // check that the path is an absolute path\r
+      if (getenv("OS")=="Windows_NT"){\r
+       \r
+        if (!preg_match('`^[a-zA-Z]:`', $path)) {\r
+               phpCAS::error('an absolute path is needed for PGT storage to file');\r
+       }\r
+       \r
+      }\r
+      else\r
+      {\r
+      \r
+       if ( $path[0] != '/' ) {\r
+                       phpCAS::error('an absolute path is needed for PGT storage to file');\r
+       }\r
+\r
+       // store the path (with a leading and trailing '/')      \r
+       $path = preg_replace('|[/]*$|','/',$path);\r
+       $path = preg_replace('|^[/]*|','/',$path);\r
+      }\r
+      \r
+      $this->_path = $path;\r
+      // check the format and store it\r
+      switch ($format) {\r
+      case CAS_PGT_STORAGE_FILE_FORMAT_PLAIN:\r
+      case CAS_PGT_STORAGE_FILE_FORMAT_XML:\r
+       $this->_format = $format;\r
+       break;\r
+      default:\r
+       phpCAS::error('unknown PGT file storage format (`'.CAS_PGT_STORAGE_FILE_FORMAT_PLAIN.'\' and `'.CAS_PGT_STORAGE_FILE_FORMAT_XML.'\' allowed)');\r
+      }\r
+      phpCAS::traceEnd();      \r
+    }\r
+\r
+  // ########################################################################\r
+  //  INITIALIZATION\r
+  // ########################################################################\r
+  \r
+  /**\r
+   * This method is used to initialize the storage. Halts on error.\r
+   *\r
+   * @public\r
+   */\r
+  function init()\r
+    {\r
+      phpCAS::traceBegin();\r
+      // if the storage has already been initialized, return immediatly\r
+      if ( $this->isInitialized() )\r
+       return;\r
+      // call the ancestor's method (mark as initialized)\r
+      parent::init();\r
+      phpCAS::traceEnd();      \r
+    }\r
+\r
+  // ########################################################################\r
+  //  PGT I/O\r
+  // ########################################################################\r
+\r
+  /**\r
+   * This method returns the filename corresponding to a PGT Iou.\r
+   *\r
+   * @param $pgt_iou the PGT iou.\r
+   *\r
+   * @return a filename\r
+   * @private\r
+   */\r
+  function getPGTIouFilename($pgt_iou)\r
+    {\r
+      phpCAS::traceBegin();\r
+      $filename = $this->getPath().$pgt_iou.'.'.$this->getFormat();\r
+      phpCAS::traceEnd($filename);\r
+      return $filename;\r
+    }\r
+  \r
+  /**\r
+   * This method stores a PGT and its corresponding PGT Iou into a file. Echoes a\r
+   * warning on error.\r
+   *\r
+   * @param $pgt the PGT\r
+   * @param $pgt_iou the PGT iou\r
+   *\r
+   * @public\r
+   */\r
+  function write($pgt,$pgt_iou)\r
+    {\r
+      phpCAS::traceBegin();\r
+      $fname = $this->getPGTIouFilename($pgt_iou);\r
+      if ( $f=fopen($fname,"w") ) {\r
+       if ( fputs($f,$pgt) === FALSE ) {\r
+         phpCAS::error('could not write PGT to `'.$fname.'\'');\r
+       }\r
+       fclose($f);\r
+      } else {\r
+       phpCAS::error('could not open `'.$fname.'\'');\r
+      }\r
+      phpCAS::traceEnd();      \r
+    }\r
+\r
+  /**\r
+   * This method reads a PGT corresponding to a PGT Iou and deletes the \r
+   * corresponding file.\r
+   *\r
+   * @param $pgt_iou the PGT iou\r
+   *\r
+   * @return the corresponding PGT, or FALSE on error\r
+   *\r
+   * @public\r
+   */\r
+  function read($pgt_iou)\r
+    {\r
+      phpCAS::traceBegin();\r
+      $pgt = FALSE;\r
+      $fname = $this->getPGTIouFilename($pgt_iou);\r
+      if ( !($f=fopen($fname,"r")) ) {\r
+       phpCAS::trace('could not open `'.$fname.'\'');\r
+      } else {\r
+       if ( ($pgt=fgets($f)) === FALSE ) {\r
+         phpCAS::trace('could not read PGT from `'.$fname.'\'');\r
+       } \r
+       fclose($f);\r
+      }\r
+\r
+      // delete the PGT file\r
+      @unlink($fname);\r
+\r
+      phpCAS::traceEnd($pgt);\r
+      return $pgt;\r
+    }\r
+  \r
+  /** @} */\r
+  \r
+}\r
+\r
+  \r
 ?>
\ No newline at end of file