1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-19 20:10:55 +01:00
phorge-phorge/src/applications/legalpad/controller/LegalpadDocumentSignatureVerificationController.php
Chad Little 77ababadcb Update Legalpad for handleRequest
Summary: Updates Legalpad for handleRequest instead of processRequest

Test Plan: New Document, Sign Document, Add exemption, view signatures.

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D13756
2015-07-29 17:02:10 -07:00

91 lines
2.8 KiB
PHP

<?php
final class LegalpadDocumentSignatureVerificationController
extends LegalpadController {
public function shouldAllowPublic() {
return true;
}
public function handleRequest(AphrontRequest $request) {
$viewer = $request->getViewer();
$code = $request->getURIData('code');
// NOTE: We're using the omnipotent user to handle logged-out signatures
// and corporate signatures.
$signature = id(new LegalpadDocumentSignatureQuery())
->setViewer(PhabricatorUser::getOmnipotentUser())
->withSecretKeys(array($code))
->executeOne();
if (!$signature) {
return $this->newDialog()
->setTitle(pht('Unable to Verify Signature'))
->appendParagraph(
pht(
'The signature verification code is incorrect, or the signature '.
'has been invalidated. Make sure you followed the link in the '.
'email correctly.'))
->addCancelButton('/', pht('Rats!'));
}
if ($signature->isVerified()) {
return $this->newDialog()
->setTitle(pht('Signature Already Verified'))
->appendParagraph(pht('This signature has already been verified.'))
->addCancelButton('/', pht('Okay'));
}
if ($request->isFormPost()) {
$signature
->setVerified(LegalpadDocumentSignature::VERIFIED)
->save();
return $this->newDialog()
->setTitle(pht('Signature Verified'))
->appendParagraph(pht('The signature is now verified.'))
->addCancelButton('/', pht('Okay'));
}
$document_link = phutil_tag(
'a',
array(
'href' => '/'.$signature->getDocument()->getMonogram(),
'target' => '_blank',
),
$signature->getDocument()->getTitle());
$signed_at = phabricator_datetime($signature->getDateCreated(), $viewer);
$name = $signature->getSignerName();
$email = $signature->getSignerEmail();
$form = id(new AphrontFormView())
->setUser($viewer)
->appendRemarkupInstructions(
pht('Please verify this document signature.'))
->appendChild(
id(new AphrontFormMarkupControl())
->setLabel(pht('Document'))
->setValue($document_link))
->appendChild(
id(new AphrontFormMarkupControl())
->setLabel(pht('Signed At'))
->setValue($signed_at))
->appendChild(
id(new AphrontFormMarkupControl())
->setLabel(pht('Name'))
->setValue($name))
->appendChild(
id(new AphrontFormMarkupControl())
->setLabel(pht('Email'))
->setValue($email));
return $this->newDialog()
->setTitle(pht('Verify Signature?'))
->appendChild($form->buildLayoutView())
->addCancelButton('/')
->addSubmitButton(pht('Verify Signature'));
}
}