Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * @author Sebastian Sauer <info@dynpages.de>
- * @copyright Sebastian Sauer 2009/2010
- * @license library/LICENSE New BSD License
- * @package auth
- * @version 1.9
- */
- abstract class ExtZend_Auth_Abstract {
- protected $_request;
- /**
- * database table name
- * @var string
- */
- protected $_authTable = "";
- /**
- * database table userfield field name
- * @var string
- */
- protected $_userField = "";
- /**
- * database table password field name
- * @var string
- */
- protected $_passwordField = "";
- /**
- * database table password salt field name
- * @var string
- */
- protected $_passwordSaltField = "password_salt";
- /**
- * cache auth adapter object for child classes
- * @var object Zend_Auth_Adapter_DbTable
- */
- private $_authAdapter = null;
- const storageModuleAppendix = "AuthStorage";
- /**
- * login user
- */
- public function identify() {
- $request = $this->_request;
- $post = $request->getPost();
- $username = $this->_filterUsername($post['username']);
- $password = $post['password'];
- if(empty($username) || empty($password)) {
- return;
- }
- $this->_doAuth($username, $password);
- }
- abstract public function getRole();
- /**
- * @param object Zend_Controller_Request_Abstract $request
- */
- public function __construct(
- Zend_Controller_Request_Abstract $request
- ) {
- $this->_request = $request;
- $auth = Zend_Auth::getInstance();
- $module = (null === $request->getModuleName())
- ? 'default'
- : $request->getModuleName();
- $namespace = $module . self::storageModuleAppendix;
- $auth->setStorage(new Zend_Auth_Storage_Session($namespace));
- }
- /**
- * getter for auth adapter object
- *
- * @return object Zend_Auth_Adapter_DbTable
- *
- * Initialisiere Authentifizierungsadapter
- * gesaltet! bootstrapping beachten
- * Führe Authentifizierung durch
- */
- protected function _getAuthAdapter () {
- if(null === $this->_authAdapter) {
- $authAdapter = $this->_authAdapter = new Zend_Auth_Adapter_DbTable(
- Zend_Registry::get('Zend_Db'),
- $this->_authTable,
- $this->_userField,
- $this->_passwordField,
- "MD5(
- CONCAT('"
- . Zend_Registry::get('staticSalt')
- . "', password_salt, ?
- )
- )"
- );
- }
- return $this->_authAdapter;
- }
- /**
- * filters Username
- * @see Zend_Filter_Alnum
- * @param string $username
- */
- protected function _filterUsername ($username) {
- $filter = new Zend_Filter_Alnum(true);
- return $filter->filter($username);
- }
- public function logout() {
- Zend_Auth::getInstance()->clearIdentity();
- unset($_SESSION);
- // tweak the garbage collector
- $_SESSION = null;
- }
- /**
- * check if username / password combination exists in database
- * sets storage data if auth is valid
- * @return bool
- */
- protected function _doAuth($username, $password) {
- $authAdapter = $this->_getAuthAdapter();
- // Übergebe Daten an Adapter
- $authAdapter->setIdentity($username);
- $authAdapter->setCredential($password);
- $result = Zend_Auth::getInstance()->authenticate($authAdapter);
- if($result->isValid()) {
- $authData = $authAdapter->getResultRowObject();
- unset(
- $authData->{$this->_passwordField},
- $authData->{$this->_passwordSaltField}
- );
- Zend_Auth::getInstance()->getStorage()->write
- (
- $authData
- );
- }
- return $result->isValid();
- }
- }
Add Comment
Please, Sign In to add comment