]> git.proxmox.com Git - pve-access-control.git/blame - test/perm-test7.pl
d/control: bump debhelper compat to >= 12
[pve-access-control.git] / test / perm-test7.pl
CommitLineData
8ade28e6
DM
1#!/usr/bin/perl -w
2
3use strict;
4use PVE::Tools;
5use PVE::AccessControl;
6use PVE::RPCEnvironment;
7use Getopt::Long;
8
9my $rpcenv = PVE::RPCEnvironment->init('cli');
10
11my $cfgfn = "test7.cfg";
12$rpcenv->init_request(userconfig => $cfgfn);
13
14sub check_roles {
15 my ($user, $path, $expected_result) = @_;
16
7e8bcaa7
FG
17 my $roles = PVE::AccessControl::roles($rpcenv->{user_cfg}, $user, $path);
18 my $res = join(',', sort keys %$roles);
8ade28e6
DM
19
20 die "unexpected result\nneed '${expected_result}'\ngot '$res'\n"
21 if $res ne $expected_result;
22
23 print "ROLES:$path:$user:$res\n";
24}
25
a31f1d85
FG
26sub check_permissions {
27 my ($user, $path, $expected_result) = @_;
28
29 my $perm = $rpcenv->permissions($user, $path);
30 my $res = join(',', sort keys %$perm);
31
32 die "unexpected result\nneed '${expected_result}'\ngot '$res'\n"
33 if $res ne $expected_result;
34
35 $perm = $rpcenv->permissions($user, $path);
36 $res = join(',', sort keys %$perm);
37 die "unexpected result (compiled)\nneed '${expected_result}'\ngot '$res'\n"
38 if $res ne $expected_result;
39
40 print "PERM:$path:$user:$res\n";
41}
8ade28e6
DM
42
43check_roles('User1@pve', '/vms', 'Role1');
44check_roles('User1@pve', '/vms/200', 'Role1');
a31f1d85
FG
45
46# no pool
47check_roles('User1@pve', '/vms/100', 'Role1');
48# with pool
49check_permissions('User1@pve', '/vms/100', '');
8ade28e6
DM
50
51print "all tests passed\n";
52
53exit (0);