Skip to content

Commit

Permalink
Fix register_method column not being filled when accounts are creat…
Browse files Browse the repository at this point in the history
  • Loading branch information
tadhgboyle authored Jan 26, 2023
1 parent 7f2b7b9 commit bfbc88c
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 6 deletions.
3 changes: 2 additions & 1 deletion core/installation/includes/upgrade_perform.php
Original file line number Diff line number Diff line change
Expand Up @@ -499,7 +499,8 @@
'tfa_enabled' => $item->tfa_enabled,
'tfa_type' => $item->tfa_type,
'tfa_secret' => $item->tfa_secret,
'tfa_complete' => $item->tfa_complete
'tfa_complete' => $item->tfa_complete,
'register_method' => 'v1_upgrade',
]);

DB::getInstance()->insert('users_groups', [
Expand Down
1 change: 1 addition & 0 deletions core/installation/steps/admin_account_setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ function display_error(string $message) {
'last_online' => date('U'),
'language_id' => $default_language[0]->id,
'timezone' => $_SESSION['install_timezone'],
'register_method' => 'nameless',
]);

$profile = ProfileUtils::getProfile(Output::getClean(Input::get('username')));
Expand Down
1 change: 1 addition & 0 deletions dev/scripts/cli_install.php
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ function getEnvVar(string $name, string $fallback = null, array $valid_values =
'last_online' => date('U'),
'language_id' => DB::getInstance()->get('languages', ['is_default', 1])->results()[0]->id,
'timezone' => $_SESSION['install_timezone'],
'register_method' => 'nameless',
]);
DB::getInstance()->query('INSERT INTO `nl2_users_groups` (`user_id`, `group_id`, `received`, `expire`) VALUES (?, ?, ?, ?)', [
1,
Expand Down
2 changes: 2 additions & 0 deletions dev/scripts/seeder/UserSeeder.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ public function run(DB $db, \Faker\Generator $faker): void {
'active' => true,
'last_online' => date('U'),
'language_id' => $db->get('languages', ['is_default', '=', 1])->first()->id,
'register_method' => 'nameless',
]);
$user_id = $db->lastId();
$db->query('INSERT INTO `nl2_users_groups` (`user_id`, `group_id`, `received`, `expire`) VALUES (?, ?, ?, ?)', [
Expand Down Expand Up @@ -67,6 +68,7 @@ public function run(DB $db, \Faker\Generator $faker): void {
'user_title' => $faker->boolean(20) ? $faker->text(60) : null,
'night_mode' => $faker->boolean ? 1 : 0,
'timezone' => $faker->boolean ? $faker->timezone : 'America/Vancouver',
'register_method' => 'nameless',
]);

$user_id = $db->lastId();
Expand Down
3 changes: 2 additions & 1 deletion modules/Core/includes/endpoints/RegisterEndpoint.php
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,8 @@ private function createUser(Nameless2API $api, string $username, string $email,
'joined' => date('U'),
'lastip' => 'Unknown',
'reset_code' => $code,
'last_online' => date('U')
'last_online' => date('U'),
'register_method' => 'api',
]
);

Expand Down
3 changes: 2 additions & 1 deletion modules/Core/includes/run_mcassoc.php
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,8 @@
'email' => $_SESSION['mcassoc']['email'],
'active' => true,
'lastip' => $ip,
'last_online' => date('U')
'last_online' => date('U'),
'register_method' => 'mcassoc',
]);

$new_user = new User(DB::getInstance()->lastId());
Expand Down
17 changes: 14 additions & 3 deletions modules/Core/pages/register.php
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,13 @@
$timezone = $auto_timezone;
}

$register_method = 'nameless';

if (Session::exists('oauth_register_data')) {
$data = json_decode(Session::get('oauth_register_data'), true);
$register_method = 'oauth_' . $data['provider'];
}

// Create user
$user->create([
'username' => $username,
Expand All @@ -327,6 +334,7 @@
'last_online' => $date,
'language_id' => $language_id,
'timezone' => $timezone,
'register_method' => $register_method,
]);

// Get user ID
Expand All @@ -346,7 +354,9 @@
$data['provider'],
$data['id'],
);
$auto_verify_oauth_email = $data['email'] === Input::get('email') && NamelessOAuth::getInstance()->hasVerifiedEmail($data['provider'], $data['data']);
$auto_verify_oauth_email = $data['email'] === Input::get('email')
&& NamelessOAuth::getInstance()->hasVerifiedEmail($data['provider'], $data['data'])
&& DB::getInstance()->get('users', ['email', $data['email']])->count() === 0;

Session::delete('oauth_register_data');
}
Expand Down Expand Up @@ -429,7 +439,7 @@
$username_value = ((isset($_POST['username']) && $_POST['username']) ? Output::getClean(Input::get('username')) : '');
$email_value = ((isset($_POST['email']) && $_POST['email']) ? Output::getClean(Input::get('email')) : '');

if ($email === '' && Session::exists('oauth_register_data')) {
if ($email_value === '' && Session::exists('oauth_register_data')) {
$email_value = json_decode(Session::get('oauth_register_data'), true)['email'];
}

Expand Down Expand Up @@ -471,7 +481,8 @@
]),
'CANCEL' => $language->get('general', 'cancel'),
'OAUTH_CANCEL_REGISTER_URL' => URL::build('/oauth', 'action=cancel_registration'),
'OAUTH_EMAIL_VERIFIED' => NamelessOAuth::getInstance()->hasVerifiedEmail($data['provider'], $data['data']),
'OAUTH_EMAIL_VERIFIED' => NamelessOAuth::getInstance()->hasVerifiedEmail($data['provider'], $data['data'])
&& DB::getInstance()->get('users', ['email', $data['email']])->count() === 0,
'OAUTH_EMAIL_ORIGINAL' => $data['email'],
'OAUTH_EMAIL_VERIFIED_MESSAGE' => $language->get('general', 'oauth_email_verified_automatically'),
'OAUTH_EMAIL_NOT_VERIFIED_MESSAGE' => $language->get('general', 'oauth_email_not_verified_automatically'),
Expand Down

0 comments on commit bfbc88c

Please sign in to comment.