version 1.328, 2017/03/13 18:14:13
|
version 1.335, 2017/10/27 17:43:47
|
Line 204 sub handler {
|
Line 204 sub handler {
|
my $r = shift; |
my $r = shift; |
|
|
# Check for critical messages and redirect if present. |
# Check for critical messages and redirect if present. |
my ($redirect,$url) = &Apache::loncommon::critical_redirect(300); |
my ($redirect,$url) = &Apache::loncommon::critical_redirect(300,'roles'); |
if ($redirect) { |
if ($redirect) { |
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->header_out(Location => $url); |
$r->header_out(Location => $url); |
Line 578 ENDENTERKEY
|
Line 578 ENDENTERKEY
|
my ($furl,$ferr)= |
my ($furl,$ferr)= |
&Apache::lonuserstate::readmap($cdom.'/'.$cnum); |
&Apache::lonuserstate::readmap($cdom.'/'.$cnum); |
unless ($ferr) { |
unless ($ferr) { |
|
&Apache::lonnet::appenv({'request.course.timechecked'=>$now}); |
unless (($env{'form.switchrole'}) || |
unless (($env{'form.switchrole'}) || |
($env{"environment.internal.$cdom.$cnum.$role.adhoc"})) { |
($env{"environment.internal.$cdom.$cnum.$role.adhoc"})) { |
&Apache::lonnet::put('nohist_crslastlogin', |
&Apache::lonnet::put('nohist_crslastlogin', |
{$env{'user.name'}.':'.$env{'user.domain'}. |
{$env{'user.name'}.':'.$env{'user.domain'}. |
':'.$csec.':'.$role => $now},$cdom,$cnum); |
':'.$csec.':'.$role => $now},$cdom,$cnum); |
} |
} |
|
if (($env{"environment.internal.$cdom.$cnum.$role.adhoc"}) && |
|
(&Apache::lonnet::allowed('vxc',$cdom.'_'.$cnum))) { |
|
my $owner = $env{'course.'.$cdom.'_'.$cnum.'.internal.courseowner'}; |
|
my @coowners = split(/,/,$env{'course.'.$env{'request.course.id'}.'.internal.co-owners'}); |
|
my %auaccess; |
|
foreach my $user ($owner,@coowners) { |
|
my ($cpname,$cpdom) = split(/:/,$user); |
|
my %auroles = &Apache::lonnet::get_my_roles($cpname,$cpdom,'userroles',undef,['au','ca','aa'],[$cdom]); |
|
foreach my $key (keys(%auroles)) { |
|
my ($auname,$audom,$aurole) = split(/:/,$key); |
|
if ($aurole eq 'au') { |
|
$auaccess{$cpname} = 1; |
|
} else { |
|
$auaccess{$auname} = 1; |
|
} |
|
} |
|
} |
|
&Apache::lonnet::appenv({'request.course.adhocsrcaccess' => join(',',sort(keys(%auaccess))) }); |
|
} |
my ($feeds,$syllabus_time); |
my ($feeds,$syllabus_time); |
&Apache::lonrss::advertisefeeds($cnum,$cdom,undef,\$feeds); |
&Apache::lonrss::advertisefeeds($cnum,$cdom,undef,\$feeds); |
&Apache::lonnet::appenv({'request.course.feeds' => $feeds}); |
&Apache::lonnet::appenv({'request.course.feeds' => $feeds}); |
Line 1097 ENDHEADER
|
Line 1117 ENDHEADER
|
# ----------------------------------------------------------------------- Table |
# ----------------------------------------------------------------------- Table |
|
|
if (($numdc > 0) || (($numhelpdesk > 0) && ($numadhoc > 0))) { |
if (($numdc > 0) || (($numhelpdesk > 0) && ($numadhoc > 0))) { |
$r->print(&coursepick_jscript()); |
$r->print(&coursepick_jscript(). |
$r->print(&Apache::loncommon::coursebrowser_javascript(). |
&Apache::loncommon::coursebrowser_javascript()); |
&Apache::loncommon::authorbrowser_javascript()); |
} |
|
if ($numdc > 0) { |
|
$r->print(&Apache::loncommon::authorbrowser_javascript()); |
} |
} |
|
|
unless ((!&Apache::loncommon::show_course()) || ($nochoose) || ($countactive==1)) { |
unless ((!&Apache::loncommon::show_course()) || ($nochoose) || ($countactive==1)) { |
Line 1238 sub gather_roles {
|
Line 1260 sub gather_roles {
|
my $advanced = $env{'user.adv'}; |
my $advanced = $env{'user.adv'}; |
my $tryagain = $env{'form.tryagain'}; |
my $tryagain = $env{'form.tryagain'}; |
my @ids = &Apache::lonnet::current_machine_ids(); |
my @ids = &Apache::lonnet::current_machine_ids(); |
|
my (%willtrust,%trustchecked); |
if (ref($roles_in_env) eq 'HASH') { |
if (ref($roles_in_env) eq 'HASH') { |
my %adhocdesc; |
my %adhocdesc; |
foreach my $envkey (sort(keys(%{$roles_in_env}))) { |
foreach my $envkey (sort(keys(%{$roles_in_env}))) { |
Line 1306 sub gather_roles {
|
Line 1329 sub gather_roles {
|
if (($role eq 'ca') || ($role eq 'aa')) { |
if (($role eq 'ca') || ($role eq 'aa')) { |
my $home = &Apache::lonnet::homeserver($trest,$tdom); |
my $home = &Apache::lonnet::homeserver($trest,$tdom); |
my $allowed=0; |
my $allowed=0; |
|
my $prohibited; |
foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } } |
foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } } |
if (!$allowed) { |
if (!$allowed) { |
$button=0; |
$button=0; |
$switchserver='otherserver='.$home.'&role='.$trolecode; |
unless ($trustchecked{$tdom}) { |
|
if ((&Apache::lonnet::will_trust('othcoau',$tdom,$env{'user.domain'})) && |
|
(&Apache::lonnet::will_trust('coremau',$env{'user.domain'},$tdom))) { |
|
$willtrust{$tdom} = 1; |
|
$trustchecked{$tdom} = 1; |
|
} |
|
} |
|
if ($willtrust{$tdom}) { |
|
$switchserver='otherserver='.$home.'&role='.$trolecode; |
|
} else { |
|
$prohibited = 1; |
|
$tremark .= &mt('Session switch required but prohibited.'); |
|
} |
} |
} |
#next if ($home eq 'no_host'); |
#next if ($home eq 'no_host'); |
$home = &Apache::lonnet::hostname($home); |
$home = &Apache::lonnet::hostname($home); |
Line 1318 sub gather_roles {
|
Line 1354 sub gather_roles {
|
': '.$tdom.'<br />'. |
': '.$tdom.'<br />'. |
' '.&mt('Server').': '.$home; |
' '.&mt('Server').': '.$home; |
$env{'course.'.$tdom.'_'.$trest.'.description'}='ca'; |
$env{'course.'.$tdom.'_'.$trest.'.description'}='ca'; |
$tremark.=&Apache::lonhtmlcommon::authorbombs('/res/'.$tdom.'/'.$trest.'/'); |
unless ($prohibited) { |
|
$tremark.=&Apache::lonhtmlcommon::authorbombs('/res/'.$tdom.'/'.$trest.'/'); |
|
} |
$sortkey=$role."$trest:$tdom"; |
$sortkey=$role."$trest:$tdom"; |
} elsif ($role eq 'au') { |
} elsif ($role eq 'au') { |
# Authors |
# Authors |
Line 2063 sub adhoc_roles_row {
|
Line 2101 sub adhoc_roles_row {
|
my ($dcdom,$rowtype) = @_; |
my ($dcdom,$rowtype) = @_; |
my $output = &Apache::loncommon::continue_data_table_row() |
my $output = &Apache::loncommon::continue_data_table_row() |
.' <td colspan="5" class="LC_textsize_mobile">' |
.' <td colspan="5" class="LC_textsize_mobile">' |
.&mt('[_1]Ad hoc[_2] roles in domain [_3] --' |
.&mt('[_1]Ad hoc[_2] roles in domain [_3]' |
,'<span class="LC_cusr_emph">','</span>',$dcdom) |
,'<span class="LC_cusr_emph">','</span>',$dcdom) |
.' '; |
.' -- '; |
my $role = 'cc'; |
my $role = 'cc'; |
my $selectcclink = &courselink($dcdom,$rowtype,$role); |
my $selectcclink = &courselink($dcdom,$rowtype,$role); |
my $ccrole = &Apache::lonnet::plaintext('co',undef,undef,1); |
my $ccrole = &Apache::lonnet::plaintext('co',undef,undef,1); |
Line 2093 sub adhoc_customroles_row {
|
Line 2131 sub adhoc_customroles_row {
|
if (scalar(keys(%{$domdefaults{'adhocroles'}})) > 0) { |
if (scalar(keys(%{$domdefaults{'adhocroles'}})) > 0) { |
return &Apache::loncommon::continue_data_table_row() |
return &Apache::loncommon::continue_data_table_row() |
.' <td colspan="5" class="LC_textsize_mobile">' |
.' <td colspan="5" class="LC_textsize_mobile">' |
.&mt('[_1]Ad hoc[_2] course/community roles in domain [_3] --', |
.&mt('[_1]Ad hoc[_2] course/community roles in domain [_3]', |
'<span class="LC_cusr_emph">','</span>',$dhdom) |
'<span class="LC_cusr_emph">','</span>',$dhdom) |
.' '.&courselink($dhdom,$rowtype,$role); |
.' -- '.&courselink($dhdom,$rowtype,$role); |
} |
} |
} |
} |
return; |
return; |