]> git.proxmox.com Git - pve-access-control.git/blame - PVE/CLI/pveum.pm
pveum token: rename 'update' subcommand to 'modify' for consistency
[pve-access-control.git] / PVE / CLI / pveum.pm
CommitLineData
09281ad7
DM
1package PVE::CLI::pveum;
2
3use strict;
4use warnings;
042eaa3d 5
09281ad7
DM
6use PVE::RPCEnvironment;
7use PVE::API2::User;
8use PVE::API2::Group;
9use PVE::API2::Role;
10use PVE::API2::ACL;
11use PVE::API2::AccessControl;
369851ac 12use PVE::CLIFormatter;
09281ad7 13use PVE::CLIHandler;
b34d76e7 14use PVE::PTY;
369851ac 15use PVE::RESTHandler;
09281ad7
DM
16
17use base qw(PVE::CLIHandler);
18
e623414a
DM
19sub setup_environment {
20 PVE::RPCEnvironment->setup_default_cli_env();
21}
22
b34d76e7
DC
23sub param_mapping {
24 my ($name) = @_;
98007830 25
b34d76e7
DC
26 my $mapping = {
27 'change_password' => [
28 PVE::CLIHandler::get_standard_mapping('pve-password'),
29 ],
30 'create_ticket' => [
31 PVE::CLIHandler::get_standard_mapping('pve-password', {
32 func => sub {
33 # do not accept values given on cmdline
34 return PVE::PTY::read_password('Enter password: ');
35 },
36 }),
37 ]
38 };
39
40 return $mapping->{$name};
98007830
DM
41}
42
369851ac
FG
43my $print_api_result = sub {
44 my ($data, $schema, $options) = @_;
45 PVE::CLIFormatter::print_api_result($data, $schema, undef, $options);
46};
47
09281ad7 48our $cmddef = {
1e41cdc9
PA
49 user => {
50 add => [ 'PVE::API2::User', 'create_user', ['userid'] ],
51 modify => [ 'PVE::API2::User', 'update_user', ['userid'] ],
52 delete => [ 'PVE::API2::User', 'delete_user', ['userid'] ],
369851ac 53 list => [ 'PVE::API2::User', 'index', [], {}, $print_api_result, $PVE::RESTHandler::standard_output_options],
084c149a
FG
54 token => {
55 add => [ 'PVE::API2::User', 'generate_token', ['userid', 'tokenid'], {}, $print_api_result, $PVE::RESTHandler::standard_output_options ],
ccaecac1 56 modify => [ 'PVE::API2::User', 'update_token_info', ['userid', 'tokenid'], {}, $print_api_result, $PVE::RESTHandler::standard_output_options ],
084c149a
FG
57 remove => [ 'PVE::API2::User', 'remove_token', ['userid', 'tokenid'], {}, $print_api_result, $PVE::RESTHandler::standard_output_options ],
58 list => [ 'PVE::API2::User', 'token_index', ['userid'], {}, $print_api_result, $PVE::RESTHandler::standard_output_options],
59 }
1e41cdc9
PA
60 },
61 group => {
62 add => [ 'PVE::API2::Group', 'create_group', ['groupid'] ],
63 modify => [ 'PVE::API2::Group', 'update_group', ['groupid'] ],
64 delete => [ 'PVE::API2::Group', 'delete_group', ['groupid'] ],
369851ac 65 list => [ 'PVE::API2::Group', 'index', [], {}, $print_api_result, $PVE::RESTHandler::standard_output_options],
1e41cdc9
PA
66 },
67 role => {
68 add => [ 'PVE::API2::Role', 'create_role', ['roleid'] ],
69 modify => [ 'PVE::API2::Role', 'update_role', ['roleid'] ],
70 delete => [ 'PVE::API2::Role', 'delete_role', ['roleid'] ],
369851ac 71 list => [ 'PVE::API2::Role', 'index', [], {}, $print_api_result, $PVE::RESTHandler::standard_output_options],
1e41cdc9
PA
72 },
73 acl => {
74 modify => [ 'PVE::API2::ACL', 'update_acl', ['path'], { delete => 0 }],
75 delete => [ 'PVE::API2::ACL', 'update_acl', ['path'], { delete => 1 }],
369851ac 76 list => [ 'PVE::API2::ACL', 'read_acl', [], {}, $print_api_result, $PVE::RESTHandler::standard_output_options],
1e41cdc9 77 },
09281ad7
DM
78 ticket => [ 'PVE::API2::AccessControl', 'create_ticket', ['username'], undef,
79 sub {
80 my ($res) = @_;
81 print "$res->{ticket}\n";
82 }],
83
765305e2 84 passwd => [ 'PVE::API2::AccessControl', 'change_password', ['userid'] ],
09281ad7 85
1e41cdc9
PA
86 useradd => { alias => 'user add' },
87 usermod => { alias => 'user modify' },
88 userdel => { alias => 'user delete' },
09281ad7 89
1e41cdc9
PA
90 groupadd => { alias => 'group add' },
91 groupmod => { alias => 'group modify' },
92 groupdel => { alias => 'group delete' },
09281ad7 93
1e41cdc9
PA
94 roleadd => { alias => 'role add' },
95 rolemod => { alias => 'role modify' },
96 roledel => { alias => 'role delete' },
09281ad7 97
1e41cdc9
PA
98 aclmod => { alias => 'acl modify' },
99 acldel => { alias => 'acl delete' },
09281ad7
DM
100};
101
1021;