version 1.1333, 2017/01/05 18:44:41
|
version 1.1337, 2017/02/25 20:00:41
|
Line 650 sub transfer_profile_to_env {
|
Line 650 sub transfer_profile_to_env {
|
sub check_for_valid_session { |
sub check_for_valid_session { |
my ($r,$name,$userhashref) = @_; |
my ($r,$name,$userhashref) = @_; |
my %cookies=CGI::Cookie->parse($r->header_in('Cookie')); |
my %cookies=CGI::Cookie->parse($r->header_in('Cookie')); |
|
my ($linkname,$pubname); |
if ($name eq '') { |
if ($name eq '') { |
$name = 'lonID'; |
$name = 'lonID'; |
|
$linkname = 'lonLinkID'; |
|
$pubname = 'lonPubID'; |
} |
} |
my $lonid=$cookies{$name}; |
my $lonid=$cookies{$name}; |
|
if (!$lonid) { |
|
if (($name eq 'lonID') && ($ENV{'SERVER_PORT'} != 443) && ($linkname)) { |
|
$lonid=$cookies{$linkname}; |
|
} |
|
if (!$lonid) { |
|
if (($name eq 'lonID') && ($pubname)) { |
|
$lonid=$cookies{$pubname}; |
|
} |
|
} |
|
} |
return undef if (!$lonid); |
return undef if (!$lonid); |
|
|
my $handle=&LONCAPA::clean_handle($lonid->value); |
my $handle=&LONCAPA::clean_handle($lonid->value); |
Line 4116 sub flushcourselogs {
|
Line 4129 sub flushcourselogs {
|
} |
} |
} |
} |
# |
# |
# Reverse lookup of domain roles (dc, ad, li, sc, dh, au) |
# Reverse lookup of domain roles (dc, ad, li, sc, dh, da, au) |
# |
# |
my %domrolebuffer = (); |
my %domrolebuffer = (); |
foreach my $entry (keys(%domainrolehash)) { |
foreach my $entry (keys(%domainrolehash)) { |
Line 4263 sub userrolelog {
|
Line 4276 sub userrolelog {
|
{$trole.':'.$username.':'.$domain.':'.$env{'user.name'}.':'.$env{'user.domain'}.':'} |
{$trole.':'.$username.':'.$domain.':'.$env{'user.name'}.':'.$env{'user.domain'}.':'} |
=$tend.':'.$tstart; |
=$tend.':'.$tstart; |
} |
} |
if ($trole =~ /^(dc|ad|li|au|dg|sc|dh)/ ) { |
if ($trole =~ /^(dc|ad|li|au|dg|sc|dh|da)/ ) { |
my (undef,$rudom,$runame,$rsec)=split(/\//,$area); |
my (undef,$rudom,$runame,$rsec)=split(/\//,$area); |
$domainrolehash |
$domainrolehash |
{$trole.':'.$username.':'.$domain.':'.$runame.':'.$rudom.':'.$rsec} |
{$trole.':'.$username.':'.$domain.':'.$runame.':'.$rudom.':'.$rsec} |
Line 4547 sub get_my_adhocroles {
|
Line 4560 sub get_my_adhocroles {
|
} |
} |
} |
} |
if (($cdom ne '') && ($cnum ne '')) { |
if (($cdom ne '') && ($cnum ne '')) { |
if ($env{"user.role.dh./$cdom/"}) { |
if (($env{"user.role.dh./$cdom/"}) || ($env{"user.role.da./$cdom/"})) { |
my $then=$env{'user.login.time'}; |
my $then=$env{'user.login.time'}; |
my $update=$env{'user.update.time'}; |
my $update=$env{'user.update.time'}; |
my $liverole = 1; |
if (!$update) { |
my ($tstart,$tend)=split(/\./,$env{'user.role.dh./'.$cdom}); |
$update = $then; |
my $limit = $update; |
} |
if ($env{'request.role'} eq 'dh./'.$cdom.'/') { |
my @liveroles; |
$limit = $then; |
foreach my $role ('dh','da') { |
} |
if ($env{"user.role.$role./$cdom/"}) { |
if ($tstart && $tstart>$limit) { $liverole = 0; } |
my ($tstart,$tend)=split(/\./,$env{"user.role.$role./$cdom/"}); |
if ($tend && $tend <$limit) { $liverole = 0; } |
my $limit = $update; |
if ($liverole) { |
if ($env{'request.role'} eq "$role./$cdom/") { |
|
$limit = $then; |
|
} |
|
my $activerole = 1; |
|
if ($tstart && $tstart>$limit) { $activerole = 0; } |
|
if ($tend && $tend <$limit) { $activerole = 0; } |
|
if ($activerole) { |
|
push(@liveroles,$role); |
|
} |
|
} |
|
} |
|
if (@liveroles) { |
if (&homeserver($cnum,$cdom) ne 'no_host') { |
if (&homeserver($cnum,$cdom) ne 'no_host') { |
my ($accessref,$accessinfo,%access_in_dom); |
my ($accessref,$accessinfo,%access_in_dom); |
($roles_by_num,$description,$accessref,$accessinfo) = &get_all_adhocroles($cdom); |
($roles_by_num,$description,$accessref,$accessinfo) = &get_all_adhocroles($cdom); |
Line 4613 sub get_my_adhocroles {
|
Line 4637 sub get_my_adhocroles {
|
next; |
next; |
} elsif ($curraccess eq 'all') { |
} elsif ($curraccess eq 'all') { |
push(@possroles,$role); |
push(@possroles,$role); |
|
} elsif ($curraccess eq 'dh') { |
|
if (grep(/^dh$/,@liveroles)) { |
|
push(@possroles,$role); |
|
} else { |
|
next; |
|
} |
|
} elsif ($curraccess eq 'da') { |
|
if (grep(/^da$/,@liveroles)) { |
|
push(@possroles,$role); |
|
} else { |
|
next; |
|
} |
} elsif ($curraccess eq 'status') { |
} elsif ($curraccess eq 'status') { |
if (@okstatus) { |
if (@okstatus) { |
if (!@statuses) { |
if (!@statuses) { |
Line 9127 sub assignrole {
|
Line 9163 sub assignrole {
|
&courserolelog($role,$uname,$udom,$url,$origstart,$origend,$delflag, |
&courserolelog($role,$uname,$udom,$url,$origstart,$origend,$delflag, |
$selfenroll,$context); |
$selfenroll,$context); |
} elsif (($role eq 'li') || ($role eq 'dg') || ($role eq 'sc') || |
} elsif (($role eq 'li') || ($role eq 'dg') || ($role eq 'sc') || |
($role eq 'au') || ($role eq 'dc') || ($role eq 'dh')) { |
($role eq 'au') || ($role eq 'dc') || ($role eq 'dh') || |
|
($role eq 'da')) { |
&domainrolelog($role,$uname,$udom,$url,$origstart,$origend,$delflag, |
&domainrolelog($role,$uname,$udom,$url,$origstart,$origend,$delflag, |
$context); |
$context); |
} elsif (($role eq 'ca') || ($role eq 'aa')) { |
} elsif (($role eq 'ca') || ($role eq 'aa')) { |