From 69f72c01d69c8a104849b34af0c656acfcb9d30c Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Fri, 1 May 2015 16:19:52 -0700 Subject: [PATCH] [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 --- .../PhabricatorAuthRegisterController.php | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/applications/auth/controller/PhabricatorAuthRegisterController.php b/src/applications/auth/controller/PhabricatorAuthRegisterController.php index 0ae0bc1d61..7b5d932672 100644 --- a/src/applications/auth/controller/PhabricatorAuthRegisterController.php +++ b/src/applications/auth/controller/PhabricatorAuthRegisterController.php @@ -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) {