X-Git-Url: https://git.proxmox.com/?p=pve-access-control.git;a=blobdiff_plain;f=pveum;h=196fb3a614d5f71c1b4057498d8ac641a80d3529;hp=2c468d05cc68f1aa31630739bfbc9dd065aa7761;hb=refs%2Fheads%2Fstable-4;hpb=f3957883eb42ad3f701458634874fa98b61bc3fa;ds=sidebyside diff --git a/pveum b/pveum index 2c468d0..196fb3a 100755 --- a/pveum +++ b/pveum @@ -1,99 +1,13 @@ -#!/usr/bin/perl -w +#!/usr/bin/perl use strict; -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 warnings; -use base qw(PVE::CLIHandler); +use PVE::CLI::pveum; -use Data::Dumper; # fixme: remove - -$ENV{'PATH'} = '/sbin:/bin:/usr/sbin:/usr/bin'; - -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}); - - my $term = new Term::ReadLine ('pveum'); - my $attribs = $term->Attribs; - $attribs->{redisplay_function} = $attribs->{shadow_redisplay}; - my $input = $term->readline('Enter new password: '); - my $conf = $term->readline('Retype new password: '); - die "Passwords do not match.\n" if ($input ne $conf); - return $input; -}; - -my $cmddef = { - ticket => [ 'PVE::API2::AccessControl', 'create_ticket', ['username'], undef, - sub { - my ($res) = @_; - print "$res->{ticket}\n"; - }], - 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', 'roles'], { delete => 0 }], - acldel => [ 'PVE::API2::ACL', 'update_acl', ['path', 'roles'], { delete => 1 }], +my $prepare = sub { + # autmatically generate the private key if it does not already exists + PVE::Cluster::gen_auth_key(); }; -my $cmd = shift; - -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_handler(prepare => $prepare);