mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-15 19:32:40 +01:00
7f0d0e4e6c
Summary: Ref T603. I got most of this earlier, but finish it up. - Make a couple of controllers public; pretty much everything in Diffusion has implicit policy checks as a result of building a `DiffusionRequest`. - Add an "Edit" capability to commits. - Swap out the comment thing for commits. - Disable actions if the user can't take them. Test Plan: Viewed a bunch of interfaces while logged out, got appropriate results or roadblocks. Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T603 Differential Revision: https://secure.phabricator.com/D7152
45 lines
1.1 KiB
PHP
45 lines
1.1 KiB
PHP
<?php
|
|
|
|
final class DiffusionCommitBranchesController extends DiffusionController {
|
|
|
|
public function shouldAllowPublic() {
|
|
return true;
|
|
}
|
|
|
|
public function willProcessRequest(array $data) {
|
|
$data['user'] = $this->getRequest()->getUser();
|
|
$this->diffusionRequest = DiffusionRequest::newFromDictionary($data);
|
|
}
|
|
|
|
public function processRequest() {
|
|
$request = $this->getDiffusionRequest();
|
|
|
|
$branches = array();
|
|
try {
|
|
$branches = $this->callConduitWithDiffusionRequest(
|
|
'diffusion.commitbranchesquery',
|
|
array('commit' => $request->getCommit()));
|
|
} catch (ConduitException $ex) {
|
|
if ($ex->getMessage() != 'ERR-UNSUPPORTED-VCS') {
|
|
throw $ex;
|
|
}
|
|
}
|
|
|
|
$branch_links = array();
|
|
foreach ($branches as $branch => $commit) {
|
|
$branch_links[] = phutil_tag(
|
|
'a',
|
|
array(
|
|
'href' => $request->generateURI(
|
|
array(
|
|
'action' => 'browse',
|
|
'branch' => $branch,
|
|
)),
|
|
),
|
|
$branch);
|
|
}
|
|
|
|
return id(new AphrontAjaxResponse())
|
|
->setContent($branch_links ? implode(', ', $branch_links) : 'None');
|
|
}
|
|
}
|