version 1.448, 2010/07/20 02:42:27
|
version 1.450, 2010/07/26 21:52:10
|
Line 1800 sub authenticate_handler {
|
Line 1800 sub authenticate_handler {
|
if (ref($hostedsession) eq 'HASH') { |
if (ref($hostedsession) eq 'HASH') { |
$hosted = $hostedsession->{'hosted'}; |
$hosted = $hostedsession->{'hosted'}; |
} |
} |
|
my $loncaparev = $clientversion; |
|
if ($loncaparev eq '') { |
|
$loncaparev = $Apache::lonnet::loncaparevs{$clientname}; |
|
} |
$canhost = &Apache::lonnet::can_host_session($udom,$clientname, |
$canhost = &Apache::lonnet::can_host_session($udom,$clientname, |
$clientversion, |
$loncaparev, |
$remote,$hosted); |
$remote,$hosted); |
} |
} |
} |
} |
Line 3140 sub dump_with_regexp {
|
Line 3144 sub dump_with_regexp {
|
|
|
my $userinput = "$cmd:$tail"; |
my $userinput = "$cmd:$tail"; |
|
|
my ($udom,$uname,$namespace,$regexp,$range)=split(/:/,$tail); |
my ($udom,$uname,$namespace,$regexp,$range,$extra)=split(/:/,$tail); |
if (defined($regexp)) { |
if (defined($regexp)) { |
$regexp=&unescape($regexp); |
$regexp=&unescape($regexp); |
} else { |
} else { |
Line 3158 sub dump_with_regexp {
|
Line 3162 sub dump_with_regexp {
|
} |
} |
my $hashref = &tie_user_hash($udom, $uname, $namespace, |
my $hashref = &tie_user_hash($udom, $uname, $namespace, |
&GDBM_READER()); |
&GDBM_READER()); |
|
my $clientcheckrole; |
if ($hashref) { |
if ($hashref) { |
my $qresult=''; |
my $qresult=''; |
my $count=0; |
my $count=0; |
|
if ($extra ne '') { |
|
$extra = &Apache::lonnet::thaw_unescape($extra); |
|
$clientcheckrole = $extra->{'clientcheckrole'}; |
|
} |
|
my @ids = &Apache::lonnet::current_machine_ids(); |
while (my ($key,$value) = each(%$hashref)) { |
while (my ($key,$value) = each(%$hashref)) { |
if ($namespace eq 'roles') { |
if ($namespace eq 'roles') { |
if ($key =~ m{^/($LONCAPA::match_domain)/($LONCAPA::match_community)_(cc|co|in|ta|ep|ad|st|cr)}) { |
if ($key =~ m{^/($LONCAPA::match_domain)/($LONCAPA::match_courseid)_(cc|co|in|ta|ep|ad|st|cr)}) { |
my $cdom = $1; |
my $cdom = $1; |
my $cnum = $2; |
my $cnum = $2; |
if ($clientversion =~ /^\'?(\d+)\.(\d+)/) { |
unless ($clientcheckrole) { |
my $major = $1; |
my $home = &Apache::lonnet::homeserver($cnum,$cdom); |
my $minor = $2; |
my $loncaparev = $clientversion; |
next if (($major < 2) || (($major == 2) && ($minor < 9))); |
if ($loncaparev eq '') { |
} else { |
$loncaparev = $Apache::lonnet::loncaparevs{$clientname}; |
my $homeserver = &Apache::lonnet::homeserver($cnum,$cdom); |
} |
next unless ($currenthostid eq $homeserver); |
my ($major,$minor); |
|
if ($loncaparev =~ /^\'?(\d+)\.(\d+)\.[\d.\-]+\'?/) { |
|
$major = $1; |
|
$minor = $2; |
|
} |
|
if ($key =~ m{^/($LONCAPA::match_domain)/($LONCAPA::match_community)_(co|in|ta|ep|ad|st|cr)}) { |
|
if ($major eq '' && $minor eq '') { |
|
next unless (($home ne 'no_host') && grep(/^\Q$home\E$/,@ids)); |
|
} |
|
} |
|
unless ($home eq 'no_host') { |
|
my $courseinfo = &get_courseinfo_hash($cnum,$cdom,$home); |
|
if (ref($courseinfo) eq 'HASH') { |
|
if (exists($courseinfo->{'releaserequired'})) { |
|
my ($reqdmajor,$reqdminor) = split(/\./,$courseinfo->{'releaserequired'}); |
|
if ($reqdmajor ne '' && $reqdminor ne '') { |
|
next if (($major eq '' && $minor eq '') || |
|
($major < $reqdmajor) || |
|
(($major == $reqdmajor) && ($minor < $reqdminor))); |
|
} |
|
} |
|
} |
|
} |
} |
} |
} |
} |
} |
} |
Line 7264 sub get_usersession_config {
|
Line 7296 sub get_usersession_config {
|
} |
} |
} |
} |
return; |
return; |
|
} |
|
|
|
sub get_courseinfo_hash { |
|
my ($cnum,$cdom,$home) = @_; |
|
my $hashid = $cdom.':'.$cnum; |
|
my ($courseinfo,$cached)=&Apache::lonnet::is_cached_new('courseinfo',$hashid); |
|
if (defined($cached)) { |
|
return $courseinfo; |
|
} else { |
|
my %info = &Apache::lonnet::courseiddump($cdom,'.',1,'.','.',$cnum,1,[$home],'.'); |
|
if (ref($info{$cdom.'_'.$cnum}) eq 'HASH') { |
|
return &Apache::lonnet::do_cache_new('courseinfo',$hashid,$info{$cdom.'_'.$cnum},600); |
|
} |
|
} |
|
return; |
} |
} |
|
|
# ----------------------------------- POD (plain old documentation, CPAN style) |
# ----------------------------------- POD (plain old documentation, CPAN style) |