version 1.490, 2012/04/11 21:32:28
|
version 1.491, 2012/04/25 21:22:28
|
Line 3249 sub dump_profile_database {
|
Line 3249 sub dump_profile_database {
|
# range - optional range of entries |
# range - optional range of entries |
# e.g., 10-20 would return the |
# e.g., 10-20 would return the |
# 10th to 19th items, etc. |
# 10th to 19th items, etc. |
# extra - optional ref to hash of |
|
# additional args. currently |
|
# skipcheck is only key used. |
|
# $client - Channel open on the client. |
# $client - Channel open on the client. |
# Returns: |
# Returns: |
# 1 - Continue processing. |
# 1 - Continue processing. |
Line 3273 sub dump_with_regexp {
|
Line 3270 sub dump_with_regexp {
|
|
|
my $userinput = "$cmd:$tail"; |
my $userinput = "$cmd:$tail"; |
|
|
my ($udom,$uname,$namespace,$regexp,$range,$extra)=split(/:/,$tail); |
my ($udom,$uname,$namespace,$regexp,$range)=split(/:/,$tail); |
if (defined($regexp)) { |
if (defined($regexp)) { |
$regexp=&unescape($regexp); |
$regexp=&unescape($regexp); |
} else { |
} else { |
Line 3291 sub dump_with_regexp {
|
Line 3288 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 $skipcheck; |
|
if ($hashref) { |
if ($hashref) { |
my $qresult=''; |
my $qresult=''; |
my $count=0; |
my $count=0; |
# |
# |
# When dump is for roles.db, determine if LON-CAPA version checking is needed. |
# When dump is for roles.db, determine if LON-CAPA version checking is needed. |
# Sessions on 2.10 and later will include skipcheck => 1 in extra args ref, |
# Sessions on 2.10 and later do not require version checking, as that occurs |
# to indicate no version checking is needed (in this case, checking occurs |
|
# on the server hosting the user session, when constructing the roles/courses |
# on the server hosting the user session, when constructing the roles/courses |
# screen). |
# screen). |
# |
# |
if ($extra ne '') { |
my $skipcheck; |
$extra = &Apache::lonnet::thaw_unescape($extra); |
|
$skipcheck = $extra->{'skipcheck'}; |
|
} |
|
my @ids = &Apache::lonnet::current_machine_ids(); |
my @ids = &Apache::lonnet::current_machine_ids(); |
my (%homecourses,$major,$minor,$now); |
my (%homecourses,$major,$minor,$now); |
# |
# |
Line 3315 sub dump_with_regexp {
|
Line 3307 sub dump_with_regexp {
|
# connection. For LON-CAPA 2.8 and older, the version is retrieved from |
# connection. For LON-CAPA 2.8 and older, the version is retrieved from |
# the global %loncaparevs in lonnet.pm. |
# the global %loncaparevs in lonnet.pm. |
# |
# |
if (($namespace eq 'roles') && (!$skipcheck)) { |
if ($namespace eq 'roles') { |
my $loncaparev = $clientversion; |
my $loncaparev = $clientversion; |
if ($loncaparev eq '') { |
if ($loncaparev eq '') { |
$loncaparev = $Apache::lonnet::loncaparevs{$clientname}; |
$loncaparev = $Apache::lonnet::loncaparevs{$clientname}; |
Line 3324 sub dump_with_regexp {
|
Line 3316 sub dump_with_regexp {
|
$major = $1; |
$major = $1; |
$minor = $2; |
$minor = $2; |
} |
} |
|
if (($major > 2) || (($major == 2) && ($minor > 9))) { |
|
$skipcheck = 1; |
|
} |
$now = time; |
$now = time; |
} |
} |
while (my ($key,$value) = each(%$hashref)) { |
while (my ($key,$value) = each(%$hashref)) { |
if ($namespace eq 'roles') { |
if (($namespace eq 'roles') && (!$skipcheck)) { |
if ($key =~ m{^/($LONCAPA::match_domain)/($LONCAPA::match_courseid)(/?[^_]*)_(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; |
unless ($skipcheck) { |
my ($role,$roleend,$rolestart) = split(/\_/,$value); |
my ($role,$roleend,$rolestart) = split(/\_/,$value); |
if (!$roleend || $roleend > $now) { |
if (!$roleend || $roleend > $now) { |
|
# |
# |
# For active course roles, check that requesting server is running a LON-CAPA |
# For active course roles, check that requesting server is running a LON-CAPA |
# version which meets any version requirements for the course. Do not include |
# version which meets any version requirements for the course. Do not include |
Line 3344 sub dump_with_regexp {
|
Line 3338 sub dump_with_regexp {
|
# homeserver is the current server, or whether it is a different server. |
# homeserver is the current server, or whether it is a different server. |
# In both cases, the course's version requirement needs to be retrieved. |
# In both cases, the course's version requirement needs to be retrieved. |
# |
# |
next unless (&releasereqd_check($cnum,$cdom,$key,$value,$major, |
next unless (&releasereqd_check($cnum,$cdom,$key,$value,$major, |
$minor,\%homecourses,\@ids)); |
$minor,\%homecourses,\@ids)); |
} |
|
} |
} |
} |
} |
} |
} |