version 1.108, 2005/09/01 19:27:35
|
version 1.110, 2006/03/19 22:15:46
|
Line 116 sub authorpriv {
|
Line 116 sub authorpriv {
|
# =================================================================== Phase one |
# =================================================================== Phase one |
|
|
sub print_username_entry_form { |
sub print_username_entry_form { |
my $r=shift; |
my ($r) = @_; |
my $defdom=$env{'request.role.domain'}; |
my $defdom=$env{'request.role.domain'}; |
my @domains = &Apache::loncommon::get_domains(); |
my @domains = &Apache::loncommon::get_domains(); |
my $domform = &Apache::loncommon::select_dom_form($defdom,'ccdomain'); |
my $domform = &Apache::loncommon::select_dom_form($defdom,'ccdomain'); |
my $html=&Apache::lonxml::xmlbegin(); |
|
my $bodytag =&Apache::loncommon::bodytag('Create Users, Change User Privileges').&Apache::loncommon::help_open_menu('',undef,undef,'',282,'Instructor Interface'); |
|
my $selscript=&Apache::loncommon::studentbrowser_javascript(); |
my $selscript=&Apache::loncommon::studentbrowser_javascript(); |
|
my $start_page = |
|
&Apache::loncommon::start_page('Create Users, Change User Privileges', |
|
$selscript); |
|
|
my $sellink=&Apache::loncommon::selectstudent_link |
my $sellink=&Apache::loncommon::selectstudent_link |
('crtuser','ccuname','ccdomain'); |
('crtuser','ccuname','ccdomain'); |
my %existingroles=&my_custom_roles(); |
my %existingroles=&my_custom_roles(); |
Line 137 sub print_username_entry_form {
|
Line 139 sub print_username_entry_form {
|
'nr' => "Name of Role", |
'nr' => "Name of Role", |
'cre' => "Custom Role Editor" |
'cre' => "Custom Role Editor" |
); |
); |
|
my $help = &Apache::loncommon::help_open_menu('',undef,undef,'',282,'Instructor Interface'); |
my $helpsiur=&Apache::loncommon::help_open_topic('Course_Change_Privileges'); |
my $helpsiur=&Apache::loncommon::help_open_topic('Course_Change_Privileges'); |
my $helpecpr=&Apache::loncommon::help_open_topic('Course_Editing_Custom_Roles'); |
my $helpecpr=&Apache::loncommon::help_open_topic('Course_Editing_Custom_Roles'); |
$r->print(<<"ENDDOCUMENT"); |
$r->print(<<"ENDDOCUMENT"); |
$html |
|
<head> |
|
<title>The LearningOnline Network with CAPA</title> |
|
$selscript |
|
</head> |
|
$bodytag |
|
<form action="/adm/createuser" method="post" name="crtuser"> |
<form action="/adm/createuser" method="post" name="crtuser"> |
<input type="hidden" name="phase" value="get_user_info"> |
<input type="hidden" name="phase" value="get_user_info"> |
<h2>$lt{siur}$helpsiur</h2> |
<h2>$lt{siur}$helpsiur</h2> |
Line 167 $lt{'nr'}: $choice <input type="text" si
|
Line 164 $lt{'nr'}: $choice <input type="text" si
|
</form> |
</form> |
ENDCUSTOM |
ENDCUSTOM |
} |
} |
$r->print('</body></html>'); |
$r->print(&Apache::loncommon::end_page()); |
|
} |
|
|
|
|
|
sub user_modification_js { |
|
my ($pjump_def, $dc_setcourse_code)=@_; |
|
return <<END; |
|
<script type="text/javascript" language="Javascript"> |
|
|
|
function pclose() { |
|
parmwin=window.open("/adm/rat/empty.html","LONCAPAparms", |
|
"height=350,width=350,scrollbars=no,menubar=no"); |
|
parmwin.close(); |
|
} |
|
|
|
$pjump_def |
|
$dc_setcourse_code |
|
|
|
function dateset() { |
|
eval("document.cu."+document.cu.pres_marker.value+ |
|
".value=document.cu.pres_value.value"); |
|
pclose(); |
|
} |
|
|
|
function setSections() { |
|
var re1 = /^currsec_/; |
|
for (var i=0;i<document.cu.elements.length;i++) { |
|
var str = document.cu.elements[i].name; |
|
var checkcurr = str.match(re1); |
|
if (checkcurr != null) { |
|
var re2 = /^currsec_[a-zA-Z0-9]+_[a-zA-Z0-9]+_(\\w+)\$/; |
|
if (document.cu.elements[i-1].checked == true) { |
|
var re2 = /^currsec_[a-zA-Z0-9]+_[a-zA-Z0-9]+_(\\w+)\$/; |
|
match = re2.exec(str); |
|
var role = match[1]; |
|
if (role == 'cc') { |
|
alert("Section designations do not apply to Course Coordinator roles.\\nA course coordinator role will be added with access to all sections."); |
|
} |
|
else { |
|
var sections = ''; |
|
var numsec = 0; |
|
var sections; |
|
for (var j=0; j<document.cu.elements[i].length; j++) { |
|
if (document.cu.elements[i].options[j].selected == true ) { |
|
if (document.cu.elements[i].options[j].value != "") { |
|
if (numsec == 0) { |
|
if (document.cu.elements[i].options[j].value != "") { |
|
sections = document.cu.elements[i].options[j].value; |
|
numsec ++; |
|
} |
|
} |
|
else { |
|
sections = sections + "," + document.cu.elements[i].options[j].value |
|
numsec ++; |
|
} |
|
} |
|
} |
|
} |
|
if (numsec > 0) { |
|
if (document.cu.elements[i+1].value != "" && document.cu.elements[i+1].value != null) { |
|
sections = sections + "," + document.cu.elements[i+1].value; |
|
} |
|
} |
|
else { |
|
sections = document.cu.elements[i+1].value; |
|
} |
|
var newsecs = document.cu.elements[i+1].value; |
|
if (newsecs != null && newsecs != "") { |
|
var numsplit = newsecs.split(/,/g); |
|
numsec = numsec + numsplit.length; |
|
} |
|
if ((role == 'st') && (numsec > 1)) { |
|
alert("In each course, each user may only have one student role at a time. You had selected "+numsec+" sections.\\nPlease modify your selections so they include no more than one section.") |
|
return; |
|
} |
|
else { |
|
document.cu.elements[i+2].value = sections; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
document.cu.submit(); |
|
} |
|
</script> |
|
END |
} |
} |
|
|
# =================================================================== Phase two |
# =================================================================== Phase two |
Line 274 sub print_user_modification_page {
|
Line 356 sub print_user_modification_page {
|
} |
} |
ENDSCRIPT |
ENDSCRIPT |
} |
} |
my $html=&Apache::lonxml::xmlbegin(); |
|
my $dochead =<<"ENDDOCHEAD"; |
|
$html |
|
<head> |
|
<title>The LearningOnline Network with CAPA</title> |
|
<script type="text/javascript" language="Javascript"> |
|
|
|
function pclose() { |
my $js = &user_modification_js($pjump_def, $dc_setcourse_code); |
parmwin=window.open("/adm/rat/empty.html","LONCAPAparms", |
my $start_page = |
"height=350,width=350,scrollbars=no,menubar=no"); |
&Apache::loncommon::start_page('Create Users, Change User Privileges', |
parmwin.close(); |
$js,{'add_entries' => $loaditem,}); |
} |
|
|
|
$pjump_def |
|
$dc_setcourse_code |
|
|
|
function dateset() { |
|
eval("document.cu."+document.cu.pres_marker.value+ |
|
".value=document.cu.pres_value.value"); |
|
pclose(); |
|
} |
|
|
|
function setSections() { |
|
var re1 = /^currsec_/; |
|
for (var i=0;i<document.cu.elements.length;i++) { |
|
var str = document.cu.elements[i].name; |
|
var checkcurr = str.match(re1); |
|
if (checkcurr != null) { |
|
var re2 = /^currsec_[a-zA-Z0-9]+_[a-zA-Z0-9]+_(\\w+)\$/; |
|
if (document.cu.elements[i-1].checked == true) { |
|
var re2 = /^currsec_[a-zA-Z0-9]+_[a-zA-Z0-9]+_(\\w+)\$/; |
|
match = re2.exec(str); |
|
var role = match[1]; |
|
if (role == 'cc') { |
|
alert("Section designations do not apply to Course Coordinator roles.\\nA course coordinator role will be added with access to all sections."); |
|
} |
|
else { |
|
var sections = ''; |
|
var numsec = 0; |
|
var sections; |
|
for (var j=0; j<document.cu.elements[i].length; j++) { |
|
if (document.cu.elements[i].options[j].selected == true ) { |
|
if (document.cu.elements[i].options[j].value != "") { |
|
if (numsec == 0) { |
|
if (document.cu.elements[i].options[j].value != "") { |
|
sections = document.cu.elements[i].options[j].value; |
|
numsec ++; |
|
} |
|
} |
|
else { |
|
sections = sections + "," + document.cu.elements[i].options[j].value |
|
numsec ++; |
|
} |
|
} |
|
} |
|
} |
|
if (numsec > 0) { |
|
if (document.cu.elements[i+1].value != "" && document.cu.elements[i+1].value != null) { |
|
sections = sections + "," + document.cu.elements[i+1].value; |
|
} |
|
} |
|
else { |
|
sections = document.cu.elements[i+1].value; |
|
} |
|
var newsecs = document.cu.elements[i+1].value; |
|
if (newsecs != null && newsecs != "") { |
|
var numsplit = newsecs.split(/,/g); |
|
numsec = numsec + numsplit.length; |
|
} |
|
if ((role == 'st') && (numsec > 1)) { |
|
alert("In each course, each user may only have one student role at a time. You had selected "+numsec+" sections.\\nPlease modify your selections so they include no more than one section.") |
|
return; |
|
} |
|
else { |
|
document.cu.elements[i+2].value = sections; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
document.cu.submit(); |
|
} |
|
</script> |
|
</head> |
|
ENDDOCHEAD |
|
$r->print(&Apache::loncommon::bodytag( |
|
'Create Users, Change User Privileges',undef,$loaditem)); |
|
my $forminfo =<<"ENDFORMINFO"; |
my $forminfo =<<"ENDFORMINFO"; |
<form action="/adm/createuser" method="post" name="cu"> |
<form action="/adm/createuser" method="post" name="cu"> |
<input type="hidden" name="phase" value="update_user_data"> |
<input type="hidden" name="phase" value="update_user_data"> |
Line 402 ENDFORMINFO
|
Line 403 ENDFORMINFO
|
my $genhelp=&Apache::loncommon::help_open_topic('Generation'); |
my $genhelp=&Apache::loncommon::help_open_topic('Generation'); |
&initialize_authen_forms(); |
&initialize_authen_forms(); |
$r->print(<<ENDNEWUSER); |
$r->print(<<ENDNEWUSER); |
$dochead |
$start_page |
<h1>$lt{'cnu'}</h1> |
<h1>$lt{'cnu'}</h1> |
$forminfo |
$forminfo |
<h2>$lt{'nu'} "$ccuname" $lt{'id'} $ccdomain</h2> |
<h2>$lt{'nu'} "$ccuname" $lt{'id'} $ccdomain</h2> |
Line 443 ENDNEWUSER
|
Line 444 ENDNEWUSER
|
'gen' => "generation" |
'gen' => "generation" |
); |
); |
$r->print(<<ENDCHANGEUSER); |
$r->print(<<ENDCHANGEUSER); |
$dochead |
$start_page |
<h1>$lt{'cup'}</h1> |
<h1>$lt{'cup'}</h1> |
$forminfo |
$forminfo |
<h2>$lt{'usr'} "$ccuname" $lt{'id'} "$ccdomain"</h2> |
<h2>$lt{'usr'} "$ccuname" $lt{'id'} "$ccdomain"</h2> |
Line 863 ENDDROW
|
Line 864 ENDDROW
|
$r->print(&course_level_table(%inccourses)); |
$r->print(&course_level_table(%inccourses)); |
$r->print('<hr /><input type="button" value="'.&mt('Modify User').'" onClick="setSections()">'."\n"); |
$r->print('<hr /><input type="button" value="'.&mt('Modify User').'" onClick="setSections()">'."\n"); |
} |
} |
$r->print("</form></body></html>"); |
$r->print("</form>".&Apache::loncommon::end_page()); |
} |
} |
|
|
# ================================================================= Phase Three |
# ================================================================= Phase Three |
Line 873 sub update_user_data {
|
Line 874 sub update_user_data {
|
$env{'form.ccdomain'}); |
$env{'form.ccdomain'}); |
# Error messages |
# Error messages |
my $error = '<font color="#ff0000">'.&mt('Error').':</font>'; |
my $error = '<font color="#ff0000">'.&mt('Error').':</font>'; |
my $end = '</body></html>'; |
my $end = &Apache::loncommon::end_page(); |
# Print header |
|
my $html=&Apache::lonxml::xmlbegin(); |
|
$r->print(<<ENDTHREEHEAD); |
|
$html |
|
<head> |
|
<title>The LearningOnline Network with CAPA</title> |
|
</head> |
|
ENDTHREEHEAD |
|
my $title; |
my $title; |
if (exists($env{'form.makeuser'})) { |
if (exists($env{'form.makeuser'})) { |
$title='Set Privileges for New User'; |
$title='Set Privileges for New User'; |
} else { |
} else { |
$title='Modify User Privileges'; |
$title='Modify User Privileges'; |
} |
} |
$r->print(&Apache::loncommon::bodytag($title)); |
$r->print(&Apache::loncommon::start_page($title)); |
# Check Inputs |
# Check Inputs |
if (! $env{'form.ccuname'} ) { |
if (! $env{'form.ccuname'} ) { |
$r->print($error.&mt('No login name specified').'.'.$end); |
$r->print($error.&mt('No login name specified').'.'.$end); |
Line 1266 END
|
Line 1260 END
|
# Flush the course logs so reverse user roles immediately updated |
# Flush the course logs so reverse user roles immediately updated |
&Apache::lonnet::flushcourselogs(); |
&Apache::lonnet::flushcourselogs(); |
$r->print('<p><a href="/adm/createuser">Create/Modify Another User</a></p>'); |
$r->print('<p><a href="/adm/createuser">Create/Modify Another User</a></p>'); |
$r->print('</body></html>'); |
$r->print(&Apache::loncommon::end_page()); |
} |
} |
|
|
sub commit_customrole { |
sub commit_customrole { |
Line 1402 sub custom_role_editor {
|
Line 1396 sub custom_role_editor {
|
return; |
return; |
} |
} |
|
|
$r->print(&Apache::loncommon::bodytag( |
$r->print(&Apache::loncommon::start_page('Custom Role Editor')); |
'Create Users, Change User Privileges').'<h2>'); |
|
my $syspriv=''; |
my $syspriv=''; |
my $dompriv=''; |
my $dompriv=''; |
my $coursepriv=''; |
my $coursepriv=''; |
my ($rdummy,$roledef)= |
my ($rdummy,$roledef)= |
&Apache::lonnet::get('roles',["rolesdef_$rolename"]); |
&Apache::lonnet::get('roles',["rolesdef_$rolename"]); |
# ------------------------------------------------------- Does this role exist? |
# ------------------------------------------------------- Does this role exist? |
|
$r->print('<h2>'); |
if (($rdummy ne 'con_lost') && ($roledef ne '')) { |
if (($rdummy ne 'con_lost') && ($roledef ne '')) { |
$r->print(&mt('Existing Role').' "'); |
$r->print(&mt('Existing Role').' "'); |
# ------------------------------------------------- Get current role privileges |
# ------------------------------------------------- Get current role privileges |
Line 1481 ENDCCF
|
Line 1475 ENDCCF
|
'</td></tr>'); |
'</td></tr>'); |
} |
} |
$r->print( |
$r->print( |
'<table><input type="submit" value="'.&mt('Define Role').'" /></form></body></html>'); |
'<table><input type="submit" value="'.&mt('Define Role').'" /></form>'. |
|
&Apache::loncommon::end_page()); |
} |
} |
|
|
# ---------------------------------------------------------- Call to definerole |
# ---------------------------------------------------------- Call to definerole |
sub set_custom_role { |
sub set_custom_role { |
my $r=shift; |
my ($r) = @_; |
|
|
my $rolename=$env{'form.rolename'}; |
my $rolename=$env{'form.rolename'}; |
|
|
Line 1497 sub set_custom_role {
|
Line 1492 sub set_custom_role {
|
return; |
return; |
} |
} |
|
|
$r->print(&Apache::loncommon::bodytag( |
$r->print(&Apache::loncommon::start_page('Save Custom Role').'<h2>'); |
'Create Users, Change User Privileges').'<h2>'); |
|
my ($rdummy,$roledef)= |
my ($rdummy,$roledef)= |
&Apache::lonnet::get('roles',["rolesdef_$rolename"]); |
&Apache::lonnet::get('roles',["rolesdef_$rolename"]); |
|
|
# ------------------------------------------------------- Does this role exist? |
# ------------------------------------------------------- Does this role exist? |
if (($rdummy ne 'con_lost') && ($roledef ne '')) { |
if (($rdummy ne 'con_lost') && ($roledef ne '')) { |
$r->print(&mt('Existing Role').' "'); |
$r->print(&mt('Existing Role').' "'); |
Line 1550 sub set_custom_role {
|
Line 1545 sub set_custom_role {
|
$env{'user.name'}, |
$env{'user.name'}, |
$rolename)); |
$rolename)); |
} |
} |
$r->print('</body></html>'); |
$r->print('<p><a href="/adm/createuser">Create another role, or Create/Modify a user.</a></p>'); |
|
$r->print(&Apache::loncommon::end_page()); |
} |
} |
|
|
# ================================================================ Main Handler |
# ================================================================ Main Handler |