allow user to see his own entry
authorDietmar Maurer <dietmar@proxmox.com>
Fri, 13 Jan 2012 12:31:18 +0000 (13:31 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 13 Jan 2012 12:31:18 +0000 (13:31 +0100)
PVE/API2/User.pm

index 4593567..8b06364 100644 (file)
@@ -36,6 +36,7 @@ __PACKAGE__->register_method ({
     path => '', 
     method => 'GET',
     description => "User index.",
     path => '', 
     method => 'GET',
     description => "User index.",
+    permissions => { user => 'all' },
     parameters => {
        additionalProperties => 0,
        properties => {
     parameters => {
        additionalProperties => 0,
        properties => {
@@ -59,13 +60,17 @@ __PACKAGE__->register_method ({
     code => sub {
        my ($param) = @_;
     
     code => sub {
        my ($param) = @_;
     
+       my $rpcenv = PVE::RPCEnvironment::get();
+       my $authuser = $rpcenv->get_user();
+
        my $res = [];
 
        my $usercfg = cfs_read_file("user.cfg");
  
        foreach my $user (keys %{$usercfg->{users}}) {
        my $res = [];
 
        my $usercfg = cfs_read_file("user.cfg");
  
        foreach my $user (keys %{$usercfg->{users}}) {
-           next if $user eq 'root';
-           
+           # root sees all entries, a user only sees its own entry
+           next if $authuser ne 'root@pam' && $user ne $authuser;
+
            my $entry = &$extract_user_data($usercfg->{users}->{$user});
 
            if (defined($param->{enabled})) {
            my $entry = &$extract_user_data($usercfg->{users}->{$user});
 
            if (defined($param->{enabled})) {