]> git.proxmox.com Git - pmg-api.git/commitdiff
PMG/API2/AccessControl.pm: create_ticket() - return role
authorDietmar Maurer <dietmar@proxmox.com>
Fri, 31 Mar 2017 14:20:21 +0000 (16:20 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 31 Mar 2017 14:20:21 +0000 (16:20 +0200)
PMG/API2/AccessControl.pm
PMG/AccessControl.pm

index 0184685ec3af141fc5a658089957a3b6569d1768..69661c5465418fbfdd45705c6eb4ef447e35e096 100644 (file)
@@ -131,6 +131,7 @@ __PACKAGE__->register_method ({
            username => { type => 'string' },
            ticket => { type => 'string', optional => 1},
            CSRFPreventionToken => { type => 'string', optional => 1 },
+           role => { type => 'string', optional => 1},
        }
     },
     code => sub {
@@ -143,8 +144,9 @@ __PACKAGE__->register_method ({
 
        my $res;
        eval {
-           PMG::AccessControl::check_user_enabled($username);
+           my $role = PMG::AccessControl::check_user_enabled($username);
            $res = &$create_ticket($rpcenv, $username, $param->{password}, $param->{otp});
+           $res->{role} = $role;
        };
        if (my $err = $@) {
            my $clientip = $rpcenv->get_client_ip() || '';
index 2da795d3ca0a93f8473e43403b28667f40660411..98d001969e4b2dab7b40c75d974963821135d23d 100644 (file)
@@ -77,6 +77,7 @@ sub set_user_password {
 }
 
 # test if user exists and is enabled
+# returns: role
 sub check_user_enabled {
     my ($username, $noerr) = @_;
 
@@ -86,11 +87,11 @@ sub check_user_enabled {
 
     if ($realm && $ruid) {
        if ($realm eq 'pam') {
-           return 1 if $ruid eq 'root';
+           return 'root' if $ruid eq 'root';
        } elsif ($realm eq 'pmg') {
            my $usercfg = PMG::UserConfig->new();
            my $data = $usercfg->lookup_user_data($username, $noerr);
-           return 1 if $data && $data->{enable};
+           return $data->{role} if $data && $data->{enable};
        }
     }