[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhabricatorRepositoryVCSPassword extends PhabricatorRepositoryDAO { 4 5 protected $id; 6 protected $userPHID; 7 protected $passwordHash; 8 9 public function getConfiguration() { 10 return array( 11 self::CONFIG_COLUMN_SCHEMA => array( 12 'passwordHash' => 'text128', 13 ), 14 self::CONFIG_KEY_SCHEMA => array( 15 'key_phid' => array( 16 'columns' => array('userPHID'), 17 'unique' => true, 18 ), 19 ), 20 ) + parent::getConfiguration(); 21 } 22 23 public function setPassword( 24 PhutilOpaqueEnvelope $password, 25 PhabricatorUser $user) { 26 $hash_envelope = $this->hashPassword($password, $user); 27 return $this->setPasswordHash($hash_envelope->openEnvelope()); 28 } 29 30 public function comparePassword( 31 PhutilOpaqueEnvelope $password, 32 PhabricatorUser $user) { 33 34 return PhabricatorPasswordHasher::comparePassword( 35 $this->getPasswordHashInput($password, $user), 36 new PhutilOpaqueEnvelope($this->getPasswordHash())); 37 } 38 39 private function getPasswordHashInput( 40 PhutilOpaqueEnvelope $password, 41 PhabricatorUser $user) { 42 if ($user->getPHID() != $this->getUserPHID()) { 43 throw new Exception('User does not match password user PHID!'); 44 } 45 46 $raw_input = PhabricatorHash::digestPassword($password, $user->getPHID()); 47 return new PhutilOpaqueEnvelope($raw_input); 48 } 49 50 private function hashPassword( 51 PhutilOpaqueEnvelope $password, 52 PhabricatorUser $user) { 53 54 $input_envelope = $this->getPasswordHashInput($password, $user); 55 56 $best_hasher = PhabricatorPasswordHasher::getBestHasher(); 57 return $best_hasher->getPasswordHashForStorage($input_envelope); 58 } 59 60 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |