utils: verify_username: allow quarantine logins again

verify_username is used in many places to split into realms (the part
after the last '@') and usernames (everthing before).

The commit disallowing '@' in usernames broke quarantine login
(users login with `localpart@domainname.com@quarantine`)

Fixes: 9665bbc ("utils: user schema: explicitly forbid @ in user-names")
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
This commit is contained in:
Stoiko Ivanov 2025-02-27 10:53:08 +01:00 committed by Thomas Lamprecht
parent 9308e8ff24
commit 6b8c7457d6
2 changed files with 3 additions and 1 deletions

View File

@ -126,6 +126,8 @@ __PACKAGE__->register_method ({
my ($userid, $username, $realm) = PMG::Utils::verify_username($entry->{userid}); my ($userid, $username, $realm) = PMG::Utils::verify_username($entry->{userid});
die "invalid realm '$realm' in userid\n" if !PMG::Auth::Plugin::is_valid_realm($realm); die "invalid realm '$realm' in userid\n" if !PMG::Auth::Plugin::is_valid_realm($realm);
die "'@' forbidden in username\n" if $username =~/@/;
if ($entry->{realm}) { if ($entry->{realm}) {
die "realm parameter does not fit userid ('$entry->{realm}' != '$realm')\n" die "realm parameter does not fit userid ('$entry->{realm}' != '$realm')\n"
if $entry->{realm} ne $realm; if $entry->{realm} ne $realm;

View File

@ -49,7 +49,7 @@ postgres_admin_cmd
try_decode_utf8 try_decode_utf8
); );
my $user_regex = qr![^\s:@/]+!; my $user_regex = qr![^\s:/]+!;
PVE::JSONSchema::register_standard_option('pmg-starttime', { PVE::JSONSchema::register_standard_option('pmg-starttime', {
description => "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.", description => "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",