File indexing completed on 2024-12-22 05:36:28

0001 <?php
0002 /**
0003  * Zend Framework
0004  *
0005  * LICENSE
0006  *
0007  * This source file is subject to the new BSD license that is bundled
0008  * with this package in the file LICENSE.txt.
0009  * It is also available through the world-wide-web at this URL:
0010  * http://framework.zend.com/license/new-bsd
0011  * If you did not receive a copy of the license and are unable to
0012  * obtain it through the world-wide-web, please send an email
0013  * to license@zend.com so we can send you a copy immediately.
0014  *
0015  * @category   Zend
0016  * @package    Zend_Auth
0017  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
0018  * @license    http://framework.zend.com/license/new-bsd     New BSD License
0019  * @version    $Id$
0020  */
0021 
0022 
0023 /**
0024  * @category   Zend
0025  * @package    Zend_Auth
0026  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
0027  * @license    http://framework.zend.com/license/new-bsd     New BSD License
0028  */
0029 class Zend_Auth_Result
0030 {
0031     /**
0032      * General Failure
0033      */
0034     const FAILURE                        =  0;
0035 
0036     /**
0037      * Failure due to identity not being found.
0038      */
0039     const FAILURE_IDENTITY_NOT_FOUND     = -1;
0040 
0041     /**
0042      * Failure due to identity being ambiguous.
0043      */
0044     const FAILURE_IDENTITY_AMBIGUOUS     = -2;
0045 
0046     /**
0047      * Failure due to invalid credential being supplied.
0048      */
0049     const FAILURE_CREDENTIAL_INVALID     = -3;
0050 
0051     /**
0052      * Failure due to uncategorized reasons.
0053      */
0054     const FAILURE_UNCATEGORIZED          = -4;
0055 
0056     /**
0057      * Authentication success.
0058      */
0059     const SUCCESS                        =  1;
0060 
0061     /**
0062      * Authentication result code
0063      *
0064      * @var int
0065      */
0066     protected $_code;
0067 
0068     /**
0069      * The identity used in the authentication attempt
0070      *
0071      * @var mixed
0072      */
0073     protected $_identity;
0074 
0075     /**
0076      * An array of string reasons why the authentication attempt was unsuccessful
0077      *
0078      * If authentication was successful, this should be an empty array.
0079      *
0080      * @var array
0081      */
0082     protected $_messages;
0083 
0084     /**
0085      * Sets the result code, identity, and failure messages
0086      *
0087      * @param int   $code
0088      * @param mixed $identity
0089      * @param array $messages
0090      */
0091     public function __construct($code, $identity, array $messages = array())
0092     {
0093         $code = (int) $code;
0094 
0095         if ($code < self::FAILURE_UNCATEGORIZED) {
0096             $code = self::FAILURE;
0097         } elseif ($code > self::SUCCESS ) {
0098             $code = 1;
0099         }
0100 
0101         $this->_code     = $code;
0102         $this->_identity = $identity;
0103         $this->_messages = $messages;
0104     }
0105 
0106     /**
0107      * Returns whether the result represents a successful authentication attempt
0108      *
0109      * @return boolean
0110      */
0111     public function isValid()
0112     {
0113         return ($this->_code > 0) ? true : false;
0114     }
0115 
0116     /**
0117      * getCode() - Get the result code for this authentication attempt
0118      *
0119      * @return int
0120      */
0121     public function getCode()
0122     {
0123         return $this->_code;
0124     }
0125 
0126     /**
0127      * Returns the identity used in the authentication attempt
0128      *
0129      * @return mixed
0130      */
0131     public function getIdentity()
0132     {
0133         return $this->_identity;
0134     }
0135 
0136     /**
0137      * Returns an array of string reasons why the authentication attempt was unsuccessful
0138      *
0139      * If authentication was successful, this method returns an empty array.
0140      *
0141      * @return array
0142      */
0143     public function getMessages()
0144     {
0145         return $this->_messages;
0146     }
0147 }