diff --git a/src/applications/subscriptions/controller/PhabricatorSubscriptionsEditController.php b/src/applications/subscriptions/controller/PhabricatorSubscriptionsEditController.php
--- a/src/applications/subscriptions/controller/PhabricatorSubscriptionsEditController.php
+++ b/src/applications/subscriptions/controller/PhabricatorSubscriptionsEditController.php
@@ -3,22 +3,16 @@
 final class PhabricatorSubscriptionsEditController
   extends PhabricatorController {
 
-  private $phid;
-  private $action;
-
-  public function willProcessRequest(array $data) {
-    $this->phid = idx($data, 'phid');
-    $this->action = idx($data, 'action');
-  }
-
-  public function processRequest() {
-    $request = $this->getRequest();
+  public function handleRequest(AphrontRequest $request) {
+    $viewer = $request->getViewer();
+    $phid = $request->getURIData('phid');
+    $action = $request->getURIData('action');
 
     if (!$request->isFormPost()) {
       return new Aphront400Response();
     }
 
-    switch ($this->action) {
+    switch ($action) {
       case 'add':
         $is_add = true;
         break;
@@ -29,11 +23,8 @@
         return new Aphront400Response();
     }
 
-    $user = $request->getUser();
-    $phid = $this->phid;
-
     $handle = id(new PhabricatorHandleQuery())
-      ->setViewer($user)
+      ->setViewer($viewer)
       ->withPHIDs(array($phid))
       ->executeOne();
 
@@ -45,13 +36,13 @@
       // to become more clear?
 
       $object = id(new PhabricatorProjectQuery())
-        ->setViewer($user)
+        ->setViewer($viewer)
         ->withPHIDs(array($phid))
         ->needWatchers(true)
         ->executeOne();
     } else {
       $object = id(new PhabricatorObjectQuery())
-        ->setViewer($user)
+        ->setViewer($viewer)
         ->withPHIDs(array($phid))
         ->executeOne();
     }
@@ -63,14 +54,14 @@
         $handle->getURI());
     }
 
-    if ($object->isAutomaticallySubscribed($user->getPHID())) {
+    if ($object->isAutomaticallySubscribed($viewer->getPHID())) {
       return $this->buildErrorResponse(
         pht('Automatically Subscribed'),
         pht('You are automatically subscribed to this object.'),
         $handle->getURI());
     }
 
-    if (!$object->shouldAllowSubscription($user->getPHID())) {
+    if (!$object->shouldAllowSubscription($viewer->getPHID())) {
       return $this->buildErrorResponse(
         pht('You Can Not Subscribe'),
         pht('You can not subscribe to this object.'),
@@ -80,11 +71,11 @@
     if ($object instanceof PhabricatorApplicationTransactionInterface) {
       if ($is_add) {
         $xaction_value = array(
-          '+' => array($user->getPHID()),
+          '+' => array($viewer->getPHID()),
         );
       } else {
         $xaction_value = array(
-          '-' => array($user->getPHID()),
+          '-' => array($viewer->getPHID()),
         );
       }
 
@@ -93,7 +84,7 @@
         ->setNewValue($xaction_value);
 
       $editor = id($object->getApplicationTransactionEditor())
-        ->setActor($user)
+        ->setActor($viewer)
         ->setContinueOnNoEffect(true)
         ->setContinueOnMissingFields(true)
         ->setContentSourceFromRequest($request);
@@ -107,13 +98,13 @@
       // PhabriatorApplicationTransactionInterface.
 
       $editor = id(new PhabricatorSubscriptionsEditor())
-        ->setActor($user)
+        ->setActor($viewer)
         ->setObject($object);
 
       if ($is_add) {
-        $editor->subscribeExplicit(array($user->getPHID()), $explicit = true);
+        $editor->subscribeExplicit(array($viewer->getPHID()), $explicit = true);
       } else {
-        $editor->unsubscribe(array($user->getPHID()));
+        $editor->unsubscribe(array($viewer->getPHID()));
       }
 
       $editor->save();
@@ -126,10 +117,10 @@
 
   private function buildErrorResponse($title, $message, $uri) {
     $request = $this->getRequest();
-    $user = $request->getUser();
+    $viewer = $request->getUser();
 
     $dialog = id(new AphrontDialogView())
-      ->setUser($user)
+      ->setUser($viewer)
       ->setTitle($title)
       ->appendChild($message)
       ->addCancelButton($uri);
diff --git a/src/applications/subscriptions/controller/PhabricatorSubscriptionsListController.php b/src/applications/subscriptions/controller/PhabricatorSubscriptionsListController.php
--- a/src/applications/subscriptions/controller/PhabricatorSubscriptionsListController.php
+++ b/src/applications/subscriptions/controller/PhabricatorSubscriptionsListController.php
@@ -8,7 +8,8 @@
   }
 
   public function handleRequest(AphrontRequest $request) {
-    $viewer = $request->getUser();
+    $viewer = $request->getViewer();
+
     $object = id(new PhabricatorObjectQuery())
       ->setViewer($viewer)
       ->withPHIDs(array($request->getURIData('phid')))
diff --git a/src/applications/subscriptions/controller/PhabricatorSubscriptionsTransactionController.php b/src/applications/subscriptions/controller/PhabricatorSubscriptionsTransactionController.php
--- a/src/applications/subscriptions/controller/PhabricatorSubscriptionsTransactionController.php
+++ b/src/applications/subscriptions/controller/PhabricatorSubscriptionsTransactionController.php
@@ -3,22 +3,13 @@
 final class PhabricatorSubscriptionsTransactionController
   extends PhabricatorController {
 
-  private $phid;
-  private $changeType;
-
-  public function willProcessRequest(array $data) {
-    $this->phid = idx($data, 'phid');
-    $this->changeType = idx($data, 'type');
-  }
-
-  public function processRequest() {
-    $request = $this->getRequest();
-
-    $viewer = $request->getUser();
-    $xaction_phid = $this->phid;
+  public function handleRequest(AphrontRequest $request) {
+    $viewer = $request->getViewer();
+    $phid = $request->getURIData('phid');
+    $type = $request->getURIData('type');
 
     $xaction = id(new PhabricatorObjectQuery())
-      ->withPHIDs(array($xaction_phid))
+      ->withPHIDs(array($phid))
       ->setViewer($viewer)
       ->executeOne();
     if (!$xaction) {
@@ -27,7 +18,7 @@
 
     $old = $xaction->getOldValue();
     $new = $xaction->getNewValue();
-    switch ($this->changeType) {
+    switch ($type) {
       case 'add':
         $subscriber_phids = array_diff($new, $old);
         break;
@@ -53,7 +44,7 @@
       unset($handles[$author_phid]);
     }
 
-    switch ($this->changeType) {
+    switch ($type) {
       case 'add':
         $title = pht(
           'All %d subscribers added by %s',