X-Git-Url: https://git.proxmox.com/?p=pve-access-control.git;a=blobdiff_plain;f=pveum;h=c9d602e589869300cdd699341689d56e5f6592a2;hp=1a2f532ac0a7c57e564cff6e52bd3dde90ee91f6;hb=57a704731b04392b2103b02573fdc4acdfd18a9e;hpb=2c3a6c0aaac7fbdaeb26bc5a596d21e897f3343a diff --git a/pveum b/pveum index 1a2f532..c9d602e 100755 --- a/pveum +++ b/pveum @@ -1,6 +1,7 @@ -#!/usr/bin/perl -w +#!/usr/bin/perl use strict; +use warnings; use Getopt::Long; use PVE::Tools qw(run_command); use PVE::Cluster; @@ -28,19 +29,6 @@ initlog('pveum'); #fixme: logging? -die "please run as root\n" if $> != 0; - -PVE::INotify::inotify_init(); - -my $rpcenv = PVE::RPCEnvironment->init('cli'); - -$rpcenv->init_request(); -$rpcenv->set_language($ENV{LANG}); -$rpcenv->set_user('root@pam'); - -# autmatically generate the private key if it does not already exists -PVE::Cluster::gen_auth_key(); - my $read_password = sub { # return $ENV{PVE_PW_TICKET} if defined($ENV{PVE_PW_TICKET}); @@ -60,6 +48,9 @@ my $cmddef = { my ($res) = @_; print "$res->{ticket}\n"; }], + + passwd => [ 'PVE::API2::AccessControl', 'change_passsword', ['userid'] ], + useradd => [ 'PVE::API2::User', 'create_user', ['userid'] ], usermod => [ 'PVE::API2::User', 'update_user', ['userid'] ], userdel => [ 'PVE::API2::User', 'delete_user', ['userid'] ], @@ -72,18 +63,28 @@ my $cmddef = { rolemod => [ 'PVE::API2::Role', 'update_role', ['roleid'] ], roledel => [ 'PVE::API2::Role', 'delete_role', ['roleid'] ], - aclmod => [ 'PVE::API2::ACL', 'update_acl', ['path', 'roles'], { delete => 0 }], - acldel => [ 'PVE::API2::ACL', 'update_acl', ['path', 'roles'], { delete => 1 }], + aclmod => [ 'PVE::API2::ACL', 'update_acl', ['path'], { delete => 0 }], + acldel => [ 'PVE::API2::ACL', 'update_acl', ['path'], { delete => 1 }], }; my $cmd = shift; -if ($cmd && $cmd eq 'verifyapi') { - PVE::RESTHandler::validate_method_schemas(); - exit 0; +if (defined($cmd) && $cmd ne 'verifyapi' && $cmd ne 'printmanpod') { + die "please run as root\n" if $> != 0; + + PVE::INotify::inotify_init(); + + my $rpcenv = PVE::RPCEnvironment->init('cli'); + + $rpcenv->init_request(); + $rpcenv->set_language($ENV{LANG}); + $rpcenv->set_user('root@pam'); + +# autmatically generate the private key if it does not already exists + PVE::Cluster::gen_auth_key(); } -PVE::CLIHandler::handle_cmd($cmddef, "pveum", $cmd, \@ARGV, $read_password); +PVE::CLIHandler::handle_cmd($cmddef, "pveum", $cmd, \@ARGV, $read_password, $0); exit 0; @@ -95,8 +96,10 @@ pveum - PVE User Manager =head1 SYNOPSIS - pveum [OPTIONS] +=include synopsis =head1 DESCRIPTION -no description available +No description available. + +=include pve_copyright