version 1.295.2.1, 2009/05/21 05:45:59
|
version 1.295.2.3, 2009/08/13 20:20:12
|
Line 282 sub build_tools_display {
|
Line 282 sub build_tools_display {
|
return $output; |
return $output; |
} |
} |
|
|
|
sub coursereq_externaluser { |
|
my ($ccuname,$ccdomain,$cdom) = @_; |
|
my (@usertools,@options,%validations,%userenv,$output); |
|
my %lt = &Apache::lonlocal::texthash ( |
|
'official' => 'Can request creation of official courses', |
|
'unofficial' => 'Can request creation of unofficial courses', |
|
'community' => 'Can request creation of communities', |
|
); |
|
|
|
%userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname, |
|
'reqcrsotherdom.official','reqcrsotherdom.unofficial', |
|
'reqcrsotherdom.community'); |
|
@usertools = ('official','unofficial','community'); |
|
@options = ('approve','validate','autolimit'); |
|
%validations = &Apache::lonnet::auto_courserequest_checks($cdom); |
|
my $optregex = join('|',@options); |
|
my %reqtitles = &courserequest_titles(); |
|
foreach my $item (@usertools) { |
|
my ($curroption,$currlimit,$tooloff); |
|
if ($userenv{'reqcrsotherdom.'.$item} ne '') { |
|
my @curr = split(',',$userenv{'reqcrsotherdom.'.$item}); |
|
if (grep(/^\Q$cdom\E:($optregex)=?(\d*)$/,@curr)) { |
|
$curroption = $1; |
|
$currlimit = $2; |
|
if (!$curroption) { |
|
$curroption = 'norequest'; |
|
} |
|
} |
|
} else { |
|
$curroption = 'norequest'; |
|
$tooloff = ' checked="checked"'; |
|
} |
|
$output.= &Apache::loncommon::start_data_table_row()."\n". |
|
' <td><span class="LC_nobreak">'.$lt{$item}.': '. |
|
'<label><input type="radio" name="reqcrsotherdom_'.$item. |
|
'" value="0"'.$tooloff.' />'.$reqtitles{'norequest'}. |
|
'</label> '; |
|
foreach my $option (@options) { |
|
if ($option eq 'validate') { |
|
my $canvalidate = 0; |
|
if (ref($validations{$item}) eq 'HASH') { |
|
if ($validations{$item}{'_external_'}) { |
|
$canvalidate = 1; |
|
} |
|
} |
|
next if (!$canvalidate); |
|
} |
|
my $checked = ''; |
|
if ($option eq $curroption) { |
|
$checked = ' checked="checked"'; |
|
} |
|
$output .= '<span class="LC_nobreak"><label>'. |
|
'<input type="radio" name="reqcrsotherdom_'.$item. |
|
'" value="'.$option.'"'.$checked.' />'. |
|
$reqtitles{$option}.'</label> '; |
|
if ($option eq 'autolimit') { |
|
$output .= '<input type="text" name="reqcrsotherdom_'. |
|
$item.'_limit" size="1" '. |
|
'value="'.$currlimit.'" />'; |
|
} |
|
$output .= ' ' |
|
} |
|
$output .= '</span></td>'."\n". |
|
&Apache::loncommon::end_data_table_row()."\n"; |
|
} |
|
return $output; |
|
} |
|
|
|
sub courserequest_titles { |
|
my %titles = &Apache::lonlocal::texthash ( |
|
official => 'Official', unofficial => 'Unofficial', |
|
community => 'Communities', norequest => 'Not allowed', |
|
approve => 'Approval by Dom. Coord.', |
|
validate => 'With validation', |
|
autolimit => 'Numerical limit', |
|
); |
|
return %titles; |
|
} |
|
|
|
sub courserequest_display { |
|
my %titles = &Apache::lonlocal::texthash ( |
|
approve => 'Yes, need approval', |
|
validate => 'Yes, with validation', |
|
norequest => 'No', |
|
); |
|
return %titles; |
|
} |
|
|
# =================================================================== Phase one |
# =================================================================== Phase one |
|
|
sub print_username_entry_form { |
sub print_username_entry_form { |
Line 874 ENDCHANGEUSER
|
Line 962 ENDCHANGEUSER
|
} |
} |
if (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) { |
if (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) { |
$r->print('<h3>'.&mt('User Can Request Creation of Courses?').'</h3>'. |
$r->print('<h3>'.&mt('User Can Request Creation of Courses?').'</h3>'. |
&Apache::loncommon::start_data_table(). |
&Apache::loncommon::start_data_table()). |
&build_tools_display($ccuname,$ccdomain,'requestcourses'). |
if ($env{'request.role.domain'} eq $ccdomain) { |
&Apache::loncommon::end_data_table()); |
$r->print(&build_tools_display($ccuname,$ccdomain,'requestcourses')); |
|
} else { |
|
$r->print(&coursereq_externaluser($ccuname,$ccdomain, |
|
$env{'request.role.domain'})); |
|
} |
|
$r->print(&Apache::loncommon::end_data_table()); |
} |
} |
$r->print('</div>'); |
$r->print('</div>'); |
my $user_auth_text = &user_authentication($ccuname,$ccdomain,$formname); |
my $user_auth_text = &user_authentication($ccuname,$ccdomain,$formname); |
Line 1998 sub update_user_data {
|
Line 2091 sub update_user_data {
|
('environment',['firstname','middlename','lastname','generation', |
('environment',['firstname','middlename','lastname','generation', |
'id','permanentemail','portfolioquota','inststatus','tools.aboutme', |
'id','permanentemail','portfolioquota','inststatus','tools.aboutme', |
'tools.blog','tools.portfolio','requestcourses.official', |
'tools.blog','tools.portfolio','requestcourses.official', |
'requestcourses.unofficial'], |
'requestcourses.unofficial','requestcourses.community', |
|
'reqcrsotherdom.official','reqcrsotherdom.unofficial', |
|
'reqcrsotherdom.community'], |
$env{'form.ccdomain'},$env{'form.ccuname'}); |
$env{'form.ccdomain'},$env{'form.ccuname'}); |
my ($tmp) = keys(%userenv); |
my ($tmp) = keys(%userenv); |
if ($tmp =~ /^(con_lost|error)/i) { |
if ($tmp =~ /^(con_lost|error)/i) { |
Line 2127 sub update_user_data {
|
Line 2222 sub update_user_data {
|
$oldinststatuses,$newinststatuses); |
$oldinststatuses,$newinststatuses); |
my ($defquota,$settingstatus) = |
my ($defquota,$settingstatus) = |
&Apache::loncommon::default_quota($env{'form.ccdomain'},$inststatus); |
&Apache::loncommon::default_quota($env{'form.ccdomain'},$inststatus); |
my ($showquota,$showtools,$showrequestcourses,$showinststatus); |
my ($showquota,$showtools,$showrequestcourses,$showinststatus,$showreqotherdom); |
if (&Apache::lonnet::allowed('mpq',$env{'form.ccdomain'})) { |
if (&Apache::lonnet::allowed('mpq',$env{'form.ccdomain'})) { |
$showquota = 1; |
$showquota = 1; |
} |
} |
Line 2136 sub update_user_data {
|
Line 2231 sub update_user_data {
|
} |
} |
if (&Apache::lonnet::allowed('ccc',$env{'form.ccdomain'})) { |
if (&Apache::lonnet::allowed('ccc',$env{'form.ccdomain'})) { |
$showrequestcourses = 1; |
$showrequestcourses = 1; |
|
} elsif (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) { |
|
$showreqotherdom = 1; |
} |
} |
if (&Apache::lonnet::allowed('mau',$env{'form.ccdomain'})) { |
if (&Apache::lonnet::allowed('mau',$env{'form.ccdomain'})) { |
$showinststatus = 1; |
$showinststatus = 1; |
Line 2219 sub update_user_data {
|
Line 2316 sub update_user_data {
|
} |
} |
&tool_changes('tools',\@usertools,\%oldaccess,\%oldaccesstext,\%userenv, |
&tool_changes('tools',\@usertools,\%oldaccess,\%oldaccesstext,\%userenv, |
\%changeHash,\%changed,\%newaccess,\%newaccesstext); |
\%changeHash,\%changed,\%newaccess,\%newaccesstext); |
&tool_changes('requestcourses',\@requestcourses,\%oldaccess,\%oldaccesstext, |
|
\%userenv, \%changeHash,\%changed,\%newaccess,\%newaccesstext); |
if ($env{'form.ccdomain'} eq $env{'request.role.domain'}) { |
|
&tool_changes('requestcourses',\@requestcourses,\%oldaccess,\%oldaccesstext, |
|
\%userenv,\%changeHash,\%changed,\%newaccess,\%newaccesstext); |
|
} else { |
|
&tool_changes('reqcrsotherdom',\@requestcourses,\%oldaccess,\%oldaccesstext, |
|
\%userenv,\%changeHash,\%changed,\%newaccess,\%newaccesstext); |
|
} |
if ($env{'form.cfirstname'} ne $userenv{'firstname'} || |
if ($env{'form.cfirstname'} ne $userenv{'firstname'} || |
$env{'form.cmiddlename'} ne $userenv{'middlename'} || |
$env{'form.cmiddlename'} ne $userenv{'middlename'} || |
$env{'form.clastname'} ne $userenv{'lastname'} || |
$env{'form.clastname'} ne $userenv{'lastname'} || |
Line 2333 END
|
Line 2436 END
|
$r->print(" |
$r->print(" |
<th>$lt{$item}</th>\n"); |
<th>$lt{$item}</th>\n"); |
} |
} |
|
} elsif ($showreqotherdom) { |
|
foreach my $item (@requestcourses) { |
|
$r->print(" |
|
<th>$lt{$item}</th>\n"); |
|
} |
} |
} |
if ($showquota) { |
if ($showquota) { |
$r->print(" |
$r->print(" |
Line 2364 END
|
Line 2472 END
|
$r->print(" |
$r->print(" |
<td>$oldaccess{$item} $oldaccesstext{$item}</td>\n"); |
<td>$oldaccess{$item} $oldaccesstext{$item}</td>\n"); |
} |
} |
|
} elsif ($showreqotherdom) { |
|
foreach my $item (@requestcourses) { |
|
$r->print(" |
|
<td>$oldaccess{$item} $oldaccesstext{$item}</td>\n"); |
|
} |
} |
} |
if ($showquota) { |
if ($showquota) { |
$r->print(" |
$r->print(" |
Line 2395 END
|
Line 2508 END
|
$r->print(" |
$r->print(" |
<td>$newaccess{$item} $newaccesstext{$item} </td>\n"); |
<td>$newaccess{$item} $newaccesstext{$item} </td>\n"); |
} |
} |
|
} elsif ($showreqotherdom) { |
|
foreach my $item (@requestcourses) { |
|
$r->print(" |
|
<td>$newaccess{$item} $newaccesstext{$item} </td>\n"); |
|
} |
} |
} |
if ($showquota) { |
if ($showquota) { |
$r->print(" |
$r->print(" |
Line 2463 END
|
Line 2581 END
|
$r->print('<br />['.$lt{$item}.': '.$newaccess{$item}.' '. |
$r->print('<br />['.$lt{$item}.': '.$newaccess{$item}.' '. |
$newaccesstext{$item}.']'."\n"); |
$newaccesstext{$item}.']'."\n"); |
} |
} |
|
} elsif ($showreqotherdom) { |
|
foreach my $item (@requestcourses) { |
|
$r->print('<br />['.$lt{$item}.': '.$newaccess{$item}.' '. |
|
$newaccesstext{$item}.']'."\n"); |
|
} |
} |
} |
if ($showtools) { |
if ($showtools) { |
foreach my $item (@usertools) { |
foreach my $item (@usertools) { |
Line 2554 sub tool_changes {
|
Line 2677 sub tool_changes {
|
(ref($newaccess) eq 'HASH') && (ref($newaccesstext) eq 'HASH'))) { |
(ref($newaccess) eq 'HASH') && (ref($newaccesstext) eq 'HASH'))) { |
return; |
return; |
} |
} |
|
if ($context eq 'reqcrsotherdom') { |
|
my @options = ('approve','validate','autolimit'); |
|
my $optregex = join('|',@options); |
|
my %reqdisplay = &courserequest_display(); |
|
my $cdom = $env{'request.role.domain'}; |
|
foreach my $tool (@{$usertools}) { |
|
$oldaccesstext->{$tool} = &mt('no'); |
|
$changeHash->{$context.'.'.$tool} = $userenv->{$context.'.'.$tool |
|
}; |
|
if ($userenv->{$context.'.'.$tool} eq '') { |
|
if ($env{'form.'.$context.'_'.$tool}) { |
|
$changed->{$tool}=&tool_admin($tool,$cdom, |
|
$changeHash,$context); |
|
if ($changed->{$tool}) { |
|
$newaccesstext->{$tool} = &mt('yes'); |
|
} else { |
|
$newaccesstext->{$tool} = $oldaccesstext->{$tool}; } |
|
} |
|
} else { |
|
my @curr = split(',',$userenv->{$context.'.'.$tool}); |
|
my @new; |
|
my $changedoms; |
|
my $newop = $env{'form.'.$context.'_'.$tool}; |
|
if ($newop eq 'autolimit') { |
|
$newop .= '='; |
|
unless ($env{'form.'.$context.'_'.$tool.'_limit'} =~ /\D/ |
|
) { |
|
$newop .= $env{'form.'.$context.'_'.$tool.'_limit'}; |
|
} |
|
} |
|
if (grep(/^\Q$cdom:($optregex\=?\d*)\E$/,@curr)) { |
|
$oldaccesstext->{$tool} = &mt('yes'); |
|
my $oldop = $1; |
|
if ($oldop ne $newop) { |
|
$changedoms = 1; |
|
foreach my $dom (@curr) { |
|
unless ($dom eq $cdom) { |
|
push(@new,$dom); |
|
} |
|
} |
|
if ($newop) { |
|
push(@new,$cdom.':'.$newop); |
|
} |
|
@new = sort(@new); |
|
} |
|
} elsif ($env{'form.'.$context.'_'.$tool}) { |
|
$changedoms = 1; |
|
$changedoms = 1; |
|
@new = sort(@curr,$cdom.':'.$newop); |
|
} |
|
$newaccesstext->{$tool} = $oldaccesstext->{$tool}; |
|
if ($changedoms) { |
|
my $newdomstr; |
|
if (@new) { |
|
$newdomstr = join(',',@new); |
|
} |
|
$changed->{$tool}=&tool_admin($tool,$newdomstr,$changeHash, |
|
$context); |
|
if ($changed->{$tool}) { |
|
if ($env{'form.'.$context.'_'.$tool}) { |
|
if ($env{'form.'.$context.'_'.$tool} eq 'autolimit') { |
|
if ($env{'form.'.$context.'_'.$tool.'_limit'} =~ /\D/) { |
|
$newaccesstext->{$tool} = &mt('Yes, processed automatically'); |
|
} else { |
|
$newaccesstext->{$tool} = &mt('Yes, up to limit of [quant,_1,request] per user).',$env{'form.'.$context.'_'.$tool.'_limit'}); |
|
} |
|
} else { |
|
$newaccesstext->{$tool} = $reqdisplay{$env{'form.'.$context.'_'.$tool}}; |
|
} |
|
} else { |
|
$newaccesstext->{$tool} = &mt('No'); |
|
} |
|
} |
|
} |
|
} |
|
} |
|
return; |
|
} |
foreach my $tool (@{$usertools}) { |
foreach my $tool (@{$usertools}) { |
if ($userenv->{$context.'.'.$tool} ne '') { |
if ($userenv->{$context.'.'.$tool} ne '') { |
$oldaccess->{$tool} = &mt('custom'); |
$oldaccess->{$tool} = &mt('custom'); |
Line 2992 sub tool_admin {
|
Line 3193 sub tool_admin {
|
if (&Apache::lonnet::allowed('ccc',$env{'form.ccdomain'})) { |
if (&Apache::lonnet::allowed('ccc',$env{'form.ccdomain'})) { |
$canchange = 1; |
$canchange = 1; |
} |
} |
|
} elsif ($context eq 'reqcrsotherdom') { |
|
if (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) { |
|
$canchange = 1; |
|
} |
} elsif (&Apache::lonnet::allowed('mut',$env{'form.ccdomain'})) { |
} elsif (&Apache::lonnet::allowed('mut',$env{'form.ccdomain'})) { |
# Current user has quota modification privileges |
# Current user has quota modification privileges |
$canchange = 1; |
$canchange = 1; |
Line 3726 sub print_main_menu {
|
Line 3931 sub print_main_menu {
|
permission => $permission->{'cusr'}, |
permission => $permission->{'cusr'}, |
}); |
}); |
} |
} |
|
if ($env{'course.'.$env{'request.course.id'}.'.internal.selfenroll_approval'}) { |
|
push(@courselinks, |
|
{ text => 'Enrollment Requests', |
|
help => 'Course_Approve_Selfenroll', |
|
action => 'selfenrollqueue', |
|
permission => $permission->{'cusr'}, |
|
}); |
|
} |
push(@courselinks, |
push(@courselinks, |
{ text => 'Manage Course Groups', |
{ text => 'Manage Course Groups', |
help => 'Course_Manage_Group', |
help => 'Course_Manage_Group', |
Line 4930 sub role_display_filter {
|
Line 5143 sub role_display_filter {
|
&mt('[_1]Note:[_2] Only changes made from servers running LON-CAPA 2.6.99.0 or later are displayed.'); |
&mt('[_1]Note:[_2] Only changes made from servers running LON-CAPA 2.6.99.0 or later are displayed.'); |
if ($version) { |
if ($version) { |
$output .= ' '.&mt('This server is version [_3].','<b>','</b>',$version); } |
$output .= ' '.&mt('This server is version [_3].','<b>','</b>',$version); } |
$output .= '</span><hr noshade><br />'; |
$output .= '</span><hr /><br />'; |
return $output; |
return $output; |
} |
} |
|
|