1<?php
2
3/**
4 * Licensed to Jasig under one or more contributor license
5 * agreements. See the NOTICE file distributed with this work for
6 * additional information regarding copyright ownership.
7 *
8 * Jasig licenses this file to you under the Apache License,
9 * Version 2.0 (the "License"); you may not use this file except in
10 * compliance with the License. You may obtain a copy of the License at:
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 *
20 * PHP Version 7
21 *
22 * @file     CAS/PGTStorage/AbstractStorage.php
23 * @category Authentication
24 * @package  PhpCAS
25 * @author   Pascal Aubry <pascal.aubry@univ-rennes1.fr>
26 * @license  http://www.apache.org/licenses/LICENSE-2.0  Apache License 2.0
27 * @link     https://wiki.jasig.org/display/CASC/phpCAS
28 */
29
30/**
31 * Basic class for PGT storage
32 * The CAS_PGTStorage_AbstractStorage class is a generic class for PGT storage.
33 * This class should not be instanciated itself but inherited by specific PGT
34 * storage classes.
35 *
36 * @class CAS_PGTStorage_AbstractStorage
37 * @category Authentication
38 * @package  PhpCAS
39 * @author   Pascal Aubry <pascal.aubry@univ-rennes1.fr>
40 * @license  http://www.apache.org/licenses/LICENSE-2.0  Apache License 2.0
41 * @link     https://wiki.jasig.org/display/CASC/phpCAS
42 *
43 * @ingroup internalPGTStorage
44 */
45
46abstract class CAS_PGTStorage_AbstractStorage
47{
48    /**
49     * @addtogroup internalPGTStorage
50     * @{
51     */
52
53    // ########################################################################
54    //  CONSTRUCTOR
55    // ########################################################################
56
57    /**
58     * The constructor of the class, should be called only by inherited classes.
59     *
60     * @param CAS_Client $cas_parent the CAS _client instance that creates the
61     * current object.
62     *
63     * @return void
64     *
65     * @protected
66     */
67    function __construct($cas_parent)
68    {
69        phpCAS::traceBegin();
70        if ( !$cas_parent->isProxy() ) {
71            phpCAS::error(
72                'defining PGT storage makes no sense when not using a CAS proxy'
73            );
74        }
75        phpCAS::traceEnd();
76    }
77
78    // ########################################################################
79    //  DEBUGGING
80    // ########################################################################
81
82    /**
83     * This virtual method returns an informational string giving the type of storage
84     * used by the object (used for debugging purposes).
85     *
86     * @return string
87     *
88     * @public
89     */
90    function getStorageType()
91    {
92        phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
93    }
94
95    /**
96     * This virtual method returns an informational string giving informations on the
97     * parameters of the storage.(used for debugging purposes).
98     *
99     * @return string
100     *
101     * @public
102     */
103    function getStorageInfo()
104    {
105        phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
106    }
107
108    // ########################################################################
109    //  ERROR HANDLING
110    // ########################################################################
111
112    /**
113     * string used to store an error message. Written by
114     * PGTStorage::setErrorMessage(), read by PGTStorage::getErrorMessage().
115     *
116     * @hideinitializer
117     * @deprecated not used.
118     */
119    var $_error_message=false;
120
121    /**
122     * This method sets en error message, which can be read later by
123     * PGTStorage::getErrorMessage().
124     *
125     * @param string $error_message an error message
126     *
127     * @return void
128     *
129     * @deprecated not used.
130     */
131    function setErrorMessage($error_message)
132    {
133        $this->_error_message = $error_message;
134    }
135
136    /**
137     * This method returns an error message set by PGTStorage::setErrorMessage().
138     *
139     * @return string an error message when set by PGTStorage::setErrorMessage(), FALSE
140     * otherwise.
141     *
142     * @deprecated not used.
143     */
144    function getErrorMessage()
145    {
146        return $this->_error_message;
147    }
148
149    // ########################################################################
150    //  INITIALIZATION
151    // ########################################################################
152
153    /**
154     * a boolean telling if the storage has already been initialized. Written by
155     * PGTStorage::init(), read by PGTStorage::isInitialized().
156     *
157     * @hideinitializer
158     */
159    var $_initialized = false;
160
161    /**
162     * This method tells if the storage has already been intialized.
163     *
164     * @return bool
165     *
166     * @protected
167     */
168    function isInitialized()
169    {
170        return $this->_initialized;
171    }
172
173    /**
174     * This virtual method initializes the object.
175     *
176     * @return void
177     */
178    function init()
179    {
180        $this->_initialized = true;
181    }
182
183    // ########################################################################
184    //  PGT I/O
185    // ########################################################################
186
187    /**
188     * This virtual method stores a PGT and its corresponding PGT Iuo.
189     *
190     * @param string $pgt     the PGT
191     * @param string $pgt_iou the PGT iou
192     *
193     * @return void
194     *
195     * @note Should never be called.
196     *
197     */
198    function write($pgt,$pgt_iou)
199    {
200        phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
201    }
202
203    /**
204     * This virtual method reads a PGT corresponding to a PGT Iou and deletes
205     * the corresponding storage entry.
206     *
207     * @param string $pgt_iou the PGT iou
208     *
209     * @return string
210     *
211     * @note Should never be called.
212     */
213    function read($pgt_iou)
214    {
215        phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
216    }
217
218    /** @} */
219
220}
221
222?>
223