Exemplo n.º 1
0
 /**
  * @task email
  */
 public function removeEmail(PhabricatorUser $user, PhabricatorUserEmail $email)
 {
     $actor = $this->requireActor();
     if (!$user->getID()) {
         throw new Exception("User has not been created yet!");
     }
     if (!$email->getID()) {
         throw new Exception("Email has not been created yet!");
     }
     $user->openTransaction();
     $user->beginWriteLocking();
     $user->reload();
     $email->reload();
     if ($email->getIsPrimary()) {
         throw new Exception("Can't remove primary email!");
     }
     if ($email->getUserPHID() != $user->getPHID()) {
         throw new Exception("Email not owned by user!");
     }
     $email->delete();
     $log = PhabricatorUserLog::newLog($this->actor, $user, PhabricatorUserLog::ACTION_EMAIL_REMOVE);
     $log->setOldValue($email->getAddress());
     $log->save();
     $user->endWriteLocking();
     $user->saveTransaction();
     return $this;
 }