From 461f4fc104d232807298265875436ec90cc80af3 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 9fbf30d092..161f3b8144 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) {