[ Index ] |
PHP Cross Reference of moodle-2.8 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Zend Framework 4 * 5 * LICENSE 6 * 7 * This source file is subject to the new BSD license that is bundled 8 * with this package in the file LICENSE.txt. 9 * It is also available through the world-wide-web at this URL: 10 * http://framework.zend.com/license/new-bsd 11 * If you did not receive a copy of the license and are unable to 12 * obtain it through the world-wide-web, please send an email 13 * to [email protected] so we can send you a copy immediately. 14 * 15 * @category Zend 16 * @package Zend_Amf 17 * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) 18 * @license http://framework.zend.com/license/new-bsd New BSD License 19 * @version $Id$ 20 */ 21 22 /** @see Zend_Amf_Auth_Abstract */ 23 require_once 'Zend/Amf/Auth/Abstract.php'; 24 25 /** @see Zend_Acl */ 26 require_once 'Zend/Acl.php'; 27 28 /** @see Zend_Auth_Result */ 29 require_once 'Zend/Auth/Result.php'; 30 31 /** 32 * This class implements authentication against XML file with roles for Flex Builder. 33 * 34 * @package Zend_Amf 35 * @subpackage Adobe 36 * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) 37 * @license http://framework.zend.com/license/new-bsd New BSD License 38 */ 39 class Zend_Amf_Adobe_Auth extends Zend_Amf_Auth_Abstract 40 { 41 42 /** 43 * ACL for authorization 44 * 45 * @var Zend_Acl 46 */ 47 protected $_acl; 48 49 /** 50 * Username/password array 51 * 52 * @var array 53 */ 54 protected $_users = array(); 55 56 /** 57 * Create auth adapter 58 * 59 * @param string $rolefile File containing XML with users and roles 60 */ 61 public function __construct($rolefile) 62 { 63 $this->_acl = new Zend_Acl(); 64 $xml = simplexml_load_file($rolefile); 65 /* 66 Roles file format: 67 <roles> 68 <role id=”admin”> 69 <user name=”user1” password=”pwd”/> 70 </role> 71 <role id=”hr”> 72 <user name=”user2” password=”pwd2”/> 73 </role> 74 </roles> 75 */ 76 foreach($xml->role as $role) { 77 $this->_acl->addRole(new Zend_Acl_Role((string)$role["id"])); 78 foreach($role->user as $user) { 79 $this->_users[(string)$user["name"]] = array("password" => (string)$user["password"], 80 "role" => (string)$role["id"]); 81 } 82 } 83 } 84 85 /** 86 * Get ACL with roles from XML file 87 * 88 * @return Zend_Acl 89 */ 90 public function getAcl() 91 { 92 return $this->_acl; 93 } 94 95 /** 96 * Perform authentication 97 * 98 * @throws Zend_Auth_Adapter_Exception 99 * @return Zend_Auth_Result 100 * @see Zend_Auth_Adapter_Interface#authenticate() 101 */ 102 public function authenticate() 103 { 104 if (empty($this->_username) || 105 empty($this->_password)) { 106 /** 107 * @see Zend_Auth_Adapter_Exception 108 */ 109 require_once 'Zend/Auth/Adapter/Exception.php'; 110 throw new Zend_Auth_Adapter_Exception('Username/password should be set'); 111 } 112 113 if(!isset($this->_users[$this->_username])) { 114 return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND, 115 null, 116 array('Username not found') 117 ); 118 } 119 120 $user = $this->_users[$this->_username]; 121 if($user["password"] != $this->_password) { 122 return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, 123 null, 124 array('Authentication failed') 125 ); 126 } 127 128 $id = new stdClass(); 129 $id->role = $user["role"]; 130 $id->name = $this->_username; 131 return new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $id); 132 } 133 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:29:05 2014 | Cross-referenced by PHPXref 0.7.1 |