version 1.21, 2007/12/21 20:34:26
|
version 1.23, 2007/12/22 00:47:25
|
Line 68 sub modifystudent {
|
Line 68 sub modifystudent {
|
my $reply=&Apache::lonnet::modifystudent |
my $reply=&Apache::lonnet::modifystudent |
# dom name id mode pass f m l g |
# dom name id mode pass f m l g |
($udom,$unam,'', '', '',undef,undef,undef,undef, |
($udom,$unam,'', '', '',undef,undef,undef,undef, |
$section,time,undef,undef,$desiredhost); |
$section,time,undef,undef,$desiredhost,'','manual', |
|
'',$courseid); |
$result .= $reply.':'; |
$result .= $reply.':'; |
} |
} |
} |
} |
Line 126 sub modifyuserrole {
|
Line 127 sub modifyuserrole {
|
$email,$role,$start,$end); |
$email,$role,$start,$end); |
if ($userresult eq 'ok') { |
if ($userresult eq 'ok') { |
if ($role ne '') { |
if ($role ne '') { |
|
$role =~ s/_/\//g; |
$roleresult = &Apache::lonnet::assignrole($udom,$uname,$scope, |
$roleresult = &Apache::lonnet::assignrole($udom,$uname,$scope, |
$role,$end,$start); |
$role,$end,$start); |
} |
} |
Line 145 sub propagate_id_change {
|
Line 147 sub propagate_id_change {
|
one_time => 1, |
one_time => 1, |
); |
); |
foreach my $item (keys(%roleshash)) { |
foreach my $item (keys(%roleshash)) { |
my ($cnum,$cdom,$role) = split(/:/,$item); |
my ($cnum,$cdom,$role) = split(/:/,$item,-1); |
my ($start,$end) = split(/:/,$roleshash{$item}); |
my ($start,$end) = split(/:/,$roleshash{$item}); |
if (&Apache::lonnet::is_course($cdom,$cnum)) { |
if (&Apache::lonnet::is_course($cdom,$cnum)) { |
my $result = &update_classlist($cdom,$cnum,$udom,$uname,$user); |
my $result = &update_classlist($cdom,$cnum,$udom,$uname,$user); |
Line 265 sub hidden_input {
|
Line 267 sub hidden_input {
|
} |
} |
|
|
sub print_upload_manager_header { |
sub print_upload_manager_header { |
my ($r,$datatoken,$distotal,$krbdefdom,$context)=@_; |
my ($r,$datatoken,$distotal,$krbdefdom,$context,$permission)=@_; |
my $javascript; |
my $javascript; |
# |
# |
if (! exists($env{'form.upfile_associate'})) { |
if (! exists($env{'form.upfile_associate'})) { |
Line 295 sub print_upload_manager_header {
|
Line 297 sub print_upload_manager_header {
|
$password_choice = 'int'; |
$password_choice = 'int'; |
} |
} |
# |
# |
|
my $groupslist; |
|
if ($context eq 'course') { |
|
$groupslist = &get_groupslist(); |
|
} |
my $javascript_validations = |
my $javascript_validations = |
&javascript_validations('auth',$krbdefdom,$password_choice,undef, |
&javascript_validations('upload',$krbdefdom,$password_choice,undef, |
$env{'request.role.domain'}); |
$env{'request.role.domain'},$context, |
|
$permission,$groupslist); |
my $checked=(($env{'form.noFirstLine'})?' checked="checked" ':''); |
my $checked=(($env{'form.noFirstLine'})?' checked="checked" ':''); |
$r->print(&mt('Total number of records found in file: <b>[_1]</b>.',$distotal). |
$r->print(&mt('Total number of records found in file: <b>[_1]</b>.',$distotal). |
"<br />\n"); |
"<br />\n"); |
Line 324 sub print_upload_manager_header {
|
Line 331 sub print_upload_manager_header {
|
############################################################### |
############################################################### |
############################################################### |
############################################################### |
sub javascript_validations { |
sub javascript_validations { |
my ($mode,$krbdefdom,$curr_authtype,$curr_authfield,$domain)=@_; |
my ($mode,$krbdefdom,$curr_authtype,$curr_authfield,$domain, |
my $authheader; |
$context,$permission,$groupslist)=@_; |
if ($mode eq 'auth') { |
|
my %param = ( formname => 'studentform', |
my %param = ( |
kerb_def_dom => $krbdefdom, |
|
curr_authtype => $curr_authtype); |
|
$authheader = &Apache::loncommon::authform_header(%param); |
|
} elsif ($mode eq 'createcourse') { |
|
my %param = ( formname => 'ccrs', |
|
kerb_def_dom => $krbdefdom, |
|
curr_authtype => $curr_authtype ); |
|
$authheader = &Apache::loncommon::authform_header(%param); |
|
} elsif ($mode eq 'modifycourse') { |
|
my %param = ( formname => 'cmod', |
|
kerb_def_dom => $krbdefdom, |
kerb_def_dom => $krbdefdom, |
mode => 'modifycourse', |
|
curr_authtype => $curr_authtype, |
curr_authtype => $curr_authtype, |
curr_autharg => $curr_authfield ); |
); |
$authheader = &Apache::loncommon::authform_header(%param); |
if ($mode eq 'createuser') { |
|
$param{'formname'} = 'cu'; |
|
} elsif ($mode eq 'upload') { |
|
$param{'formname'} = 'studentform'; |
|
} elsif ($mode eq 'singlestudent') { |
|
$param{'formname'} = 'cu'; |
|
} elsif ($mode eq 'createcourse') { |
|
$param{'formname'} = 'ccrs'; |
|
} elsif ($mode eq 'modifycourse') { |
|
$param{'formname'} = 'cmod'; |
|
$param{'mode'} = 'modifycourse', |
|
$param{'curr_autharg'} = $curr_authfield; |
|
} |
|
|
|
my ($setsection_call,$setsections_js); |
|
my $finish = " vf.submit();\n"; |
|
if ($mode eq 'upload') { |
|
if (($context eq 'course') || ($context eq 'domain')) { |
|
if ($context eq 'course') { |
|
if ($env{'request.course.sec'} eq '') { |
|
$setsection_call = 'setSections(document.'.$param{'formname'}.');'; |
|
$setsections_js = |
|
&setsections_javascript($param{'formname'},$groupslist, |
|
$mode); |
|
} else { |
|
$setsection_call = "'ok'"; |
|
} |
|
} elsif ($context eq 'domain') { |
|
$setsection_call = 'setCourse()'; |
|
$setsections_js = &dc_setcourse_js($param{'formname'},$mode); |
|
} |
|
$finish = " var checkSec = $setsection_call\n". |
|
" if (checkSec == 'ok') {\n". |
|
" vf.submit();\n". |
|
" }\n"; |
|
} |
} |
} |
|
my $authheader = &Apache::loncommon::authform_header(%param); |
|
|
my %alert = &Apache::lonlocal::texthash |
my %alert = &Apache::lonlocal::texthash |
(username => 'You need to specify the username field.', |
(username => 'You need to specify the username field.', |
Line 358 sub javascript_validations {
|
Line 390 sub javascript_validations {
|
continue => 'Continue adding users?', |
continue => 'Continue adding users?', |
); |
); |
|
|
# my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition(); |
|
my $function_name =(<<END); |
my $function_name =(<<END); |
|
$setsections_js |
|
|
function verify_message (vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail) { |
function verify_message (vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail) { |
END |
END |
my ($authnum,%can_assign) = &Apache::loncommon::get_assignable_auth($domain); |
my ($authnum,%can_assign) = &Apache::loncommon::get_assignable_auth($domain); |
Line 479 END
|
Line 512 END
|
message+= '\\n$alert{'continue'}'; |
message+= '\\n$alert{'continue'}'; |
if (confirm(message)) { |
if (confirm(message)) { |
vf.state.value='enrolling'; |
vf.state.value='enrolling'; |
vf.submit(); |
$finish |
} |
} |
} else { |
} else { |
vf.state.value='enrolling'; |
vf.state.value='enrolling'; |
vf.submit(); |
$finish |
} |
} |
} |
} |
END |
END |
} |
} |
my $result = $function_name; |
my $result = $function_name; |
if ( ($mode eq 'auth') || ($mode eq 'createcourse') || ($mode eq 'modifycourse') ) { |
if ( ($mode eq 'upload') || ($mode eq 'createcourse') || ($mode eq 'modifycourse') ) { |
$result .= $auth_checks; |
$result .= $auth_checks; |
} |
} |
$result .= $optional_checks."\n".$section_checks; |
$result .= $optional_checks."\n".$section_checks; |
if ( ($mode eq 'auth') || ($mode eq 'createcourse') || ($mode eq 'modifycourse') ) { |
if ( ($mode eq 'upload') || ($mode eq 'createcourse') || ($mode eq 'modifycourse') ) { |
$result .= $authheader; |
$result .= $authheader; |
} |
} |
return $result; |
return $result; |
Line 654 ENDPICK
|
Line 687 ENDPICK
|
############################################################### |
############################################################### |
############################################################### |
############################################################### |
sub print_upload_manager_footer { |
sub print_upload_manager_footer { |
my ($r,$i,$keyfields,$defdom,$today,$halfyear,$context)=@_; |
my ($r,$i,$keyfields,$defdom,$today,$halfyear,$context,$permission) = @_; |
my $formname; |
my $form = 'document.studentform'; |
if ($context eq 'course') { |
my $formname = 'studentform'; |
$formname = 'document.studentform'; |
|
} elsif ($context eq 'author') { |
|
$formname = 'document.studentform'; |
|
} elsif ($context eq 'domain') { |
|
$formname = 'document.studentform'; |
|
} |
|
my ($krbdef,$krbdefdom) = |
my ($krbdef,$krbdefdom) = |
&Apache::loncommon::get_kerberos_defaults($defdom); |
&Apache::loncommon::get_kerberos_defaults($defdom); |
my %param = ( formname => $formname, |
my %param = ( formname => $form, |
kerb_def_dom => $krbdefdom, |
kerb_def_dom => $krbdefdom, |
kerb_def_auth => $krbdef |
kerb_def_auth => $krbdef |
); |
); |
Line 677 sub print_upload_manager_footer {
|
Line 704 sub print_upload_manager_footer {
|
my $krbform = &Apache::loncommon::authform_kerberos(%param); |
my $krbform = &Apache::loncommon::authform_kerberos(%param); |
my $intform = &Apache::loncommon::authform_internal(%param); |
my $intform = &Apache::loncommon::authform_internal(%param); |
my $locform = &Apache::loncommon::authform_local(%param); |
my $locform = &Apache::loncommon::authform_local(%param); |
my $date_table = &date_setting_table(undef,undef,$context); |
my $date_table = &date_setting_table(undef,undef,$context,undef, |
|
$formname,$permission); |
my $Str = "\n".'<div class="LC_left_float">'; |
my $Str = "\n".'<div class="LC_left_float">'; |
$Str .= &hidden_input('nfields',$i); |
$Str .= &hidden_input('nfields',$i); |
$Str .= &hidden_input('keyfields',$keyfields); |
$Str .= &hidden_input('keyfields',$keyfields); |
Line 719 sub print_upload_manager_footer {
|
Line 746 sub print_upload_manager_footer {
|
$Str .= '<br /><br /><b>'.&mt('Default role and/or section')."</b><br />\n". |
$Str .= '<br /><br /><b>'.&mt('Default role and/or section')."</b><br />\n". |
&mt('Role and/or section for users without one in the uploaded file.'); |
&mt('Role and/or section for users without one in the uploaded file.'); |
} |
} |
$Str .= '<br /><br />'; |
$Str .= '<br />'; |
my ($options,$cb_script,$coursepick) = &default_role_selector($context,'defaultrole',1); |
if (($context eq 'domain') || ($context eq 'author')) { |
if ($context eq 'domain') { |
my ($options,$cb_script,$coursepick) = &default_role_selector($context,1); |
$Str .= '<span class="LC_role_level">'.&mt('Domain Level').'</span><br />'.$options.'<br /><br /><span class="LC_role_level">'.&mt('Course Level').'</span><br />'.$cb_script.$coursepick; |
if ($context eq 'domain') { |
} elsif ($context eq 'author') { |
$Str .= '<span class="LC_role_level">'.&mt('Domain Level').'</span><br />'.$options.'<br /><br /><span class="LC_role_level">'.&mt('Course Level').'</span><br />'.$cb_script.$coursepick; |
$Str .= $options; |
} elsif ($context eq 'author') { |
|
$Str .= $options; |
|
} |
} else { |
} else { |
$Str .= '<table><tr><td><span class="LC_nobreak"<b>'.&mt('role').': </b>'. |
my ($cnum,$cdom) = &get_course_identity(); |
$options.'</span></td><td> </td><td><span class="LC_nobreak">'. |
my $rowtitle = &mt('section'); |
'<b>'.&mt('section').': </b><input type="text" name="section" value="" size="12" /></span></td></tr></table>'; |
my $secbox = §ion_picker($cdom,$cnum,'Any',$rowtitle, |
} |
$permission,$context,'upload'); |
if ($context eq 'course') { |
$Str .= $secbox."<h3>".&mt('Full Update')."</h3>\n". |
$Str .= "<h3>".&mt('Full Update')."</h3>\n". |
'<p><label><input type="checkbox" name="fullup" value="yes">'. |
'<label><input type="checkbox" name="fullup" value="yes">'. |
' '.&mt('Display students with current/future access, who are not in the uploaded file.').'<br />'.&mt('Students selected from this list can be dropped.'); |
' '.&mt('Full update (also print list of users not enrolled anymore)'). |
|
"</label></p>\n"; |
"</label></p>\n"; |
} |
} |
if ($context eq 'course' || $context eq 'domain') { |
if ($context eq 'course' || $context eq 'domain') { |
Line 815 sub print_upload_manager_form {
|
Line 843 sub print_upload_manager_form {
|
my ($krbdef,$krbdefdom) = |
my ($krbdef,$krbdefdom) = |
&Apache::loncommon::get_kerberos_defaults($defdom); |
&Apache::loncommon::get_kerberos_defaults($defdom); |
# |
# |
&print_upload_manager_header($r,$datatoken,$distotal,$krbdefdom,$context); |
&print_upload_manager_header($r,$datatoken,$distotal,$krbdefdom,$context, |
|
$permission); |
my $i; |
my $i; |
my $keyfields; |
my $keyfields; |
if ($total>=0) { |
if ($total>=0) { |
Line 849 sub print_upload_manager_form {
|
Line 878 sub print_upload_manager_form {
|
} |
} |
$r->print('</div>'); |
$r->print('</div>'); |
&print_upload_manager_footer($r,$i,$keyfields,$defdom,$today,$halfyear, |
&print_upload_manager_footer($r,$i,$keyfields,$defdom,$today,$halfyear, |
$context); |
$context,$permission); |
} |
} |
|
|
sub setup_date_selectors { |
sub setup_date_selectors { |
my ($starttime,$endtime,$mode,$nolink) = @_; |
my ($starttime,$endtime,$mode,$nolink,$formname) = @_; |
|
if ($formname eq '') { |
|
$formname = 'studentform'; |
|
} |
if (! defined($starttime)) { |
if (! defined($starttime)) { |
$starttime = time; |
$starttime = time; |
unless ($mode eq 'create_enrolldates' || $mode eq 'create_defaultdates') { |
unless ($mode eq 'create_enrolldates' || $mode eq 'create_defaultdates') { |
Line 876 sub setup_date_selectors {
|
Line 908 sub setup_date_selectors {
|
} |
} |
|
|
my $startdateform = |
my $startdateform = |
&Apache::lonhtmlcommon::date_setter('studentform','startdate',$starttime, |
&Apache::lonhtmlcommon::date_setter($formname,'startdate',$starttime, |
undef,undef,undef,undef,undef,undef,undef,$nolink); |
undef,undef,undef,undef,undef,undef,undef,$nolink); |
|
|
my $enddateform = |
my $enddateform = |
&Apache::lonhtmlcommon::date_setter('studentform','enddate',$endtime, |
&Apache::lonhtmlcommon::date_setter($formname,'enddate',$endtime, |
undef,undef,undef,undef,undef,undef,undef,$nolink); |
undef,undef,undef,undef,undef,undef,undef,$nolink); |
|
|
if ($mode eq 'create_enrolldates') { |
if ($mode eq 'create_enrolldates') { |
Line 913 sub get_dates_from_form {
|
Line 945 sub get_dates_from_form {
|
} |
} |
|
|
sub date_setting_table { |
sub date_setting_table { |
my ($starttime,$endtime,$mode,$bulkaction) = @_; |
my ($starttime,$endtime,$mode,$bulkaction,$formname,$permission) = @_; |
my $nolink; |
my $nolink; |
if ($bulkaction) { |
if ($bulkaction) { |
$nolink = 1; |
$nolink = 1; |
} |
} |
my ($startform,$endform) = |
my ($startform,$endform) = |
&setup_date_selectors($starttime,$endtime,$mode,$nolink); |
&setup_date_selectors($starttime,$endtime,$mode,$nolink,$formname); |
my $dateDefault; |
my $dateDefault; |
if ($mode eq 'create_enrolldates' || $mode eq 'create_defaultdates') { |
if ($mode eq 'create_enrolldates' || $mode eq 'create_defaultdates') { |
$dateDefault = ' '; |
$dateDefault = ' '; |
} elsif ($mode ne 'author' && $mode ne 'domain') { |
} elsif ($mode ne 'author' && $mode ne 'domain') { |
if (($bulkaction eq 'reenable') || |
if (($bulkaction eq 'reenable') || |
($bulkaction eq 'activate') || |
($bulkaction eq 'activate') || |
($bulkaction eq 'chgdates')) { |
($bulkaction eq 'chgdates') || |
$dateDefault = '<span class="LC_nobreak">'. |
($env{'form.action'} eq 'upload')) { |
'<label><input type="checkbox" name="makedatesdefault" /> '. |
if ($env{'request.course.sec'} eq '') { |
&mt('make these dates the default for future enrollment'). |
$dateDefault = '<span class="LC_nobreak">'. |
'</label></span>'; |
'<label><input type="checkbox" name="makedatesdefault" /> '. |
|
&mt('make these dates the default access dates for future student enrollment'). |
|
'</label></span>'; |
|
} |
} |
} |
} |
} |
my $perpetual = '<span class="LC_nobreak"><label><input type="checkbox" name="no_end_date"'; |
my $perpetual = '<span class="LC_nobreak"><label><input type="checkbox" name="no_end_date"'; |
Line 950 sub date_setting_table {
|
Line 985 sub date_setting_table {
|
'LC_oddrow_value')."\n". |
'LC_oddrow_value')."\n". |
$endform.' '.$perpetual. |
$endform.' '.$perpetual. |
&Apache::lonhtmlcommon::row_closure(1). |
&Apache::lonhtmlcommon::row_closure(1). |
&Apache::lonhtmlcommon::end_pick_box().'<br />'; |
&Apache::lonhtmlcommon::end_pick_box(); |
if ($dateDefault) { |
if ($dateDefault) { |
$result .= $dateDefault.'<br />'."\n"; |
$result .= $dateDefault.'<br />'."\n"; |
} |
} |
Line 1011 sub default_role_selector {
|
Line 1046 sub default_role_selector {
|
$options .= ' <option value="'.$role.'">'.$plrole.'</option>'; |
$options .= ' <option value="'.$role.'">'.$plrole.'</option>'; |
} |
} |
my $courseform = &Apache::loncommon::selectcourse_link |
my $courseform = &Apache::loncommon::selectcourse_link |
('studentform','defaultcourse','defaultdomain','defaultdesc',"$env{'request.role.domain'}",undef,'Course'); |
('studentform','dccourse','dcdomain','coursedesc',"$env{'request.role.domain'}",undef,'Course'); |
$cb_jscript = |
$cb_jscript = |
&Apache::loncommon::coursebrowser_javascript($env{'request.role.domain'},'defaultsec','studentform'); |
&Apache::loncommon::coursebrowser_javascript($env{'request.role.domain'},'currsec','studentform'); |
$coursepick = &Apache::loncommon::start_data_table(). |
$coursepick = &Apache::loncommon::start_data_table(). |
&Apache::loncommon::start_data_table_header_row(). |
&Apache::loncommon::start_data_table_header_row(). |
'<th>'.$courseform.'</th><th>'.$lt{'rol'}.'</th>'. |
'<th>'.$courseform.'</th><th>'.$lt{'rol'}.'</th>'. |
'<th>'.$lt{'grs'}.'</th>'. |
'<th>'.$lt{'grs'}.'</th>'. |
&Apache::loncommon::end_data_table_header_row(). |
&Apache::loncommon::end_data_table_header_row(). |
&Apache::loncommon::start_data_table_row()."\n". |
&Apache::loncommon::start_data_table_row()."\n". |
'<td><input type="text" name="defaultdesc" value="" onFocus="this.blur();opencrsbrowser('."'studentform','defcourse','defdomain','coursedesc',''".')" /></td>'."\n". |
'<td><input type="text" name="coursedesc" value="" onFocus="this.blur();opencrsbrowser('."'studentform','dccourse','dcdomain','coursedesc',''".')" /></td>'."\n". |
'<td><select name="courserole">'."\n". |
'<td><select name="courserole">'."\n". |
&default_course_roles($context,$checkpriv,%customroles)."\n". |
&default_course_roles($context,$checkpriv,%customroles)."\n". |
'</select></td><td>'. |
'</select></td><td>'. |
'<table class="LC_createuser">'. |
'<table class="LC_createuser">'. |
'<tr class="LC_section_row"><td valign"top">'. |
'<tr class="LC_section_row"><td valign"top">'. |
$lt{'exs'}.'<br /><select name="defaultsec">'. |
$lt{'exs'}.'<br /><select name="currsec">'. |
' <option value=""><--'.&mt('Pick course first'). |
' <option value=""><--'.&mt('Pick course first'). |
'</select></td>'. |
'</select></td>'. |
'<td> </td>'. |
'<td> </td>'. |
'<td valign="top">'.$lt{'new'}.'<br />'. |
'<td valign="top">'.$lt{'new'}.'<br />'. |
'<input type="text" name="newsec" value="" size="5" />'. |
'<input type="text" name="newsec" value="" size="5" />'. |
'<input type="hidden" name="groups" value="" /></td>'. |
'<input type="hidden" name="groups" value="" />'. |
'</tr></table></td>'. |
'<input type="hidden" name="sections" value="" />'. |
|
'<input type="hidden" name="origdom" value="'. |
|
$env{'request.role.domain'}.'" />'. |
|
'<input type="hidden" name="dccourse" value="" />'. |
|
'<input type="hidden" name="dcdomain" value="" />'. |
|
'</td></tr></table></td>'. |
&Apache::loncommon::end_data_table_row(). |
&Apache::loncommon::end_data_table_row(). |
&Apache::loncommon::end_data_table()."\n". |
&Apache::loncommon::end_data_table()."\n"; |
'<input type="hidden" name="defaultcourse" value="" />'. |
|
'<input type="hidden" name="defaultdomain" value="" />'; |
|
} |
} |
$options .= '</select>'; |
$options .= '</select>'; |
return ($options,$cb_jscript,$coursepick); |
return ($options,$cb_jscript,$coursepick); |
Line 1049 sub default_course_roles {
|
Line 1087 sub default_course_roles {
|
my $custom = 1; |
my $custom = 1; |
my @roles = &course_roles($context,$checkpriv,$custom); |
my @roles = &course_roles($context,$checkpriv,$custom); |
foreach my $role (@roles) { |
foreach my $role (@roles) { |
my $plrole=&Apache::lonnet::plaintext($role); |
if ($role ne 'cr') { |
$output .= ' <option value="'.$role.'">'.$plrole.'</option>'; |
my $plrole=&Apache::lonnet::plaintext($role); |
|
$output .= ' <option value="'.$role.'">'.$plrole.'</option>'; |
|
} |
} |
} |
if (keys(%customroles) > 0) { |
if (keys(%customroles) > 0) { |
my %customroles = &my_custom_roles(); |
if (grep(/^cr$/,@roles)) { |
foreach my $cust (sort(keys(%customroles))) { |
foreach my $cust (sort(keys(%customroles))) { |
my $custrole='cr_cr_'.$env{'user.domain'}. |
my $custrole='cr_'.$env{'user.domain'}. |
'_'.$env{'user.name'}.'_'.$cust; |
'_'.$env{'user.name'}.'_'.$cust; |
$output .= ' <option value="'.$custrole.'">'.$cust.'</option>'; |
$output .= ' <option value="'.$custrole.'">'.$cust.'</option>'; |
|
} |
} |
} |
} |
} |
return $output; |
return $output; |
Line 1108 sub course_roles {
|
Line 1149 sub course_roles {
|
if (&Apache::lonnet::allowed('c'.$role,$env{'request.course.id'})) { |
if (&Apache::lonnet::allowed('c'.$role,$env{'request.course.id'})) { |
push(@roles,$role); |
push(@roles,$role); |
} else { |
} else { |
if ($role ne 'cc' && $env{'request.course.section'} ne '') { |
if ($role ne 'cc' && $env{'request.course.sec'} ne '') { |
if (!&Apache::lonnet::allowed('c'.$role, |
if (&Apache::lonnet::allowed('c'.$role, |
$env{'request.course.id'}.'/'. |
$env{'request.course.id'}.'/'. |
$env{'request.course.section'})) { |
$env{'request.course.sec'})) { |
push(@roles,$role); |
push(@roles,$role); |
} |
} |
} |
} |
Line 1236 sub print_userlist {
|
Line 1277 sub print_userlist {
|
if ($role eq $env{'form.showrole'}) { |
if ($role eq $env{'form.showrole'}) { |
$roleselected = ' selected="selected" '; |
$roleselected = ' selected="selected" '; |
} |
} |
my $plrole=&Apache::lonnet::plaintext($role); |
my $plrole; |
|
if ($role eq 'cr') { |
|
$plrole = &mt('Custom role'); |
|
} else { |
|
$plrole=&Apache::lonnet::plaintext($role); |
|
} |
$role_select .= '<option value="'.$role.'"'.$roleselected.'>'.$plrole.'</option>'; |
$role_select .= '<option value="'.$role.'"'.$roleselected.'>'.$plrole.'</option>'; |
} |
} |
$roleselected = ''; |
$role_select .= '</select>'; |
if ($env{'form.showrole'} eq 'cr') { |
|
$roleselected = ' selected="selected" '; |
|
} |
|
$role_select .= '<option value="cr"'.$roleselected.'>'.&mt('Custom role').'</option>'. |
|
'</select>'; |
|
$r->print('<label>'.&mt('Role: [_1]',$role_select).'</label>'); |
$r->print('<label>'.&mt('Role: [_1]',$role_select).'</label>'); |
} |
} |
if (!(($context eq 'domain') && ($env{'form.roletype'} eq 'course'))) { |
if (!(($context eq 'domain') && ($env{'form.roletype'} eq 'course'))) { |
Line 1275 sub print_userlist {
|
Line 1316 sub print_userlist {
|
if ($context eq 'course') { |
if ($context eq 'course') { |
my $classlist = &Apache::loncoursedata::get_classlist(); |
my $classlist = &Apache::loncoursedata::get_classlist(); |
my $secidx = &Apache::loncoursedata::CL_SECTION(); |
my $secidx = &Apache::loncoursedata::CL_SECTION(); |
|
my $viewablesec = &viewable_section($permission); |
foreach my $student (keys(%{$classlist})) { |
foreach my $student (keys(%{$classlist})) { |
if (exists($permission->{'view_section'})) { |
my $section = $classlist->{$student}[$secidx]; |
if ($classlist->{$student}[$secidx] ne $permission->{'view_section'}) { |
if ($viewablesec ne '') { |
|
if ($section ne $viewablesec) { |
next; |
next; |
} else { |
} else { |
$userlist{$student} = $classlist->{$student}; |
$userlist{$student} = $classlist->{$student}; |
Line 1286 sub print_userlist {
|
Line 1329 sub print_userlist {
|
$userlist{$student} = $classlist->{$student}; |
$userlist{$student} = $classlist->{$student}; |
} |
} |
} |
} |
my $cid =$env{'request.course.id'}; |
my $cid = $env{'request.course.id'}; |
my ($cnum,$cdom) = &get_course_identity($cid); |
my ($cnum,$cdom) = &get_course_identity($cid); |
my $showroles; |
my $showroles; |
if ($env{'form.showrole'} ne 'Any') { |
if ($env{'form.showrole'} ne 'Any') { |
Line 1294 sub print_userlist {
|
Line 1337 sub print_userlist {
|
} else { |
} else { |
$showroles = undef; |
$showroles = undef; |
} |
} |
|
my $withsec = 1; |
my %advrolehash = &Apache::lonnet::get_my_roles($cnum,$cdom,undef, |
my %advrolehash = &Apache::lonnet::get_my_roles($cnum,$cdom,undef, |
\@statuses,$showroles); |
\@statuses,$showroles,undef,$withsec); |
&gather_userinfo($context,$format,\%userlist,$indexhash,\%userinfo, |
&gather_userinfo($context,$format,\%userlist,$indexhash,\%userinfo, |
\%advrolehash,$permission); |
\%advrolehash,$permission); |
} else { |
} else { |
Line 1327 sub print_userlist {
|
Line 1371 sub print_userlist {
|
} else { |
} else { |
my @possroles; |
my @possroles; |
if ($env{'form.showrole'} eq 'Any') { |
if ($env{'form.showrole'} eq 'Any') { |
my @possroles = &roles_by_context($context); |
@possroles = &roles_by_context('author'); |
} else { |
} else { |
@possroles = ($env{'form.showrole'}); |
@possroles = ($env{'form.showrole'}); |
} |
} |
foreach my $author (sort(keys(%{$dom_roles{$key}}))) { |
foreach my $author (sort(keys(%{$dom_roles{$key}}))) { |
my ($role,$authorname,$authordom) = split(/:/,$author); |
my ($role,$authorname,$authordom) = split(/:/,$author,-1); |
my $extent = '/'.$authordom.'/'.$authorname; |
my $extent = '/'.$authordom.'/'.$authorname; |
%{$coauthors{$extent}} = |
%{$coauthors{$extent}} = |
&Apache::lonnet::get_my_roles($authorname, |
&Apache::lonnet::get_my_roles($authorname, |
Line 1348 sub print_userlist {
|
Line 1392 sub print_userlist {
|
my %courses = &process_coursepick(); |
my %courses = &process_coursepick(); |
my %allusers; |
my %allusers; |
foreach my $cid (keys(%courses)) { |
foreach my $cid (keys(%courses)) { |
my %coursehash = |
|
&Apache::lonnet::coursedescription($cid,{'one_time' => 1}); |
|
my ($cnum,$cdom,$cdesc) = &get_course_identity($cid); |
my ($cnum,$cdom,$cdesc) = &get_course_identity($cid); |
next if ($cnum eq '' || $cdom eq ''); |
next if ($cnum eq '' || $cdom eq ''); |
my $custom = 1; |
my $custom = 1; |
Line 1357 sub print_userlist {
|
Line 1399 sub print_userlist {
|
%statushash); |
%statushash); |
if ($env{'form.showrole'} eq 'Any') { |
if ($env{'form.showrole'} eq 'Any') { |
@roles = &course_roles($context,undef,$custom); |
@roles = &course_roles($context,undef,$custom); |
unshift(@roles,'cr'); |
|
} else { |
} else { |
@roles = ($env{'form.showrole'}); |
@roles = ($env{'form.showrole'}); |
} |
} |
Line 1433 sub list_submit_button {
|
Line 1474 sub list_submit_button {
|
sub gather_userinfo { |
sub gather_userinfo { |
my ($context,$format,$userlist,$indexhash,$userinfo,$rolehash,$permission) = @_; |
my ($context,$format,$userlist,$indexhash,$userinfo,$rolehash,$permission) = @_; |
foreach my $item (keys(%{$rolehash})) { |
foreach my $item (keys(%{$rolehash})) { |
@{$userlist->{$item}} = (); |
|
my %userdata; |
my %userdata; |
if ($context eq 'author' || $context eq 'course') { |
if ($context eq 'author') { |
($userdata{'username'},$userdata{'domain'},$userdata{'role'}) = |
($userdata{'username'},$userdata{'domain'},$userdata{'role'}) = |
split(/:/,$item); |
split(/:/,$item); |
($userdata{'start'},$userdata{'end'})=split(/:/,$rolehash->{$item}); |
($userdata{'start'},$userdata{'end'})=split(/:/,$rolehash->{$item}); |
&build_user_record(\%userdata,$userinfo,$indexhash,$item,$userlist); |
&build_user_record(\%userdata,$userinfo,$indexhash,$item,$userlist); |
|
} elsif ($context eq 'course') { |
|
my $viewablesec = &viewable_section($permission); |
|
($userdata{'username'},$userdata{'domain'},$userdata{'role'}, |
|
$userdata{'section'}) = split(/:/,$item,-1); |
|
($userdata{'start'},$userdata{'end'})=split(/:/,$rolehash->{$item}); |
|
if (($viewablesec ne '') && ($userdata{'section'} ne '')) { |
|
next if ($viewablesec ne $userdata{'section'}); |
|
} |
|
&build_user_record(\%userdata,$userinfo,$indexhash,$item,$userlist); |
} elsif ($context eq 'domain') { |
} elsif ($context eq 'domain') { |
if ($env{'form.roletype'} eq 'domain') { |
if ($env{'form.roletype'} eq 'domain') { |
($userdata{'role'},$userdata{'username'},$userdata{'domain'}) = |
($userdata{'role'},$userdata{'username'},$userdata{'domain'}) = |
Line 1469 sub gather_userinfo {
|
Line 1518 sub gather_userinfo {
|
my $space = ', '; |
my $space = ', '; |
if ($format eq 'html' || $format eq 'view') { |
if ($format eq 'html' || $format eq 'view') { |
$spanstart = '<span class="LC_nobreak">'; |
$spanstart = '<span class="LC_nobreak">'; |
if ($permission->{'cusr'}) { |
# FIXME: actions on courses disabled for now |
if ($numcids > 1) { |
# if ($permission->{'cusr'}) { |
$spanstart .= '<input type="radio" name="'.$item.'" value="'.$cid.'" />'; |
# if ($numcids > 1) { |
} else { |
# $spanstart .= '<input type="radio" name="'.$item.'" value="'.$cid.'" />'; |
$spanstart .= '<input type="hidden" name="'.$item.'" value="'.$cid.'" />'; |
# } else { |
} |
# $spanstart .= '<input type="hidden" name="'.$item.'" value="'.$cid.'" />'; |
} |
# } |
|
# } |
$spanend = '</span><br />'; |
$spanend = '</span><br />'; |
$space = ', '; |
$space = ', '; |
} |
} |
Line 1754 sub show_users_list {
|
Line 1804 sub show_users_list {
|
if (!grep(/^\Q$sortby\E$/,@sortable)) { |
if (!grep(/^\Q$sortby\E$/,@sortable)) { |
$sortby = 'username'; |
$sortby = 'username'; |
} |
} |
my $setting = $env{'form.roleaction'}; |
my $setting = $env{'form.roletype'}; |
my ($cid,$cdom,$cnum,$classgroups,$displayphotos,$displayclickers); |
my ($cid,$cdom,$cnum,$classgroups,$displayphotos,$displayclickers); |
if ($context eq 'course') { |
if ($context eq 'course') { |
$cid=$env{'request.course.id'}; |
$cid = $env{'request.course.id'}; |
($cnum,$cdom) = &get_course_identity($cid); |
($cnum,$cdom) = &get_course_identity($cid); |
($classgroups) = &Apache::loncoursedata::get_group_memberships( |
($classgroups) = &Apache::loncoursedata::get_group_memberships( |
$userlist,$keylist,$cdom,$cnum); |
$userlist,$keylist,$cdom,$cnum); |
Line 2318 sub select_actions {
|
Line 2368 sub select_actions {
|
chgsec => "Change section associated with user roles", |
chgsec => "Change section associated with user roles", |
); |
); |
my ($output,$options,%choices); |
my ($output,$options,%choices); |
|
# FIXME Disable actions for now for roletype=course in domain context |
|
if ($context eq 'domain' && $setting eq 'course') { |
|
return; |
|
} |
if ($statusmode eq 'Any') { |
if ($statusmode eq 'Any') { |
$options .= ' |
$options .= ' |
<option value="chgdates">'.$lt{'chgdates'}.'</option>'; |
<option value="chgdates">'.$lt{'chgdates'}.'</option>'; |
Line 2685 sub results_header_row {
|
Line 2739 sub results_header_row {
|
} |
} |
return $description; |
return $description; |
} |
} |
|
|
|
sub viewable_section { |
|
my ($permission) = @_; |
|
my $viewablesec; |
|
if (ref($permission) eq 'HASH') { |
|
if (exists($permission->{'view_section'})) { |
|
$viewablesec = $permission->{'view_section'}; |
|
} elsif (exists($permission->{'cusr_section'})) { |
|
$viewablesec = $permission->{'cusr_section'}; |
|
} |
|
} |
|
return $viewablesec; |
|
} |
|
|
|
|
################################################# |
################################################# |
################################################# |
################################################# |