[FreeBSD] Freebsd custom patch for user auth

Since we want usernames to depend on the email provided, hack are way
through it.  An extension can not handle this level of intrusiveness

I'm sorry oh coding gods
This commit is contained in:
Eitan Adler 2015-05-01 16:19:52 -07:00 committed by Muhammad Moinur Rahman
parent 9426765a2c
commit 461f4fc104

View file

@ -7,6 +7,13 @@ final class PhabricatorAuthRegisterController
return false;
}
private function emailToUsername($email) {
$mangled_email = str_ireplace('@freebsd.org', '', $email);
$mangled_email = str_replace('@', '_', $mangled_email);
$mangled_email = str_replace('+', '_', $mangled_email);
return $mangled_email;
}
public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer();
$account_key = $request->getURIData('akey');
@ -67,9 +74,9 @@ final class PhabricatorAuthRegisterController
$default_realname = null;
$default_email = null;
} else {
$default_username = $account->getUsername();
$default_realname = $account->getRealName();
$default_email = $account->getEmail();
$fbsd_username = $this->emailToUsername($default_email);
}
$account_type = PhabricatorAuthPassword::PASSWORD_TYPE_ACCOUNT;
@ -196,7 +203,7 @@ final class PhabricatorAuthRegisterController
}
$profile = id(new PhabricatorRegistrationProfile())
->setDefaultUsername($default_username)
->setDefaultUsername($fbsd_username)
->setDefaultEmail($default_email)
->setDefaultRealName($default_realname)
->setCanEditUsername(true)
@ -214,11 +221,11 @@ final class PhabricatorAuthRegisterController
->setUser($user);
PhutilEventEngine::dispatchEvent($event);
$default_username = $profile->getDefaultUsername();
$fbsd_username = $profile->getDefaultUsername();
$default_email = $profile->getDefaultEmail();
$default_realname = $profile->getDefaultRealName();
$can_edit_username = $profile->getCanEditUsername();
$can_edit_username = false;
$can_edit_email = $profile->getCanEditEmail();
$can_edit_realname = $profile->getCanEditRealName();
@ -237,7 +244,7 @@ final class PhabricatorAuthRegisterController
$force_verify = true;
}
$value_username = $default_username;
$value_username = $fbsd_username;
$value_realname = $default_realname;
$value_email = $default_email;
$value_password = null;
@ -337,6 +344,10 @@ final class PhabricatorAuthRegisterController
}
}
if ($account->getAccountType() != 'ldap') {
$value_username = $this->emailToUsername($value_email);
}
if ($can_edit_realname) {
$value_realname = $request->getStr('realName');
if (!strlen($value_realname) && $require_real_name) {