The branch, master has been updated via dc2c73feb7ba39e022d3bedf5c0ff0a987cbfe92 (commit) from bd45e1a6373efeb3983c899804c1780a0c0d1d09 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit dc2c73feb7ba39e022d3bedf5c0ff0a987cbfe92 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Thu Sep 22 01:20:59 2011 +0200 tabified Perl code ----------------------------------------------------------------------- Summary of changes: x2goadminserver/cgi-bin/x2gorpcserver.cgi | 55 +- x2goadminserver/lib/x2goadminserver.pm | 22 +- .../lib/x2goadminserver_backend_cipux.pm | 1105 ++++++++++---------- 3 files changed, 587 insertions(+), 595 deletions(-) The diff of changes is: diff --git a/x2goadminserver/cgi-bin/x2gorpcserver.cgi b/x2goadminserver/cgi-bin/x2gorpcserver.cgi index 5b6debe..eb2bc8b 100755 --- a/x2goadminserver/cgi-bin/x2gorpcserver.cgi +++ b/x2goadminserver/cgi-bin/x2gorpcserver.cgi @@ -49,32 +49,32 @@ process_cgi_call({ # Process a CGI call. sub process_cgi_call ($) { - my ($methods) = @_; - - # Get our CGI request information. - my $method = $ENV{'REQUEST_METHOD'}; - my $type = $ENV{'CONTENT_TYPE'}; - my $length = $ENV{'CONTENT_LENGTH'}; - - # Perform some sanity checks. - http_error(405, "Method Not Allowed") unless $method eq "POST"; - http_error(400, "Bad Request") unless $type eq "text/xml"; - http_error(411, "Length Required") unless $length > 0; - - # Fetch our body. - my $body; - my $count = read STDIN, $body, $length; - http_error(400, "Bad Request") unless $count == $length; - - # Serve our request. - my $coder = Frontier::RPC2->new; - send_xml($coder->serve($body, $methods)); + my ($methods) = @_; + + # Get our CGI request information. + my $method = $ENV{'REQUEST_METHOD'}; + my $type = $ENV{'CONTENT_TYPE'}; + my $length = $ENV{'CONTENT_LENGTH'}; + + # Perform some sanity checks. + http_error(405, "Method Not Allowed") unless $method eq "POST"; + http_error(400, "Bad Request") unless $type eq "text/xml"; + http_error(411, "Length Required") unless $length > 0; + + # Fetch our body. + my $body; + my $count = read STDIN, $body, $length; + http_error(400, "Bad Request") unless $count == $length; + + # Serve our request. + my $coder = Frontier::RPC2->new; + send_xml($coder->serve($body, $methods)); } # Send an HTTP error and exit. sub http_error ($$) { - my ($code, $message) = @_; - print <<"EOD"; + my ($code, $message) = @_; + print <<"EOD"; Status: $code $message Content-type: text/html @@ -82,20 +82,19 @@ Content-type: text/html <h1>$code $message</h1> <p>Unexpected error processing XML-RPC request.</p> EOD - exit 0; + exit 0; } # Send an XML document (but don't exit). sub send_xml ($) { - my ($xml_string) = @_; - my $length = length($xml_string); - print <<"EOD"; + my ($xml_string) = @_; + my $length = length($xml_string); + print <<"EOD"; Status: 200 OK Content-type: text/xml Content-length: $length EOD # We want precise control over whitespace here. - print $xml_string; + print $xml_string; } - diff --git a/x2goadminserver/lib/x2goadminserver.pm b/x2goadminserver/lib/x2goadminserver.pm index 20bdc9b..2829419 100644 --- a/x2goadminserver/lib/x2goadminserver.pm +++ b/x2goadminserver/lib/x2goadminserver.pm @@ -28,7 +28,7 @@ use lib "/usr/lib/x2go"; if($backend eq "cipux" ) { - use x2goadminserver_backend_cipux; + use x2goadminserver_backend_cipux; } @@ -39,41 +39,41 @@ our @EXPORT=('x2goadmin_getUsers','x2goadmin_getGroups', 'x2goadmin_getGroupsOfU sub x2goadmin_getUsers { - return getUsers(@_); + return getUsers(@_); } sub x2goadmin_getGroups { - return getGroups(@_); + return getGroups(@_); } sub x2goadmin_getGroupsWithUsers { - return getGroupsWithUsers(@_); + return getGroupsWithUsers(@_); } sub x2goadmin_getGroupsOfUser { - return getGroupsOfUser(@_); + return getGroupsOfUser(@_); } sub x2goadmin_modifyUser { - return modifyUser(@_); + return modifyUser(@_); } sub x2goadmin_modifyGroup { - return modifyGroup(@_); + return modifyGroup(@_); } sub x2goadmin_addGroup { - return addGroup(@_); + return addGroup(@_); } sub x2goadmin_addUser { - return addUser(@_); + return addUser(@_); } sub x2goadmin_removeUsers { - return removeUsers(@_); + return removeUsers(@_); } sub x2goadmin_removeGroups { - return removeGroups(@_); + return removeGroups(@_); } diff --git a/x2goadminserver/lib/x2goadminserver_backend_cipux.pm b/x2goadminserver/lib/x2goadminserver_backend_cipux.pm index 46d7d6e..b175851 100644 --- a/x2goadminserver/lib/x2goadminserver_backend_cipux.pm +++ b/x2goadminserver/lib/x2goadminserver_backend_cipux.pm @@ -35,261 +35,259 @@ my $version='0.0.1'; my $perr; my $rpc=CipUX::RPC::Client->new( { - url => $url, client => $client, version => $version, + url => $url, client => $client, version => $version, } ); use base 'Exporter'; our @EXPORT=('getUsers', 'getGroups', 'getGroupsOfUser', 'getGroupsWithUsers', - 'modifyUser', 'modifyGroup', 'addUser', 'addGroup', 'removeUsers', 'removeGroups'); + 'modifyUser', 'modifyGroup', 'addUser', 'addGroup', 'removeUsers', 'removeGroups'); sub ping { - eval { $rpc->rpc_ping;}; - if($EVAL_ERROR) - { - $perr=$EVAL_ERROR; - return 0; - } - else - { - return 1; - } - + eval { $rpc->rpc_ping;}; + if($EVAL_ERROR) + { + $perr=$EVAL_ERROR; + return 0; + } + else + { + return 1; + } } sub login_srv { - my ($login, $password) = @_; - my $login_info= - { - login => $login, - password => $password - }; - return $rpc->rpc_login($login_info); + my ($login, $password) = @_; + my $login_info= + { + login => $login, + password => $password + }; + return $rpc->rpc_login($login_info); } sub getServerInfo { - my ($login, $password) = @_; - if(!ping) - { - return (0, "SERVERDOWN URL:$url ERROR:$perr"); - } - - if(!login_srv($login, $password)) - { - return (0, "NOACCESS"); - } - return (1,"OK"); + my ($login, $password) = @_; + if(!ping) + { + return (0, "SERVERDOWN URL:$url ERROR:$perr"); + } + + if(!login_srv($login, $password)) + { + return (0, "NOACCESS"); + } + return (1,"OK"); } sub execCommand { - my ($cmd,$param,$value)=@_; - my $msg; - my $status=1; - my $a_hr; - if($param) - { - my $p_hr; - if($value) + my ($cmd,$param,$value)=@_; + my $msg; + my $status=1; + my $a_hr; + if($param) { - $p_hr={object => $param, value => $value,}; + my $p_hr; + if($value) + { + $p_hr={object => $param, value => $value,}; + } + else + { + $p_hr={object => $param,}; + } + $a_hr= $rpc->xmlrpc( { cmd => $cmd, param_hr => $p_hr} ); } else { - $p_hr={object => $param,}; - } - $a_hr= $rpc->xmlrpc( { cmd => $cmd, param_hr => $p_hr} ); - } - else - { - $a_hr= $rpc->xmlrpc( { cmd => $cmd} ); - } - my $cmdres=$a_hr->{'cmdres_r'}; - if($a_hr->{'status'} eq 'FALSE') - { - $status=0; - $rpc->rpc_logout; - $msg='CMDERR '.$a_hr->{'cmd'}.' '.$a_hr->{'problem'}.' '.$a_hr->{'msg'}; - } - return ($status, $cmdres, $msg); + $a_hr= $rpc->xmlrpc( { cmd => $cmd} ); + } + my $cmdres=$a_hr->{'cmdres_r'}; + if($a_hr->{'status'} eq 'FALSE') + { + $status=0; + $rpc->rpc_logout; + $msg='CMDERR '.$a_hr->{'cmd'}.' '.$a_hr->{'problem'}.' '.$a_hr->{'msg'}; + } + return ($status, $cmdres, $msg); } sub getRoleGroups { - my @groups; - my ($status,$cmdres, $msg)=execCommand('cipux_task_list_role_accounts'); - if($status) - { - while( my ($key, $value) = each (%$cmdres)) - { - push(@groups, $key); - } - } - return ($status, $msg, @groups); + my @groups; + my ($status,$cmdres, $msg)=execCommand('cipux_task_list_role_accounts'); + if($status) + { + while( my ($key, $value) = each (%$cmdres)) + { + push(@groups, $key); + } + } + return ($status, $msg, @groups); } sub changeUser { - my ($user,@args)=@_; - my @newgrp; - my @obsgrp; - foreach (@args) - { - my @cmd=split(":",$_); - if(@cmd[0] eq "fname") - { - my ($status,$cmdres, $msg)=execCommand('cipux_task_change_user_account_firstname',$user,@cmd[1]); - if(!$status) - { - return $msg; - } - } - if(@cmd[0] eq "lname") - { - my ($status,$cmdres, $msg)=execCommand('cipux_task_change_user_account_lastname',$user,@cmd[1]); - if(!$status) - { - return $msg; - } - } - if(@cmd[0] eq "password") - { - my ($status,$cmdres, $msg)=execCommand('cipux_task_change_user_account_password',$user,@cmd[1]); - if(!$status) - { - return $msg; - } - } - if(@cmd[0] eq "newgroups") - { - @newgrp=split(";",@cmd[1]); - } - if(@cmd[0] eq "obsoletegroups") - { - @obsgrp=split(";",@cmd[1]); - } - } - if(@obsgrp || @newgrp) - { - my ($rstatus,$rmsg,@rolegroups)=getRoleGroups(); - if(!$rstatus) - { - return $rmsg; - } - foreach(@obsgrp) - { - my $grp=$_; - if( grep { $_ eq $grp} @rolegroups) - { - my ($status,$cmdres, $msg)=execCommand('cipux_task_remove_member_from_role_account',$grp,$user); - if(!$status) - { - return $msg; - } - } - else - { - my ($status,$cmdres, $msg)=execCommand('cipux_task_remove_member_from_class_share',$grp,$user); - if(!$status) - { - return $msg; - } - } - } - foreach(@newgrp) - { - my $grp=$_; - if( grep { $_ eq $grp} @rolegroups) - { - my ($status,$cmdres, $msg)=execCommand('cipux_task_add_member_to_role_account',$grp,$user); - if(!$status) + my ($user,@args)=@_; + my @newgrp; + my @obsgrp; + foreach (@args) { - return $msg; - } - } - else - { - my ($status,$cmdres, $msg)=execCommand('cipux_task_add_member_to_class_share',$grp,$user); - if(!$status) + my @cmd=split(":",$_); + if(@cmd[0] eq "fname") + { + my ($status,$cmdres, $msg)=execCommand('cipux_task_change_user_account_firstname',$user,@cmd[1]); + if(!$status) + { + return $msg; + } + } + if(@cmd[0] eq "lname") + { + my ($status,$cmdres, $msg)=execCommand('cipux_task_change_user_account_lastname',$user,@cmd[1]); + if(!$status) + { + return $msg; + } + } + if(@cmd[0] eq "password") + { + my ($status,$cmdres, $msg)=execCommand('cipux_task_change_user_account_password',$user,@cmd[1]); + if(!$status) + { + return $msg; + } + } + if(@cmd[0] eq "newgroups") + { + @newgrp=split(";",@cmd[1]); + } + if(@cmd[0] eq "obsoletegroups") + { + @obsgrp=split(";",@cmd[1]); + } + } + if(@obsgrp || @newgrp) { - return $msg; - } - } - } - } - $rpc->rpc_logout; - return "OK"; -} + my ($rstatus,$rmsg,@rolegroups)=getRoleGroups(); + if(!$rstatus) + { + return $rmsg; + } + foreach(@obsgrp) + { + my $grp=$_; + if( grep { $_ eq $grp} @rolegroups) + { + my ($status,$cmdres, $msg)=execCommand('cipux_task_remove_member_from_role_account',$grp,$user); + if(!$status) + { + return $msg; + } + } + else + { + my ($status,$cmdres, $msg)=execCommand('cipux_task_remove_member_from_class_share',$grp,$user); + if(!$status) + { + return $msg; + } + } + } + foreach(@newgrp) + { + my $grp=$_; + if( grep { $_ eq $grp} @rolegroups) + { + my ($status,$cmdres, $msg)=execCommand('cipux_task_add_member_to_role_account',$grp,$user); + if(!$status) + { + return $msg; + } + } + else + { + my ($status,$cmdres, $msg)=execCommand('cipux_task_add_member_to_class_share',$grp,$user); + if(!$status) + { + return $msg; + } + } + } + } + $rpc->rpc_logout; + return "OK"; +} sub modifyUser { - - my ($login,$password,$user, @args)=@_; - my $retmsg="OK"; - - my ($status,$str)=getServerInfo($login, $password); - if(!$status) - { - return $str; - } - return changeUser($user,@args); + my ($login,$password,$user, @args)=@_; + my $retmsg="OK"; + + my ($status,$str)=getServerInfo($login, $password); + if(!$status) + { + return $str; + } + return changeUser($user,@args); } sub addUser { - my ($login,$password,$user, @args)=@_; - my $retmsg="OK"; - - my ($status,$str)=getServerInfo($login, $password); - if(!$status) - { - return $str; - } - my $res; - my $msg; - ($status,$res, $msg)=execCommand('cipux_task_create_user_account',$user); - if(!$status) - { - return $msg; - } - return changeUser($user,@args); + my ($login,$password,$user, @args)=@_; + my $retmsg="OK"; + + my ($status,$str)=getServerInfo($login, $password); + if(!$status) + { + return $str; + } + my $res; + my $msg; + ($status,$res, $msg)=execCommand('cipux_task_create_user_account',$user); + if(!$status) + { + return $msg; + } + return changeUser($user,@args); } sub getUsers { - my ($login, $password) = @_; - my ($status,$str)=getServerInfo($login, $password); - if(!$status) - { - return $str; - } - $str=userAttributes(); - my $cmdres; - my $msg; - ($status,$cmdres, $msg)=execCommand('cipux_task_retrieve_all_user_account_lastname_firstname'); - if(!$status) - { - return $msg; - } - $str=$str."\nBEGIN_USERS"; - ($status,$msg)=getAllUsers(); - if(! $status) - { - return $msg; - } - $str=$str.$msg."\nEND_USERS"; - - $rpc->rpc_logout; - return $str; + my ($login, $password) = @_; + my ($status,$str)=getServerInfo($login, $password); + if(!$status) + { + return $str; + } + $str=userAttributes(); + my $cmdres; + my $msg; + ($status,$cmdres, $msg)=execCommand('cipux_task_retrieve_all_user_account_lastname_firstname'); + if(!$status) + { + return $msg; + } + $str=$str."\nBEGIN_USERS"; + ($status,$msg)=getAllUsers(); + if(! $status) + { + return $msg; + } + $str=$str.$msg."\nEND_USERS"; + + $rpc->rpc_logout; + return $str; } sub userAttributes { - return "BEGIN_USERATTR\ + return "BEGIN_USERATTR\ uid:edit=0;unicode=0\ firstname:edit=1;unicode=0\ lastname:edit=1;unicode=0\ @@ -298,7 +296,7 @@ END_USERATTR"; sub groupAttributes { - return "BEGIN_GROUPATTR\ + return "BEGIN_GROUPATTR\ name:edit=0;unicode=0\ type:edit=0;vars=class_share,course_share,lecture_share,reading_share,seminar_share,studygroup_share,team_share,tutorial_share,workshop_share\ password:edit=1;oncreate=0\ @@ -308,400 +306,395 @@ END_GROUPATTR"; sub getGroups { - my ($login, $password) = @_; - my ($status,$str)=getServerInfo($login, $password); - if(!$status) - { - return $str; - } - $str=groupAttributes(); - my $cmdres; - my $msg; - $str=$str."\nBEGIN_USERS"; - ($status,$msg)=getAllUsers(); - if(! $status) - { - return $msg; - } - $str=$str.$msg."\nEND_USERS"; - $str=$str."\nBEGIN_GROUPS\n"; - my $res; - ($status,$msg,$res)=getAllGroupsWithUsers(); - if(!$status) - { - return $msg; - } - $str=$str.$res; - $str=$str."\nEND_GROUPS\n"; - - $rpc->rpc_logout; - return $str; + my ($login, $password) = @_; + my ($status,$str)=getServerInfo($login, $password); + if(!$status) + { + return $str; + } + $str=groupAttributes(); + my $cmdres; + my $msg; + $str=$str."\nBEGIN_USERS"; + ($status,$msg)=getAllUsers(); + if(! $status) + { + return $msg; + } + $str=$str.$msg."\nEND_USERS"; + $str=$str."\nBEGIN_GROUPS\n"; + my $res; + ($status,$msg,$res)=getAllGroupsWithUsers(); + if(!$status) + { + return $msg; + } + $str=$str.$res; + $str=$str."\nEND_GROUPS\n"; + + $rpc->rpc_logout; + return $str; } sub getAllUsers { - my ($status,$cmdres, $msg)=execCommand('cipux_task_retrieve_all_user_account_lastname_firstname'); - if(!$status) - { - return ($status, $msg); - } - my $str; - while( my ($key, $value) = each (%$cmdres)) - { - if($value->{'cipuxFirstname'}[0] ne "Role" && $value->{'cipuxLastname'}[0] ne "Account") - { - $str=$str."\nUID=".$value->{'uid'}[0].":FNAME=".$value->{'cipuxFirstname'}[0].":LNAME=".$value->{'cipuxLastname'}[0]; - } - } - return ($status, $str); + my ($status,$cmdres, $msg)=execCommand('cipux_task_retrieve_all_user_account_lastname_firstname'); + if(!$status) + { + return ($status, $msg); + } + my $str; + while( my ($key, $value) = each (%$cmdres)) + { + if($value->{'cipuxFirstname'}[0] ne "Role" && $value->{'cipuxLastname'}[0] ne "Account") + { + $str=$str."\nUID=".$value->{'uid'}[0].":FNAME=".$value->{'cipuxFirstname'}[0].":LNAME=".$value->{'cipuxLastname'}[0]; + } + } + return ($status, $str); } sub getGroupsWithUsers { - my ($login, $password) = @_; - my ($status,$str)=getServerInfo($login, $password); - if(!$status) - { - return $str; - } - $str=userAttributes; - my $cmdres; - my $msg; - $str=$str."\nBEGIN_USERS"; - ($status,$msg)=getAllUsers(); - if(! $status) - { - return $msg; - } - $str=$str.$msg."\nEND_USERS"; - $str=$str."\nBEGIN_GROUPS\n"; - my $res; - ($status,$msg,$res)=getAllGroupsWithUsers(); - if(!$status) - { - return $msg; - } - $str=$str.$res; - $str=$str."\nEND_GROUPS\n"; - - $rpc->rpc_logout; - return $str; + my ($login, $password) = @_; + my ($status,$str)=getServerInfo($login, $password); + if(!$status) + { + return $str; + } + $str=userAttributes; + my $cmdres; + my $msg; + $str=$str."\nBEGIN_USERS"; + ($status,$msg)=getAllUsers(); + if(! $status) + { + return $msg; + } + $str=$str.$msg."\nEND_USERS"; + $str=$str."\nBEGIN_GROUPS\n"; + my $res; + ($status,$msg,$res)=getAllGroupsWithUsers(); + if(!$status) + { + return $msg; + } + $str=$str.$res; + $str=$str."\nEND_GROUPS\n"; + + $rpc->rpc_logout; + return $str; } sub getAllGroupsWithUsers { - my $str; - my ($status,$cmdres_all_tasks, $msg)=execCommand('cipux_task_list_tasks'); - if(!$status) - { - return ($status, $msg, $str); - } - while( my ($key, $value) = each (%$cmdres_all_tasks)) - { - if($key =~ m/list/ && $key =~ m/accounts/ && - $key ne "cipux_task_list_user_accounts" && - $key ne "cipux_task_list_role_accounts" && - $key ne "cipux_task_list_skel_accounts") - { - my $cmdres; - ($status,$cmdres, $msg)=execCommand($key); - if(!$status) - { - return ($status, $msg, $str); - } - while( my ($gkey, $gvalue) = each (%$cmdres)) - { - my $aref=$gvalue->{'memberUid'}; - $str=$str."\nNAME=".$gkey.":TYPE=role:MEMBERS=".join(";",@$aref); - } - } - if($key =~ m/list/ && $key =~ m/shares/) - { - my $cmdres; - ($status,$cmdres, $msg)=execCommand($key); - if(!$status) - { - return ($status, $msg, $str); - } - while( my ($gkey, $gvalue) = each (%$cmdres)) - { - my $sharetype=(split("_",$key))[3]; - my $cmdshareres; - ($status,$cmdshareres, $msg)=execCommand("cipux_task_list_members_of_$sharetype"."_share", $gkey); - if(!$status) - { - return ($status, $msg, $str); - } - while( my ($gkey, $gvalue) = each (%$cmdshareres)) - { - my $aref=$gvalue->{'memberUid'}; - $str=$str."\nNAME=".$gkey.":TYPE=".$sharetype."_share:MEMBERS=".join(";",@$aref); - } - } - } - } - return ($status, $msg, $str); + my $str; + my ($status,$cmdres_all_tasks, $msg)=execCommand('cipux_task_list_tasks'); + if(!$status) + { + return ($status, $msg, $str); + } + while( my ($key, $value) = each (%$cmdres_all_tasks)) + { + if($key =~ m/list/ && $key =~ m/accounts/ && + $key ne "cipux_task_list_user_accounts" && + $key ne "cipux_task_list_role_accounts" && + $key ne "cipux_task_list_skel_accounts") + { + my $cmdres; + ($status,$cmdres, $msg)=execCommand($key); + if(!$status) + { + return ($status, $msg, $str); + } + while( my ($gkey, $gvalue) = each (%$cmdres)) + { + my $aref=$gvalue->{'memberUid'}; + $str=$str."\nNAME=".$gkey.":TYPE=role:MEMBERS=".join(";",@$aref); + } + } + if($key =~ m/list/ && $key =~ m/shares/) + { + my $cmdres; + ($status,$cmdres, $msg)=execCommand($key); + if(!$status) + { + return ($status, $msg, $str); + } + while( my ($gkey, $gvalue) = each (%$cmdres)) + { + my $sharetype=(split("_",$key))[3]; + my $cmdshareres; + ($status,$cmdshareres, $msg)=execCommand("cipux_task_list_members_of_$sharetype"."_share", $gkey); + if(!$status) + { + return ($status, $msg, $str); + } + while( my ($gkey, $gvalue) = each (%$cmdshareres)) + { + my $aref=$gvalue->{'memberUid'}; + $str=$str."\nNAME=".$gkey.":TYPE=".$sharetype."_share:MEMBERS=".join(";",@$aref); + } + } + } + } + return ($status, $msg, $str); } sub getGroupsOfUser { - my ($login, $password, $user) = @_; - my ($status,$str)=getServerInfo($login, $password); - - if(!$status) - { - return $str; - } - $str=""; - - my $cmdres_all_tasks; - my $msg; - ($status,$cmdres_all_tasks, $msg)=execCommand('cipux_task_list_tasks'); - if(!$status) - { - return $msg; - } - - while( my ($key, $value) = each (%$cmdres_all_tasks)) - { - if($key =~ m/list/ && $key =~ m/accounts/ && - $key ne "cipux_task_list_user_accounts" && - $key ne "cipux_task_list_role_accounts" && - $key ne "cipux_task_list_skel_accounts") - { - my $cmdres; - ($status,$cmdres, $msg)=execCommand($key); - if(!$status) - { - return $msg; - } - while( my ($gkey, $gvalue) = each (%$cmdres)) - { - my $aref=$gvalue->{'memberUid'}; - my $exists='0'; - - if( grep { $_ eq $user} @$aref) - { - $exists='1'; - } - $str=$str."\n".$gkey.":$exists"; - } - } - if($key =~ m/list/ && $key =~ m/shares/) - { - my $cmdres; - ($status,$cmdres, $msg)=execCommand($key); - if(!$status) - { - return $msg; - } - while( my ($gkey, $gvalue) = each (%$cmdres)) - { - my $sharetype=(split("_",$key))[3]; - - my $cmdshareres; - ($status,$cmdshareres, $msg)=execCommand("cipux_task_list_members_of_$sharetype"."_share", $gkey); - if(!$status) - { - return $msg; - } - while( my ($gkey, $gvalue) = each (%$cmdshareres)) - { - my $aref=$gvalue->{'memberUid'}; - my $exists='0'; - - if( grep { $_ eq $user} @$aref) - { - $exists='1'; - } - $str=$str."\n".$gkey.":$exists"; - } - } - - } - } - $rpc->rpc_logout; - return $str; + my ($login, $password, $user) = @_; + my ($status,$str)=getServerInfo($login, $password); + + if(!$status) + { + return $str; + } + $str=""; + + my $cmdres_all_tasks; + my $msg; + ($status,$cmdres_all_tasks, $msg)=execCommand('cipux_task_list_tasks'); + if(!$status) + { + return $msg; + } + + while( my ($key, $value) = each (%$cmdres_all_tasks)) + { + if($key =~ m/list/ && $key =~ m/accounts/ && + $key ne "cipux_task_list_user_accounts" && + $key ne "cipux_task_list_role_accounts" && + $key ne "cipux_task_list_skel_accounts") + { + my $cmdres; + ($status,$cmdres, $msg)=execCommand($key); + if(!$status) + { + return $msg; + } + while( my ($gkey, $gvalue) = each (%$cmdres)) + { + my $aref=$gvalue->{'memberUid'}; + my $exists='0'; + + if( grep { $_ eq $user} @$aref) + { + $exists='1'; + } + $str=$str."\n".$gkey.":$exists"; + } + } + if($key =~ m/list/ && $key =~ m/shares/) + { + my $cmdres; + ($status,$cmdres, $msg)=execCommand($key); + if(!$status) + { + return $msg; + } + while( my ($gkey, $gvalue) = each (%$cmdres)) + { + my $sharetype=(split("_",$key))[3]; + + my $cmdshareres; + ($status,$cmdshareres, $msg)=execCommand("cipux_task_list_members_of_$sharetype"."_share", $gkey); + if(!$status) + { + return $msg; + } + while( my ($gkey, $gvalue) = each (%$cmdshareres)) + { + my $aref=$gvalue->{'memberUid'}; + my $exists='0'; + + if( grep { $_ eq $user} @$aref) + { + $exists='1'; + } + $str=$str."\n".$gkey.":$exists"; + } + } + } + } + $rpc->rpc_logout; + return $str; } sub removeUsers { - my ($login, $password, $users) = @_; - my ($status,$str)=getServerInfo($login, $password); - if(!$status) - { - return $str; - } - my @ulist=split(";",$users); - foreach(@ulist) - { - my ($tstatus,$res, $msg)=execCommand("cipux_task_destroy_user_account", $_); - if(!$tstatus) - { - return $msg; - } - } - $rpc->rpc_logout; - return "OK"; + my ($login, $password, $users) = @_; + my ($status,$str)=getServerInfo($login, $password); + if(!$status) + { + return $str; + } + my @ulist=split(";",$users); + foreach(@ulist) + { + my ($tstatus,$res, $msg)=execCommand("cipux_task_destroy_user_account", $_); + if(!$tstatus) + { + return $msg; + } + } + $rpc->rpc_logout; + return "OK"; } sub removeGroups { - my ($login, $password, $groups) = @_; - my ($status,$str)=getServerInfo($login, $password); - if(!$status) - { - return $str; - } - - my @rolegroups; - my $msg; - ($status, $msg, @rolegroups)=getRoleGroups; - if(!$status) - { - return $str; - } - - my @glist=split(";",$groups); - foreach(@glist) - { - my $grp=$_; - if( grep { $_ eq $grp} @rolegroups) - { - #skip role group - } - else - { - my ($tstatus,$res, $msg)=execCommand("cipux_task_destroy_class_share", $grp); - if(!$tstatus) - { - return $msg; - } - } - } - $rpc->rpc_logout; - return "OK"; + my ($login, $password, $groups) = @_; + my ($status,$str)=getServerInfo($login, $password); + if(!$status) + { + return $str; + } + + my @rolegroups; + my $msg; + ($status, $msg, @rolegroups)=getRoleGroups; + if(!$status) + { + return $str; + } + + my @glist=split(";",$groups); + foreach(@glist) + { + my $grp=$_; + if( grep { $_ eq $grp} @rolegroups) + { + #skip role group + } + else + { + my ($tstatus,$res, $msg)=execCommand("cipux_task_destroy_class_share", $grp); + if(!$tstatus) + { + return $msg; + } + } + } + $rpc->rpc_logout; + return "OK"; } sub modifyGroup { - - my ($login,$password,$group,@args)=@_; - my $retmsg="OK"; - - my ($status,$str)=getServerInfo($login, $password); - if(!$status) - { - return $str; - } - return changeGroup($group,@args); + my ($login,$password,$group,@args)=@_; + my $retmsg="OK"; + + my ($status,$str)=getServerInfo($login, $password); + if(!$status) + { + return $str; + } + return changeGroup($group,@args); } sub addGroup { - - my ($login,$password,$group,@args)=@_; - my $retmsg="OK"; - - my ($status,$str)=getServerInfo($login, $password); - if(!$status) - { - return $str; - } - my $type; - foreach (@args) - { - my @cmd=split(":",$_); - if(@cmd[0] eq "type") - { - $type=@cmd[1]; - } - } - my $res; - my $msg; - ($status,$res, $msg)=execCommand('cipux_task_create_'.$type,$group); - if(!$status) - { - return $msg; - } - return $retmsg; + my ($login,$password,$group,@args)=@_; + my $retmsg="OK"; + + my ($status,$str)=getServerInfo($login, $password); + if(!$status) + { + return $str; + } + my $type; + foreach (@args) + { + my @cmd=split(":",$_); + if(@cmd[0] eq "type") + { + $type=@cmd[1]; + } + } + my $res; + my $msg; + ($status,$res, $msg)=execCommand('cipux_task_create_'.$type,$group); + if(!$status) + { + return $msg; + } + return $retmsg; } sub changeGroup { - my ($group,@args)=@_; - my @newusers; - my @obsusers; - my $type; - my $password; - my $str="OK"; - foreach (@args) - { - my @cmd=split(":",$_); - if(@cmd[0] eq "password") - { - $password=@cmd[1]; - } - if(@cmd[0] eq "type") - { - $type=@cmd[1]; - - } - if(@cmd[0] eq "newmembers") - { - @newusers=split(";",@cmd[1]); - } - if(@cmd[0] eq "obsoletemembers") - { - @obsusers=split(";",@cmd[1]); - - } - } - if($password && $type ne 'role') - { - my ($status,$cmdres, $msg)=execCommand('cipux_task_change_'.$type.'_password',$group,$password); - if(!$status) - { - return $msg; - } - } - foreach(@obsusers) - { - my ($status,$cmdres, $msg); - if($type eq 'role' ) - { - ($status,$cmdres, $msg)=execCommand('cipux_task_remove_member_from_role_account',$group,$_); - } - else + my ($group,@args)=@_; + my @newusers; + my @obsusers; + my $type; + my $password; + my $str="OK"; + foreach (@args) { - ($status,$cmdres, $msg)=execCommand('cipux_task_remove_member_from_'.$type,$group,$_); + my @cmd=split(":",$_); + if(@cmd[0] eq "password") + { + $password=@cmd[1]; + } + if(@cmd[0] eq "type") + { + $type=@cmd[1]; + } + if(@cmd[0] eq "newmembers") + { + @newusers=split(";",@cmd[1]); + } + if(@cmd[0] eq "obsoletemembers") + { + @obsusers=split(";",@cmd[1]); + } } - if(!$status) - { - return $msg; - } - } - foreach(@newusers) - { - my ($status,$cmdres, $msg); - if($type eq 'role' ) + if($password && $type ne 'role') { - ($status,$cmdres, $msg)=execCommand('cipux_task_add_member_to_role_account',$group,$_); - } - else + my ($status,$cmdres, $msg)=execCommand('cipux_task_change_'.$type.'_password',$group,$password); + if(!$status) + { + return $msg; + } + } + foreach(@obsusers) { - ($status,$cmdres, $msg)=execCommand('cipux_task_add_member_to_'.$type,$group,$_); + my ($status,$cmdres, $msg); + if($type eq 'role' ) + { + ($status,$cmdres, $msg)=execCommand('cipux_task_remove_member_from_role_account',$group,$_); + } + else + { + ($status,$cmdres, $msg)=execCommand('cipux_task_remove_member_from_'.$type,$group,$_); + } + if(!$status) + { + return $msg; + } } - if(!$status) + foreach(@newusers) { - return $msg; - } - } - $rpc->rpc_logout; - return $str; -} + my ($status,$cmdres, $msg); + if($type eq 'role' ) + { + ($status,$cmdres, $msg)=execCommand('cipux_task_add_member_to_role_account',$group,$_); + } + else + { + ($status,$cmdres, $msg)=execCommand('cipux_task_add_member_to_'.$type,$group,$_); + } + if(!$status) + { + return $msg; + } + } + $rpc->rpc_logout; + return $str; +} hooks/post-receive -- x2goadmincenter.git (X2go Administration Center) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "x2goadmincenter.git" (X2go Administration Center).