the helper is modeled after the corresponding user method. the 'tokenid' option goes into PVE::AccessControl, since we need it in multiple API modules.
Signed-off-by: Fabian Grünbichler <f.gruenbich...@proxmox.com> --- Notes: v1->v2: - remove enabled helper (since flag was removed) - drop brackets in error message PVE/AccessControl.pm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/PVE/AccessControl.pm b/PVE/AccessControl.pm index f719193..573117f 100644 --- a/PVE/AccessControl.pm +++ b/PVE/AccessControl.pm @@ -211,6 +211,12 @@ sub rotate_authkey { die $@ if $@; } +PVE::JSONSchema::register_standard_option('tokenid', { + description => "API token identifier.", + type => "string", + format => "pve-tokenid", +}); + our $token_subid_regex = $PVE::Auth::Plugin::realm_regex; # username@realm username realm tokenid @@ -533,6 +539,19 @@ sub check_user_enabled { return undef; } +sub check_token_exist { + my ($usercfg, $username, $tokenid, $noerr) = @_; + + my $user = check_user_exist($usercfg, $username, $noerr); + return undef if !$user; + + return $user->{tokens}->{$tokenid} if $user->{tokens}->{$tokenid}; + + die "no such token '$tokenid' for user '$username'\n" if !$noerr; + + return undef; +} + sub verify_one_time_pw { my ($type, $username, $keys, $tfa_cfg, $otp) = @_; -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel