X-Git-Url: https://git.proxmox.com/?p=pve-access-control.git;a=blobdiff_plain;f=pveum;h=4ab2e0c4c4b9672d68fa987103ed4bdba7b29f44;hp=c9d602e589869300cdd699341689d56e5f6592a2;hb=09281ad74465a7dbc92edfa02463b0d2332a6e98;hpb=ef740495f04af742c3defb8a034167ecb1713c15 diff --git a/pveum b/pveum index c9d602e..4ab2e0c 100755 --- a/pveum +++ b/pveum @@ -2,32 +2,8 @@ use strict; use warnings; -use Getopt::Long; -use PVE::Tools qw(run_command); -use PVE::Cluster; -use PVE::SafeSyslog; -use PVE::AccessControl; -use File::Path qw(make_path remove_tree); -use Term::ReadLine; -use PVE::INotify; -use PVE::RPCEnvironment; -use PVE::API2::User; -use PVE::API2::Group; -use PVE::API2::Role; -use PVE::API2::ACL; -use PVE::API2::AccessControl; -use PVE::JSONSchema qw(get_standard_option); -use PVE::CLIHandler; -use base qw(PVE::CLIHandler); - -use Data::Dumper; # fixme: remove - -$ENV{'PATH'} = '/sbin:/bin:/usr/sbin:/usr/bin'; - -initlog('pveum'); - -#fixme: logging? +use PVE::CLI::pveum; my $read_password = sub { @@ -42,64 +18,9 @@ my $read_password = sub { return $input; }; -my $cmddef = { - ticket => [ 'PVE::API2::AccessControl', 'create_ticket', ['username'], undef, - sub { - 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'] ], - - groupadd => [ 'PVE::API2::Group', 'create_group', ['groupid'] ], - groupmod => [ 'PVE::API2::Group', 'update_group', ['groupid'] ], - groupdel => [ 'PVE::API2::Group', 'delete_group', ['groupid'] ], - - roleadd => [ 'PVE::API2::Role', 'create_role', ['roleid'] ], - rolemod => [ 'PVE::API2::Role', 'update_role', ['roleid'] ], - roledel => [ 'PVE::API2::Role', 'delete_role', ['roleid'] ], - - aclmod => [ 'PVE::API2::ACL', 'update_acl', ['path'], { delete => 0 }], - acldel => [ 'PVE::API2::ACL', 'update_acl', ['path'], { delete => 1 }], -}; - -my $cmd = shift; - -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 +my $prepare = sub { + # 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, $0); - -exit 0; - -__END__ - -=head1 NAME - -pveum - PVE User Manager - -=head1 SYNOPSIS - -=include synopsis - -=head1 DESCRIPTION - -No description available. +}; -=include pve_copyright +PVE::CLI::pveum->run_cli($read_password, undef, $prepare);