Skip to content

Commit 3dcd5a7

Browse files
committed
[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
1 parent 229d467 commit 3dcd5a7

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

src/applications/auth/controller/PhabricatorAuthRegisterController.php

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ public function shouldRequireLogin() {
77
return false;
88
}
99

10+
private function emailToUsername($email) {
11+
$mangled_email = str_ireplace('@freebsd.org', '', $email);
12+
$mangled_email = str_replace('@', '_', $mangled_email);
13+
$mangled_email = str_replace('+', '_', $mangled_email);
14+
return $mangled_email;
15+
}
16+
1017
public function handleRequest(AphrontRequest $request) {
1118
$viewer = $this->getViewer();
1219
$account_key = $request->getURIData('akey');
@@ -58,7 +65,7 @@ public function handleRequest(AphrontRequest $request) {
5865

5966
$user = new PhabricatorUser();
6067

61-
$default_username = $account->getUsername();
68+
$fbsd_username = $this->emailToUsername($account->getEmail());
6269
$default_realname = $account->getRealName();
6370

6471
$account_type = PhabricatorAuthPassword::PASSWORD_TYPE_ACCOUNT;
@@ -186,7 +193,7 @@ public function handleRequest(AphrontRequest $request) {
186193
}
187194

188195
$profile = id(new PhabricatorRegistrationProfile())
189-
->setDefaultUsername($default_username)
196+
->setDefaultUsername($fbsd_username)
190197
->setDefaultEmail($default_email)
191198
->setDefaultRealName($default_realname)
192199
->setCanEditUsername(true)
@@ -204,11 +211,11 @@ public function handleRequest(AphrontRequest $request) {
204211
->setUser($user);
205212
PhutilEventEngine::dispatchEvent($event);
206213

207-
$default_username = $profile->getDefaultUsername();
214+
$fbsd_username = $profile->getDefaultUsername();
208215
$default_email = $profile->getDefaultEmail();
209216
$default_realname = $profile->getDefaultRealName();
210217

211-
$can_edit_username = $profile->getCanEditUsername();
218+
$can_edit_username = false;
212219
$can_edit_email = $profile->getCanEditEmail();
213220
$can_edit_realname = $profile->getCanEditRealName();
214221

@@ -223,7 +230,7 @@ public function handleRequest(AphrontRequest $request) {
223230
$force_verify = true;
224231
}
225232

226-
$value_username = $default_username;
233+
$value_username = $fbsd_username;
227234
$value_realname = $default_realname;
228235
$value_email = $default_email;
229236
$value_password = null;
@@ -323,6 +330,10 @@ public function handleRequest(AphrontRequest $request) {
323330
}
324331
}
325332

333+
if ($account->getAccountType() != 'ldap') {
334+
$value_username = $this->emailToUsername($value_email);
335+
}
336+
326337
if ($can_edit_realname) {
327338
$value_realname = $request->getStr('realName');
328339
if (!strlen($value_realname) && $require_real_name) {

0 commit comments

Comments
 (0)