aaf377f08fabce4649a4a4b0221aa073cac614be
[piwik-CASLogin.git] / CAS / CAS / PGTStorage / pgt-main.php
1 <?php\r
2 /*\r
3  * Copyright © 2003-2010, The ESUP-Portail consortium & the JA-SIG Collaborative.\r
4  * All rights reserved.\r
5  * \r
6  * Redistribution and use in source and binary forms, with or without\r
7  * modification, are permitted provided that the following conditions are met:\r
8  * \r
9  *     * Redistributions of source code must retain the above copyright notice,\r
10  *       this list of conditions and the following disclaimer.\r
11  *     * Redistributions in binary form must reproduce the above copyright notice,\r
12  *       this list of conditions and the following disclaimer in the documentation\r
13  *       and/or other materials provided with the distribution.\r
14  *     * Neither the name of the ESUP-Portail consortium & the JA-SIG\r
15  *       Collaborative nor the names of its contributors may be used to endorse or\r
16  *       promote products derived from this software without specific prior\r
17  *       written permission.\r
18 \r
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND\r
20  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
21  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
22  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\r
23  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
24  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\r
26  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
29  */\r
30 /**\r
31  * @file CAS/PGTStorage/pgt-main.php\r
32  * Basic class for PGT storage\r
33  */\r
34 \r
35 /**\r
36  * @class PGTStorage\r
37  * The PGTStorage class is a generic class for PGT storage. This class should\r
38  * not be instanciated itself but inherited by specific PGT storage classes.\r
39  *\r
40  * @author   Pascal Aubry <pascal.aubry at univ-rennes1.fr>\r
41  *\r
42  * @ingroup internalPGTStorage\r
43  */\r
44 \r
45 class PGTStorage\r
46 {\r
47   /** \r
48    * @addtogroup internalPGTStorage\r
49    * @{ \r
50    */\r
51 \r
52   // ########################################################################\r
53   //  CONSTRUCTOR\r
54   // ########################################################################\r
55   \r
56   /**\r
57    * The constructor of the class, should be called only by inherited classes.\r
58    *\r
59    * @param $cas_parent the CASclient instance that creates the current object.\r
60    *\r
61    * @protected\r
62    */\r
63   function PGTStorage($cas_parent)\r
64     {\r
65       phpCAS::traceBegin();\r
66       if ( !$cas_parent->isProxy() ) {\r
67         phpCAS::error('defining PGT storage makes no sense when not using a CAS proxy'); \r
68       }\r
69       phpCAS::traceEnd();\r
70     }\r
71 \r
72   // ########################################################################\r
73   //  DEBUGGING\r
74   // ########################################################################\r
75   \r
76   /**\r
77    * This virtual method returns an informational string giving the type of storage\r
78    * used by the object (used for debugging purposes).\r
79    *\r
80    * @public\r
81    */\r
82   function getStorageType()\r
83     {\r
84       phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called'); \r
85     }\r
86 \r
87   /**\r
88    * This virtual method returns an informational string giving informations on the\r
89    * parameters of the storage.(used for debugging purposes).\r
90    *\r
91    * @public\r
92    */\r
93   function getStorageInfo()\r
94     {\r
95       phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called'); \r
96     }\r
97 \r
98   // ########################################################################\r
99   //  ERROR HANDLING\r
100   // ########################################################################\r
101   \r
102   /**\r
103    * string used to store an error message. Written by PGTStorage::setErrorMessage(),\r
104    * read by PGTStorage::getErrorMessage().\r
105    *\r
106    * @hideinitializer\r
107    * @private\r
108    * @deprecated not used.\r
109    */\r
110   var $_error_message=FALSE;\r
111 \r
112   /**\r
113    * This method sets en error message, which can be read later by \r
114    * PGTStorage::getErrorMessage().\r
115    *\r
116    * @param $error_message an error message\r
117    *\r
118    * @protected\r
119    * @deprecated not used.\r
120    */\r
121   function setErrorMessage($error_message)\r
122     {\r
123       $this->_error_message = $error_message;\r
124     }\r
125 \r
126   /**\r
127    * This method returns an error message set by PGTStorage::setErrorMessage().\r
128    *\r
129    * @return an error message when set by PGTStorage::setErrorMessage(), FALSE\r
130    * otherwise.\r
131    *\r
132    * @public\r
133    * @deprecated not used.\r
134    */\r
135   function getErrorMessage()\r
136     {\r
137       return $this->_error_message;\r
138     }\r
139 \r
140   // ########################################################################\r
141   //  INITIALIZATION\r
142   // ########################################################################\r
143 \r
144   /**\r
145    * a boolean telling if the storage has already been initialized. Written by \r
146    * PGTStorage::init(), read by PGTStorage::isInitialized().\r
147    *\r
148    * @hideinitializer\r
149    * @private\r
150    */\r
151   var $_initialized = FALSE;\r
152 \r
153   /**\r
154    * This method tells if the storage has already been intialized.\r
155    *\r
156    * @return a boolean\r
157    *\r
158    * @protected\r
159    */\r
160   function isInitialized()\r
161     {\r
162       return $this->_initialized;\r
163     }\r
164 \r
165   /**\r
166    * This virtual method initializes the object.\r
167    *\r
168    * @protected\r
169    */\r
170   function init()\r
171     {\r
172       $this->_initialized = TRUE;\r
173     }\r
174 \r
175   // ########################################################################\r
176   //  PGT I/O\r
177   // ########################################################################\r
178 \r
179   /**\r
180    * This virtual method stores a PGT and its corresponding PGT Iuo.\r
181    * @note Should never be called.\r
182    *\r
183    * @param $pgt the PGT\r
184    * @param $pgt_iou the PGT iou\r
185    *\r
186    * @protected\r
187    */\r
188   function write($pgt,$pgt_iou)\r
189     {\r
190       phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called'); \r
191     }\r
192 \r
193   /**\r
194    * This virtual method reads a PGT corresponding to a PGT Iou and deletes\r
195    * the corresponding storage entry.\r
196    * @note Should never be called.\r
197    *\r
198    * @param $pgt_iou the PGT iou\r
199    *\r
200    * @protected\r
201    */\r
202   function read($pgt_iou)\r
203     {\r
204       phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called'); \r
205     }\r
206 \r
207   /** @} */\r
208   \r
209\r
210 \r
211 // include specific PGT storage classes\r
212 include_once(dirname(__FILE__).'/pgt-file.php'); \r
213   \r
214 ?>