Changeset View
Changeset View
Standalone View
Standalone View
src/applications/diffusion/request/DiffusionRequest.php
Show First 20 Lines • Show All 94 Lines • ▼ Show 20 Lines | if ($have_repository) { | ||||
} | } | ||||
$identifier = $repository; | $identifier = $repository; | ||||
$repository = null; | $repository = null; | ||||
} | } | ||||
} | } | ||||
if ($identifier !== null) { | if ($identifier !== null) { | ||||
$object = self::newFromIdentifier($identifier, $data[$viewer_key]); | $object = self::newFromIdentifier( | ||||
$identifier, | |||||
$data[$viewer_key], | |||||
idx($data, 'edit')); | |||||
} else { | } else { | ||||
$object = self::newFromRepository($repository); | $object = self::newFromRepository($repository); | ||||
} | } | ||||
if (!$object) { | if (!$object) { | ||||
return null; | return null; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | /* -( Creating Requests )-------------------------------------------------- */ | ||||
* | * | ||||
* @param string Repository identifier. | * @param string Repository identifier. | ||||
* @param PhabricatorUser Viewing user. | * @param PhabricatorUser Viewing user. | ||||
* @return DiffusionRequest New request object. | * @return DiffusionRequest New request object. | ||||
* @task new | * @task new | ||||
*/ | */ | ||||
final private static function newFromIdentifier( | final private static function newFromIdentifier( | ||||
$identifier, | $identifier, | ||||
PhabricatorUser $viewer) { | PhabricatorUser $viewer, | ||||
$need_edit = false) { | |||||
$repository = id(new PhabricatorRepositoryQuery()) | $query = id(new PhabricatorRepositoryQuery()) | ||||
->setViewer($viewer) | ->setViewer($viewer) | ||||
->withIdentifiers(array($identifier)) | ->withIdentifiers(array($identifier)); | ||||
->executeOne(); | |||||
if ($need_edit) { | |||||
$query->requireCapabilities( | |||||
array( | |||||
PhabricatorPolicyCapability::CAN_VIEW, | |||||
PhabricatorPolicyCapability::CAN_EDIT, | |||||
)); | |||||
} | |||||
$repository = $query->executeOne(); | |||||
if (!$repository) { | if (!$repository) { | ||||
return null; | return null; | ||||
} | } | ||||
return self::newFromRepository($repository); | return self::newFromRepository($repository); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 533 Lines • Show Last 20 Lines |