66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| 
 | |
| namespace Sabre\DAV\Auth\Backend;
 | |
| 
 | |
| /**
 | |
|  * This is an authentication backend that uses a file to manage passwords.
 | |
|  *
 | |
|  * The backend file must conform to Apache's htdigest format
 | |
|  *
 | |
|  * @copyright Copyright (C) 2007-2015 fruux GmbH (https://fruux.com/).
 | |
|  * @author Evert Pot (http://evertpot.com/)
 | |
|  * @license http://sabre.io/license/ Modified BSD License
 | |
|  */
 | |
| class PDO extends AbstractDigest {
 | |
| 
 | |
|     /**
 | |
|      * Reference to PDO connection
 | |
|      *
 | |
|      * @var PDO
 | |
|      */
 | |
|     protected $pdo;
 | |
| 
 | |
|     /**
 | |
|      * PDO table name we'll be using
 | |
|      *
 | |
|      * @var string
 | |
|      */
 | |
|     protected $tableName;
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * Creates the backend object.
 | |
|      *
 | |
|      * If the filename argument is passed in, it will parse out the specified file fist.
 | |
|      *
 | |
|      * @param PDO $pdo
 | |
|      * @param string $tableName The PDO table name to use
 | |
|      */
 | |
|     public function __construct(\PDO $pdo, $tableName = 'users') {
 | |
| 
 | |
|         $this->pdo = $pdo;
 | |
|         $this->tableName = $tableName;
 | |
| 
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Returns the digest hash for a user.
 | |
|      *
 | |
|      * @param string $realm
 | |
|      * @param string $username
 | |
|      * @return string|null
 | |
|      */
 | |
|     public function getDigestHash($realm,$username) {
 | |
| 
 | |
|         $stmt = $this->pdo->prepare('SELECT username, digesta1 FROM '.$this->tableName.' WHERE username = ?');
 | |
|         $stmt->execute(array($username));
 | |
|         $result = $stmt->fetchAll();
 | |
| 
 | |
|         if (!count($result)) return;
 | |
| 
 | |
|         return $result[0]['digesta1'];
 | |
| 
 | |
|     }
 | |
| 
 | |
| }
 |