Make "public" pastes meaningfully visible to logged-out users
Summary: - Introduce `shouldAllowPublic()`, indicating that logged-out users are OK in a controller if the install is configured to permit public policies. - Make Paste views and lists allow public users. - Make UI do sensible things with respect to disabling links, etc. - Improve behavior of "you need to login" with respect to policy exceptions and Ajax requests. Test Plan: Looked at "public" paste, saw all unavailable UI disabled, clicked it, got appropraite prompts. Reviewers: vrana, btrahan Reviewed By: vrana CC: aran Maniphest Tasks: T603 Differential Revision: https://secure.phabricator.com/D3502
This commit is contained in:
@@ -18,6 +18,10 @@
|
||||
|
||||
final class PhabricatorPasteViewController extends PhabricatorPasteController {
|
||||
|
||||
public function shouldAllowPublic() {
|
||||
return true;
|
||||
}
|
||||
|
||||
private $id;
|
||||
private $handles;
|
||||
|
||||
@@ -98,6 +102,8 @@ final class PhabricatorPasteViewController extends PhabricatorPasteController {
|
||||
$paste,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$can_fork = $user->isLoggedIn();
|
||||
|
||||
return id(new PhabricatorActionListView())
|
||||
->setUser($user)
|
||||
->setObject($paste)
|
||||
@@ -105,6 +111,8 @@ final class PhabricatorPasteViewController extends PhabricatorPasteController {
|
||||
id(new PhabricatorActionView())
|
||||
->setName(pht('Fork This Paste'))
|
||||
->setIcon('fork')
|
||||
->setDisabled(!$can_fork)
|
||||
->setWorkflow(!$can_fork)
|
||||
->setHref($this->getApplicationURI('?parent='.$paste->getID())))
|
||||
->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
|
||||
Reference in New Issue
Block a user