Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15422433
D13125.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Referenced Files
None
Subscribers
None
D13125.diff
View Options
diff --git a/src/applications/settings/panel/PhabricatorEmailAddressesSettingsPanel.php b/src/applications/settings/panel/PhabricatorEmailAddressesSettingsPanel.php
--- a/src/applications/settings/panel/PhabricatorEmailAddressesSettingsPanel.php
+++ b/src/applications/settings/panel/PhabricatorEmailAddressesSettingsPanel.php
@@ -15,8 +15,16 @@
return pht('Email');
}
+ public function isEditableByAdministrators() {
+ if ($this->getUser()->getIsMailingList()) {
+ return true;
+ }
+
+ return false;
+ }
+
public function processRequest(AphrontRequest $request) {
- $user = $request->getUser();
+ $user = $this->getUser();
$editable = PhabricatorEnv::getEnvConfig('account.editable');
$uri = $request->getRequestURI();
@@ -157,7 +165,8 @@
PhutilURI $uri,
$new) {
- $user = $request->getUser();
+ $user = $this->getUser();
+ $viewer = $this->getViewer();
$e_email = true;
$email = null;
@@ -171,7 +180,7 @@
}
PhabricatorSystemActionEngine::willTakeAction(
- array($user->getPHID()),
+ array($viewer->getPHID()),
new PhabricatorSettingsAddEmailAction(),
1);
@@ -201,12 +210,24 @@
->setAddress($email)
->setIsVerified(0);
- try {
+ // If an administrator is editing a mailing list, automatically verify
+ // the address.
+ if ($viewer->getPHID() != $user->getPHID()) {
+ if ($viewer->getIsAdmin()) {
+ $object->setIsVerified(1);
+ }
+ }
+ try {
id(new PhabricatorUserEditor())
- ->setActor($user)
+ ->setActor($viewer)
->addEmail($user, $object);
+ if ($object->getIsVerified()) {
+ // If we autoverified the address, just reload the page.
+ return id(new AphrontReloadResponse())->setURI($uri);
+ }
+
$object->sendVerificationEmail($user);
$dialog = id(new AphrontDialogView())
@@ -242,7 +263,7 @@
->setError($e_email));
$dialog = id(new AphrontDialogView())
- ->setUser($user)
+ ->setUser($viewer)
->addHiddenInput('new', 'true')
->setTitle(pht('New Address'))
->appendChild($errors)
@@ -257,8 +278,8 @@
AphrontRequest $request,
PhutilURI $uri,
$email_id) {
-
- $user = $request->getUser();
+ $user = $this->getUser();
+ $viewer = $this->getViewer();
// NOTE: You can only delete your own email addresses, and you can not
// delete your primary address.
@@ -272,9 +293,8 @@
}
if ($request->isFormPost()) {
-
id(new PhabricatorUserEditor())
- ->setActor($user)
+ ->setActor($viewer)
->removeEmail($user, $email);
return id(new AphrontRedirectResponse())->setURI($uri);
@@ -283,7 +303,7 @@
$address = $email->getAddress();
$dialog = id(new AphrontDialogView())
- ->setUser($user)
+ ->setUser($viewer)
->addHiddenInput('delete', $email_id)
->setTitle(pht("Really delete address '%s'?", $address))
->appendParagraph(
@@ -304,8 +324,8 @@
AphrontRequest $request,
PhutilURI $uri,
$email_id) {
-
- $user = $request->getUser();
+ $user = $this->getUser();
+ $viewer = $this->getViewer();
// NOTE: You can only send more email for your unverified addresses.
$email = id(new PhabricatorUserEmail())->loadOneWhere(
@@ -325,7 +345,7 @@
$address = $email->getAddress();
$dialog = id(new AphrontDialogView())
- ->setUser($user)
+ ->setUser($viewer)
->addHiddenInput('verify', $email_id)
->setTitle(pht('Send Another Verification Email?'))
->appendChild(phutil_tag('p', array(), pht(
@@ -341,11 +361,11 @@
AphrontRequest $request,
PhutilURI $uri,
$email_id) {
-
- $user = $request->getUser();
+ $user = $this->getUser();
+ $viewer = $this->getViewer();
$token = id(new PhabricatorAuthSessionEngine())->requireHighSecuritySession(
- $user,
+ $viewer,
$request,
$this->getPanelURI());
@@ -360,9 +380,8 @@
}
if ($request->isFormPost()) {
-
id(new PhabricatorUserEditor())
- ->setActor($user)
+ ->setActor($viewer)
->changePrimaryEmail($user, $email);
return id(new AphrontRedirectResponse())->setURI($uri);
@@ -371,7 +390,7 @@
$address = $email->getAddress();
$dialog = id(new AphrontDialogView())
- ->setUser($user)
+ ->setUser($viewer)
->addHiddenInput('primary', $email_id)
->setTitle(pht('Change primary email address?'))
->appendParagraph(
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Mar 23, 8:17 AM (1 w, 1 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7274093
Default Alt Text
D13125.diff (4 KB)
Attached To
Mode
D13125: Allow administrators to manage addresses for mailing list users
Attached
Detach File
Event Timeline
Log In to Comment