version 1.535, 2017/03/20 13:53:22
|
version 1.536, 2017/05/09 03:04:21
|
Line 229 my %trust = (
|
Line 229 my %trust = (
|
dump => {remote => 1, enroll => 1, domroles => 1}, |
dump => {remote => 1, enroll => 1, domroles => 1}, |
edit => {institutiononly => 1}, #not used currently |
edit => {institutiononly => 1}, #not used currently |
eget => {remote => 1, domroles => 1, enroll => 1}, #not used currently |
eget => {remote => 1, domroles => 1, enroll => 1}, #not used currently |
|
egetdom => {remote => 1, domroles => 1, enroll => 1, }, |
ekey => {}, #not used currently |
ekey => {}, #not used currently |
exit => {anywhere => 1}, |
exit => {anywhere => 1}, |
fetchuserfile => {remote => 1, enroll => 1}, |
fetchuserfile => {remote => 1, enroll => 1}, |
Line 3393 sub get_profile_entry {
|
Line 3394 sub get_profile_entry {
|
# |
# |
# Parameters: |
# Parameters: |
# $cmd - Command keyword of request (eget). |
# $cmd - Command keyword of request (eget). |
# $tail - Tail of the command. See GetProfileEntry
# for more information about this. |
# $tail - Tail of the command. See GetProfileEntry |
|
# for more information about this. |
# $client - File open on the client. |
# $client - File open on the client. |
# Returns: |
# Returns: |
# 1 - Continue processing |
# 1 - Continue processing |
Line 4876 sub get_domain_handler {
|
Line 4878 sub get_domain_handler {
|
my ($cmd, $tail, $client) = @_; |
my ($cmd, $tail, $client) = @_; |
|
|
|
|
my $userinput = "$client:$tail"; |
my $userinput = "$cmd:$tail"; |
|
|
|
my ($udom,$namespace,$what)=split(/:/,$tail,3); |
|
chomp($what); |
|
if ($namespace =~ /^enc/) { |
|
&Failure( $client, "refused\n", $userinput); |
|
} else { |
|
my @queries=split(/\&/,$what); |
|
my $qresult=''; |
|
my $hashref = &tie_domain_hash($udom, "$namespace", &GDBM_READER()); |
|
if ($hashref) { |
|
for (my $i=0;$i<=$#queries;$i++) { |
|
$qresult.="$hashref->{$queries[$i]}&"; |
|
} |
|
if (&untie_domain_hash($hashref)) { |
|
$qresult=~s/\&$//; |
|
&Reply($client, \$qresult, $userinput); |
|
} else { |
|
&Failure( $client, "error: ".($!+0)." untie(GDBM) Failed ". |
|
"while attempting getdom\n",$userinput); |
|
} |
|
} else { |
|
&Failure($client, "error: ".($!+0)." tie(GDBM) Failed ". |
|
"while attempting getdom\n",$userinput); |
|
} |
|
} |
|
|
|
return 1; |
|
} |
|
®ister_handler("getdom", \&get_domain_handler, 0, 1, 0); |
|
|
|
sub encrypted_get_domain_handler { |
|
my ($cmd, $tail, $client) = @_; |
|
|
|
my $userinput = "$cmd:$tail"; |
|
|
my ($udom,$namespace,$what)=split(/:/,$tail,3); |
my ($udom,$namespace,$what)=split(/:/,$tail,3); |
chomp($what); |
chomp($what); |
Line 4889 sub get_domain_handler {
|
Line 4925 sub get_domain_handler {
|
} |
} |
if (&untie_domain_hash($hashref)) { |
if (&untie_domain_hash($hashref)) { |
$qresult=~s/\&$//; |
$qresult=~s/\&$//; |
&Reply($client, \$qresult, $userinput); |
if ($cipher) { |
|
my $cmdlength=length($qresult); |
|
$qresult.=" "; |
|
my $encqresult=''; |
|
for (my $encidx=0;$encidx<=$cmdlength;$encidx+=8) { |
|
$encqresult.= unpack("H16", |
|
$cipher->encrypt(substr($qresult, |
|
$encidx, |
|
8))); |
|
} |
|
&Reply( $client, "enc:$cmdlength:$encqresult\n", $userinput); |
|
} else { |
|
&Failure( $client, "error:no_key\n", $userinput); |
|
} |
} else { |
} else { |
&Failure( $client, "error: ".($!+0)." untie(GDBM) Failed ". |
&Failure( $client, "error: ".($!+0)." untie(GDBM) Failed ". |
"while attempting getdom\n",$userinput); |
"while attempting egetdom\n",$userinput); |
} |
} |
} else { |
} else { |
&Failure($client, "error: ".($!+0)." tie(GDBM) Failed ". |
&Failure($client, "error: ".($!+0)." tie(GDBM) Failed ". |
"while attempting getdom\n",$userinput); |
"while attempting egetdom\n",$userinput); |
} |
} |
|
|
return 1; |
return 1; |
} |
} |
®ister_handler("getdom", \&get_domain_handler, 0, 1, 0); |
®ister_handler("egetdom", \&encrypted_get_domain_handler, 1, 1, 0); |
|
|
# |
# |
# Puts an id to a domains id database. |
# Puts an id to a domains id database. |
Line 5801 sub auto_export_grades_handler {
|
Line 5849 sub auto_export_grades_handler {
|
return 1; |
return 1; |
} |
} |
®ister_handler("autoexportgrades", \&auto_export_grades_handler, |
®ister_handler("autoexportgrades", \&auto_export_grades_handler, |
0, 1, 0); |
1, 1, 0); |
|
|
# Retrieve and remove temporary files created by/during autoenrollment. |
# Retrieve and remove temporary files created by/during autoenrollment. |
# |
# |