Move OwnersPackage to Appliation PHIDs
Summary: Ref T2715. Test Plan: `phid.query` Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T2715 Differential Revision: https://secure.phabricator.com/D6572
This commit is contained in:
		| @@ -1342,6 +1342,7 @@ phutil_register_library_map(array( | |||||||
|     'PhabricatorOwnersEditController' => 'applications/owners/controller/PhabricatorOwnersEditController.php', |     'PhabricatorOwnersEditController' => 'applications/owners/controller/PhabricatorOwnersEditController.php', | ||||||
|     'PhabricatorOwnersListController' => 'applications/owners/controller/PhabricatorOwnersListController.php', |     'PhabricatorOwnersListController' => 'applications/owners/controller/PhabricatorOwnersListController.php', | ||||||
|     'PhabricatorOwnersOwner' => 'applications/owners/storage/PhabricatorOwnersOwner.php', |     'PhabricatorOwnersOwner' => 'applications/owners/storage/PhabricatorOwnersOwner.php', | ||||||
|  |     'PhabricatorOwnersPHIDTypePackage' => 'applications/owners/phid/PhabricatorOwnersPHIDTypePackage.php', | ||||||
|     'PhabricatorOwnersPackage' => 'applications/owners/storage/PhabricatorOwnersPackage.php', |     'PhabricatorOwnersPackage' => 'applications/owners/storage/PhabricatorOwnersPackage.php', | ||||||
|     'PhabricatorOwnersPackagePathValidator' => 'applications/repository/worker/commitchangeparser/PhabricatorOwnersPackagePathValidator.php', |     'PhabricatorOwnersPackagePathValidator' => 'applications/repository/worker/commitchangeparser/PhabricatorOwnersPackagePathValidator.php', | ||||||
|     'PhabricatorOwnersPackageQuery' => 'applications/owners/query/PhabricatorOwnersPackageQuery.php', |     'PhabricatorOwnersPackageQuery' => 'applications/owners/query/PhabricatorOwnersPackageQuery.php', | ||||||
| @@ -3358,6 +3359,7 @@ phutil_register_library_map(array( | |||||||
|     'PhabricatorOwnersEditController' => 'PhabricatorOwnersController', |     'PhabricatorOwnersEditController' => 'PhabricatorOwnersController', | ||||||
|     'PhabricatorOwnersListController' => 'PhabricatorOwnersController', |     'PhabricatorOwnersListController' => 'PhabricatorOwnersController', | ||||||
|     'PhabricatorOwnersOwner' => 'PhabricatorOwnersDAO', |     'PhabricatorOwnersOwner' => 'PhabricatorOwnersDAO', | ||||||
|  |     'PhabricatorOwnersPHIDTypePackage' => 'PhabricatorPHIDType', | ||||||
|     'PhabricatorOwnersPackage' => |     'PhabricatorOwnersPackage' => | ||||||
|     array( |     array( | ||||||
|       0 => 'PhabricatorOwnersDAO', |       0 => 'PhabricatorOwnersDAO', | ||||||
|   | |||||||
| @@ -225,7 +225,7 @@ final class PhabricatorAuditListController extends PhabricatorAuditController { | |||||||
|         break; |         break; | ||||||
|       case 'package': |       case 'package': | ||||||
|       case 'packagecommits': |       case 'packagecommits': | ||||||
|         if ($type !== PhabricatorPHIDConstants::PHID_TYPE_OPKG) { |         if ($type !== PhabricatorOwnersPHIDTypePackage::TYPECONST) { | ||||||
|           throw new Exception("PHID must be a package PHID!"); |           throw new Exception("PHID must be a package PHID!"); | ||||||
|         } |         } | ||||||
|         break; |         break; | ||||||
|   | |||||||
| @@ -0,0 +1,45 @@ | |||||||
|  | <?php | ||||||
|  |  | ||||||
|  | final class PhabricatorOwnersPHIDTypePackage extends PhabricatorPHIDType { | ||||||
|  |  | ||||||
|  |   const TYPECONST = 'OPKG'; | ||||||
|  |  | ||||||
|  |   public function getTypeConstant() { | ||||||
|  |     return self::TYPECONST; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public function getTypeName() { | ||||||
|  |     return pht('Owners Package'); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public function newObject() { | ||||||
|  |     return new PhabricatorOwnersPackage(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public function loadObjects( | ||||||
|  |     PhabricatorObjectQuery $query, | ||||||
|  |     array $phids) { | ||||||
|  |  | ||||||
|  |     return id(new PhabricatorOwnersPackageQuery()) | ||||||
|  |       ->setViewer($query->getViewer()) | ||||||
|  |       ->withPHIDs($phids) | ||||||
|  |       ->execute(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public function loadHandles( | ||||||
|  |     PhabricatorHandleQuery $query, | ||||||
|  |     array $handles, | ||||||
|  |     array $objects) { | ||||||
|  |  | ||||||
|  |     foreach ($handles as $phid => $handle) { | ||||||
|  |       $package = $objects[$phid]; | ||||||
|  |  | ||||||
|  |       $name = $package->getName(); | ||||||
|  |       $id = $package->getID(); | ||||||
|  |  | ||||||
|  |       $handle->setName($name); | ||||||
|  |       $handle->setURI("/owners/package/{$id}/"); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -3,6 +3,7 @@ | |||||||
| final class PhabricatorOwnersPackageQuery | final class PhabricatorOwnersPackageQuery | ||||||
|   extends PhabricatorCursorPagedPolicyAwareQuery { |   extends PhabricatorCursorPagedPolicyAwareQuery { | ||||||
|  |  | ||||||
|  |   private $phids; | ||||||
|   private $ownerPHIDs; |   private $ownerPHIDs; | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
| @@ -13,6 +14,11 @@ final class PhabricatorOwnersPackageQuery | |||||||
|     return $this; |     return $this; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   public function withPHIDs(array $phids) { | ||||||
|  |     $this->phids = $phids; | ||||||
|  |     return $this; | ||||||
|  |   } | ||||||
|  |  | ||||||
|   protected function loadPage() { |   protected function loadPage() { | ||||||
|     $table = new PhabricatorOwnersPackage(); |     $table = new PhabricatorOwnersPackage(); | ||||||
|     $conn_r = $table->establishConnection('r'); |     $conn_r = $table->establishConnection('r'); | ||||||
| @@ -45,6 +51,13 @@ final class PhabricatorOwnersPackageQuery | |||||||
|   private function buildWhereClause(AphrontDatabaseConnection $conn_r) { |   private function buildWhereClause(AphrontDatabaseConnection $conn_r) { | ||||||
|     $where = array(); |     $where = array(); | ||||||
|  |  | ||||||
|  |     if ($this->phids) { | ||||||
|  |       $where[] = qsprintf( | ||||||
|  |         $conn_r, | ||||||
|  |         'p.phid IN (%Ls)', | ||||||
|  |         $this->phids); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     if ($this->ownerPHIDs) { |     if ($this->ownerPHIDs) { | ||||||
|       $base_phids = $this->ownerPHIDs; |       $base_phids = $this->ownerPHIDs; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -5,7 +5,6 @@ final class PhabricatorPHIDConstants { | |||||||
|   const PHID_TYPE_USER    = 'USER'; |   const PHID_TYPE_USER    = 'USER'; | ||||||
|   const PHID_TYPE_UNKNOWN = '????'; |   const PHID_TYPE_UNKNOWN = '????'; | ||||||
|   const PHID_TYPE_MAGIC   = '!!!!'; |   const PHID_TYPE_MAGIC   = '!!!!'; | ||||||
|   const PHID_TYPE_OPKG    = 'OPKG'; |  | ||||||
|   const PHID_TYPE_STRY    = 'STRY'; |   const PHID_TYPE_STRY    = 'STRY'; | ||||||
|   const PHID_TYPE_APRJ    = 'APRJ'; |   const PHID_TYPE_APRJ    = 'APRJ'; | ||||||
|   const PHID_TYPE_ACMT    = 'ACMT'; |   const PHID_TYPE_ACMT    = 'ACMT'; | ||||||
|   | |||||||
| @@ -56,11 +56,6 @@ final class PhabricatorObjectHandleData { | |||||||
|           $phids); |           $phids); | ||||||
|         return mpull($users, null, 'getPHID'); |         return mpull($users, null, 'getPHID'); | ||||||
|  |  | ||||||
|       case PhabricatorPHIDConstants::PHID_TYPE_OPKG: |  | ||||||
|         $object = new PhabricatorOwnersPackage(); |  | ||||||
|         $packages = $object->loadAllWhere('phid in (%Ls)', $phids); |  | ||||||
|         return mpull($packages, null, 'getPHID'); |  | ||||||
|  |  | ||||||
|       case PhabricatorPHIDConstants::PHID_TYPE_APRJ: |       case PhabricatorPHIDConstants::PHID_TYPE_APRJ: | ||||||
|         $project_dao = new PhabricatorRepositoryArcanistProject(); |         $project_dao = new PhabricatorRepositoryArcanistProject(); | ||||||
|         $projects = $project_dao->loadAllWhere( |         $projects = $project_dao->loadAllWhere( | ||||||
| @@ -227,23 +222,6 @@ final class PhabricatorObjectHandleData { | |||||||
|           } |           } | ||||||
|           break; |           break; | ||||||
|  |  | ||||||
|         case PhabricatorPHIDConstants::PHID_TYPE_OPKG: |  | ||||||
|           foreach ($phids as $phid) { |  | ||||||
|             $handle = new PhabricatorObjectHandle(); |  | ||||||
|             $handle->setPHID($phid); |  | ||||||
|             $handle->setType($type); |  | ||||||
|             if (empty($objects[$phid])) { |  | ||||||
|               $handle->setName('Unknown Package'); |  | ||||||
|             } else { |  | ||||||
|               $package = $objects[$phid]; |  | ||||||
|               $handle->setName($package->getName()); |  | ||||||
|               $handle->setURI('/owners/package/'.$package->getID().'/'); |  | ||||||
|               $handle->setComplete(true); |  | ||||||
|             } |  | ||||||
|             $handles[$phid] = $handle; |  | ||||||
|           } |  | ||||||
|           break; |  | ||||||
|  |  | ||||||
|         case PhabricatorPHIDConstants::PHID_TYPE_APRJ: |         case PhabricatorPHIDConstants::PHID_TYPE_APRJ: | ||||||
|           foreach ($phids as $phid) { |           foreach ($phids as $phid) { | ||||||
|             $handle = new PhabricatorObjectHandle(); |             $handle = new PhabricatorObjectHandle(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 epriestley
					epriestley