version 1.99, 2022/02/01 23:13:19
|
version 1.100, 2022/02/06 21:36:59
|
Line 808 sub print_config_box {
|
Line 808 sub print_config_box {
|
|
|
sub process_changes { |
sub process_changes { |
my ($cdom,$cnum,$action,$values,$item,$changes,$allitems,$disallowed,$crstype) = @_; |
my ($cdom,$cnum,$action,$values,$item,$changes,$allitems,$disallowed,$crstype) = @_; |
my (%newvalues,%lti,%ltienc,$errors); |
my (%newvalues,%lti,%ltienc,$ltiauth,$errors); |
if (ref($item) eq 'HASH') { |
if (ref($item) eq 'HASH') { |
if (ref($changes) eq 'HASH') { |
if (ref($changes) eq 'HASH') { |
my @ordered; |
my @ordered; |
Line 840 sub process_changes {
|
Line 840 sub process_changes {
|
if (($env{'form.linkprot_add'}) && ($env{'form.linkprot_maxnum'} =~ /^\d+$/)) { |
if (($env{'form.linkprot_add'}) && ($env{'form.linkprot_maxnum'} =~ /^\d+$/)) { |
push(@ordered,$env{'form.linkprot_maxnum'}); |
push(@ordered,$env{'form.linkprot_maxnum'}); |
} |
} |
|
if (exists($env{'course.'.$env{'request.course.id'}.'.internal.ltiauth'})) { |
|
$ltiauth = $env{'course.'.$env{'request.course.id'}.'.internal.ltiauth'}; |
|
} else { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($cdom); |
|
$ltiauth = $domdefs{'crsltiauth'}; |
|
} |
} elsif (ref($item->{'ordered'}) eq 'ARRAY') { |
} elsif (ref($item->{'ordered'}) eq 'ARRAY') { |
if ($action eq 'courseinfo') { |
if ($action eq 'courseinfo') { |
my ($can_toggle_cat,$can_categorize) = |
my ($can_toggle_cat,$can_categorize) = |
Line 1044 sub process_changes {
|
Line 1050 sub process_changes {
|
$lti{$itemid}{$inner} = $env{$formitem}; |
$lti{$itemid}{$inner} = $env{$formitem}; |
} |
} |
} |
} |
|
if ($ltiauth) { |
|
my $reqitem = 'form.linkprot_requser_'.$idx; |
|
$env{$reqitem} =~ s/(`)/'/g; |
|
unless ($idx eq 'add') { |
|
if ($current{'requser'} ne $env{$reqitem}) { |
|
$haschanges{$itemid} = 1; |
|
} |
|
} |
|
if ($env{$reqitem} ne '') { |
|
$lti{$itemid}{'requser'} = $env{$reqitem}; |
|
foreach my $inner ('mapuser','notstudent') { |
|
my $formitem = 'form.linkprot_'.$inner.'_'.$idx; |
|
$env{$formitem} =~ s/(`)/'/g; |
|
if ($inner eq 'mapuser') { |
|
if ($env{$formitem} eq 'other') { |
|
my $mapuser = $env{'form.linkprot_customuser_'.$idx}; |
|
$mapuser =~ s/(`)/'/g; |
|
$mapuser =~ s/^\s+|\s+$//g; |
|
if ($mapuser ne '') { |
|
$lti{$itemid}{$inner} = $mapuser; |
|
} else { |
|
delete($lti{$itemid}{'requser'}); |
|
last; |
|
} |
|
} elsif ($env{$formitem} eq 'sourcedid') { |
|
$lti{$itemid}{$inner} = 'lis_person_sourcedid'; |
|
} elsif ($env{$formitem} eq 'email') { |
|
$lti{$itemid}{$inner} = 'lis_person_contact_email_primary'; |
|
} |
|
} else { |
|
$lti{$itemid}{$inner} = $env{$formitem}; |
|
} |
|
unless ($idx eq 'add') { |
|
if ($current{$inner} ne $lti{$itemid}{$inner}) { |
|
$haschanges{$itemid} = 1; |
|
} |
|
} |
|
} |
|
} |
|
} |
unless ($switchserver) { |
unless ($switchserver) { |
my $keyitem = 'form.linkprot_key_'.$idx; |
my $keyitem = 'form.linkprot_key_'.$idx; |
$env{$keyitem} =~ s/(`)/'/g; |
$env{$keyitem} =~ s/(`)/'/g; |
Line 1711 sub store_changes {
|
Line 1757 sub store_changes {
|
} |
} |
} |
} |
} elsif ($item eq 'linkprotection') { |
} elsif ($item eq 'linkprotection') { |
my (%ltienc,$lti_save_error); |
my ($ltiauth,%ltienc,$lti_save_error); |
|
if (exists($env{'course.'.$env{'request.course.id'}.'.internal.ltiauth'})) { |
|
$ltiauth = $env{'course.'.$env{'request.course.id'}.'.internal.ltiauth'}; |
|
} else { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($cdom); |
|
$ltiauth = $domdefs{'crsltiauth'}; |
|
} |
if (ref($changes->{$item}) eq 'HASH') { |
if (ref($changes->{$item}) eq 'HASH') { |
foreach my $id (sort { $a <=> $b } keys(%{$changes->{$item}})) { |
foreach my $id (sort { $a <=> $b } keys(%{$changes->{$item}})) { |
if (ref($changes->{$item}->{$id}) eq 'HASH') { |
if (ref($changes->{$item}->{$id}) eq 'HASH') { |
Line 1748 sub store_changes {
|
Line 1800 sub store_changes {
|
$chome = &Apache::lonnet::homeserver($cnum,$cdom); |
$chome = &Apache::lonnet::homeserver($cnum,$cdom); |
unless (($chome eq 'no_host') || ($chome eq '')) { |
unless (($chome eq 'no_host') || ($chome eq '')) { |
my @ids=&Apache::lonnet::current_machine_ids(); |
my @ids=&Apache::lonnet::current_machine_ids(); |
unless (grep(/^\Q$chome\E$/,@ids)) { |
if (grep(/^\Q$chome\E$/,@ids)) { |
&Apache::lonnet::devalidate_cache_new('courseltienc',$hashid); |
&Apache::lonnet::devalidate_cache_new('courseltienc',$hashid); |
} |
} |
} |
} |
Line 1763 sub store_changes {
|
Line 1815 sub store_changes {
|
if (exists($ltienc{$id}{$title})) { |
if (exists($ltienc{$id}{$title})) { |
if ($title eq 'secret') { |
if ($title eq 'secret') { |
my $length = length($ltienc{$id}{$title}); |
my $length = length($ltienc{$id}{$title}); |
$display .= $desc{$title}.': '.('*' x $length); |
$display .= $desc{$title}.': '.('*' x $length).', '; |
} else { |
} else { |
$display .= $desc{$title}.': '.$ltienc{$id}{$title}.', '; |
$display .= $desc{$title}.': '.$ltienc{$id}{$title}.', '; |
} |
} |
Line 1777 sub store_changes {
|
Line 1829 sub store_changes {
|
$display .= $desc{$title}.': '.$values{$title}.', '; |
$display .= $desc{$title}.': '.$values{$title}.', '; |
} |
} |
} |
} |
|
if ($ltiauth) { |
|
if (($values{'requser'}) && ($values{'mapuser'} ne '')) { |
|
if ($values{'mapuser'} eq 'lis_person_contact_email_primary') { |
|
$display .= &mt('Source of username: Email address [_1]', |
|
'(lis_person_contact_email_primary)').', '; |
|
} elsif ($values{'mapuser'} eq 'lis_person_sourcedid') { |
|
$display .= &mt('Source of username: User ID [_1]', |
|
'(lis_person_sourcedid)').', '; |
|
} else { |
|
$display .= &mt('Source of username: [_1]',$values{'mapuser'}).', '; |
|
} |
|
if ($values{'notstudent'} eq 'auth') { |
|
$display .= &mt('Display LON-CAPA login page if no match').', '; |
|
} elsif ($values{'notstudent'} eq 'reject') { |
|
$display .= &mt('Discontinue launch if no match').', '; |
|
} |
|
} |
|
} |
$display =~ s/, $//; |
$display =~ s/, $//; |
$output .= '<li>'.&Apache::lonhtmlcommon::confirm_success(&mt('[_1] set to [_2]','<i>'.$id.'</i>', |
$output .= '<li>'.&Apache::lonhtmlcommon::confirm_success(&mt('[_1] set to [_2]','<i>'.$id.'</i>', |
"'$display'")).'</li>'; |
"'$display'")).'</li>'; |
Line 2511 function toggleLTI(form,num,item) {
|
Line 2581 function toggleLTI(form,num,item) {
|
} |
} |
return; |
return; |
} |
} |
|
|
|
function toggleLTIReqUser(form,item,extra,valon,styleon,num) { |
|
if (document.getElementById('linkprot_'+extra+'_'+num)) { |
|
var extraid = document.getElementById('linkprot_'+extra+'_'+num); |
|
var itemname = form.elements['linkprot_'+item+'_'+num]; |
|
if (itemname) { |
|
if (itemname.length > 0) { |
|
var setvis; |
|
for (var i=0; i<itemname.length; i++) { |
|
if (itemname[i].checked == true) { |
|
if (itemname[i].value == valon) { |
|
extraid.style.display = styleon; |
|
setvis = 1; |
|
} |
|
break; |
|
} |
|
} |
|
if (!setvis) { |
|
extraid.style.display = 'none'; |
|
} |
|
} |
|
} |
|
} |
|
return; |
|
} |
ENDSCRIPT |
ENDSCRIPT |
$jscript = '<script type="text/javascript" language="Javascript">'."\n". |
$jscript = '<script type="text/javascript" language="Javascript">'."\n". |
'// <![CDATA['."\n". |
'// <![CDATA['."\n". |
Line 5418 sub print_linkprotection {
|
Line 5513 sub print_linkprotection {
|
if ($noedit) { |
if ($noedit) { |
$disabled = ' disabled="disabled"'; |
$disabled = ' disabled="disabled"'; |
} |
} |
my %lt = &linkprot_names(); |
my %desc = &linkprot_names(); |
|
my %lt = &Apache::lonlocal::texthash ( |
|
'requ' => 'Required settings', |
|
'opti' => 'Optional settings', |
|
); |
my $itemcount = 0; |
my $itemcount = 0; |
|
|
|
my $ltiauth; |
|
if (exists($env{'course.'.$env{'request.course.id'}.'.internal.ltiauth'})) { |
|
$ltiauth = $env{'course.'.$env{'request.course.id'}.'.internal.ltiauth'}; |
|
} else { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($cdom); |
|
$ltiauth = $domdefs{'crsltiauth'}; |
|
} |
my $switchserver = &check_switchserver($cdom,$cnum); |
my $switchserver = &check_switchserver($cdom,$cnum); |
|
|
if (ref($settings->{'linkprotection'}) eq 'HASH') { |
if (ref($settings->{'linkprotection'}) eq 'HASH') { |
Line 5443 sub print_linkprotection {
|
Line 5549 sub print_linkprotection {
|
$datatable .= |
$datatable .= |
'<tr '.$css_class.'><td><span class="LC_nobreak">'. |
'<tr '.$css_class.'><td><span class="LC_nobreak">'. |
'<label><input type="checkbox" name="linkprot_del" value="'.$i.'"'.$disabled.' />'. |
'<label><input type="checkbox" name="linkprot_del" value="'.$i.'"'.$disabled.' />'. |
&mt('Delete?').'</label></span></td>'. |
&mt('Delete?').'</label></span></td><td>'; |
'<td><span class="LC_nobreak">'.$lt{'name'}. |
my ($usersty,$onclickrequser,%checkedrequser); |
|
if ($ltiauth) { |
|
$usersty = 'display:none'; |
|
$onclickrequser = ' onclick="toggleLTIReqUser(this.form,'."'requser','optional','1','block','$i'".');"'; |
|
%checkedrequser = ( |
|
no => ' checked="checked"', |
|
yes => '', |
|
); |
|
if ($values{'requser'}) { |
|
$checkedrequser{'yes'} = $checkedrequser{'no'}; |
|
$checkedrequser{'no'} = ''; |
|
} |
|
$datatable .= '<fieldset><legend>'.$lt{'requ'}.'</legend>'; |
|
if ($values{'requser'}) { |
|
$usersty = 'display:inline-block'; |
|
} |
|
} |
|
$datatable .= |
|
'<span class="LC_nobreak">'.$desc{'name'}. |
':<input type="text" size="15" name="linkprot_name_'.$i.'" value="'.$values{'name'}.'" autocomplete="off"'.$disabled.' /></span> '. |
':<input type="text" size="15" name="linkprot_name_'.$i.'" value="'.$values{'name'}.'" autocomplete="off"'.$disabled.' /></span> '. |
(' 'x2). |
(' 'x2). |
'<span class="LC_nobreak">'.$lt{'version'}.':<select name="linkprot_version_'.$i.'"'.$disabled.'>'. |
'<span class="LC_nobreak">'.$desc{'version'}.':<select name="linkprot_version_'.$i.'"'.$disabled.'>'. |
'<option value="LTI-1p0" '.$selected.'>1.1</option></select></span> '."\n". |
'<option value="LTI-1p0" '.$selected.'>1.1</option></select></span> '."\n". |
(' 'x2). |
(' 'x2). |
'<span class="LC_nobreak">'.$lt{'lifetime'}.':<input type="text" name="linkprot_lifetime_'.$i.'"'. |
'<span class="LC_nobreak">'.$desc{'lifetime'}.':<input type="text" name="linkprot_lifetime_'.$i.'"'. |
'value="'.$values{'lifetime'}.'" size="3"'.$disabled.' /></span>'. |
' value="'.$values{'lifetime'}.'" size="3"'.$disabled.' /></span>'; |
'<br /><br />'; |
if ($ltiauth) { |
|
$datatable .= (' 'x2).'<span class="LC_nobreak">'.$desc{'requser'}.'?'. |
|
'<label><input type="radio" name="linkprot_requser_'.$i.'" value="0"'. |
|
$onclickrequser.$checkedrequser{'no'}.$disabled.' />'.&mt('No').'</label> '. |
|
'<label><input type="radio" name="linkprot_requser_'.$i.'" value="1"'. |
|
$onclickrequser.$checkedrequser{'yes'}.$disabled.' />'.&mt('Yes').'</label></span>'. |
|
'<br /><br />'; |
|
} |
if ($values{'key'} ne '') { |
if ($values{'key'} ne '') { |
$datatable .= '<span class="LC_nobreak">'.$lt{'key'}; |
$datatable .= '<span class="LC_nobreak">'.$desc{'key'}; |
if ($noedit) { |
if ($noedit) { |
$datatable .= ': ['.&mt('not shown').']'; |
$datatable .= ': ['.&mt('not shown').']'; |
} elsif ($switchserver) { |
} elsif ($switchserver) { |
Line 5464 sub print_linkprotection {
|
Line 5595 sub print_linkprotection {
|
} |
} |
$datatable .= '</span> '.(' 'x2); |
$datatable .= '</span> '.(' 'x2); |
} elsif (!$switchserver) { |
} elsif (!$switchserver) { |
$datatable .= '<span class="LC_nobreak">'.$lt{'key'}.':'. |
$datatable .= '<span class="LC_nobreak">'.$desc{'key'}.':'. |
'<input type="text" size="25" name="linkprot_key_'.$i.'" value="'.$values{'key'}.'" autocomplete="off"'.$disabled.' />'. |
'<input type="text" size="25" name="linkprot_key_'.$i.'" value="'.$values{'key'}.'" autocomplete="off"'.$disabled.' />'. |
'</span> '.(' 'x2); |
'</span> '.(' 'x2); |
} |
} |
if ($switchserver) { |
if ($switchserver) { |
if ($values{'usable'} ne '') { |
if ($values{'usable'} ne '') { |
$datatable .= '<div id="linkprot_divcurrsecret_'.$i.'" style="display:inline-block" /><span class="LC_nobreak">'. |
$datatable .= '<div id="linkprot_divcurrsecret_'.$i.'" style="display:inline-block" /><span class="LC_nobreak">'. |
$lt{'secret'}.': ['.&mt('not shown').'] '.(' 'x2).'</span></div>'. |
$desc{'secret'}.': ['.&mt('not shown').'] '.(' 'x2).'</span></div>'. |
'<span class="LC_nobreak">'.&mt('Change secret?'). |
'<span class="LC_nobreak">'.&mt('Change secret?'). |
'<label><input type="radio" value="0" name="linkprot_changesecret_'.$i.'" onclick="javascript:toggleLTI(this.form,'."'$i','secret'".');" checked="checked"'.$disabled.' />'.&mt('No').'</label>'. |
'<label><input type="radio" value="0" name="linkprot_changesecret_'.$i.'" onclick="javascript:toggleLTI(this.form,'."'$i','secret'".');" checked="checked"'.$disabled.' />'.&mt('No').'</label>'. |
(' 'x2). |
(' 'x2). |
Line 5487 sub print_linkprotection {
|
Line 5618 sub print_linkprotection {
|
} else { |
} else { |
if ($values{'usable'} ne '') { |
if ($values{'usable'} ne '') { |
$datatable .= '<div id="linkprot_divcurrsecret_'.$i.'" style="display:inline-block" /><span class="LC_nobreak">'. |
$datatable .= '<div id="linkprot_divcurrsecret_'.$i.'" style="display:inline-block" /><span class="LC_nobreak">'. |
$lt{'secret'}.': ['.&mt('not shown').'] '.(' 'x2).'</span></div>'. |
$desc{'secret'}.': ['.&mt('not shown').'] '.(' 'x2).'</span></div>'. |
'<span class="LC_nobreak">'.&mt('Change?'). |
'<span class="LC_nobreak">'.&mt('Change?'). |
'<label><input type="radio" value="0" name="linkprot_changesecret_'.$i.'" onclick="javascript:toggleLTI(this.form,'."'$i','secret'".');" checked="checked"'.$disabled.' />'.&mt('No').'</label>'. |
'<label><input type="radio" value="0" name="linkprot_changesecret_'.$i.'" onclick="javascript:toggleLTI(this.form,'."'$i','secret'".');" checked="checked"'.$disabled.' />'.&mt('No').'</label>'. |
(' 'x2). |
(' 'x2). |
Line 5499 sub print_linkprotection {
|
Line 5630 sub print_linkprotection {
|
'<input type="hidden" name="linkprot_id_'.$i.'" value="'.$num.'" /></span></div>'; |
'<input type="hidden" name="linkprot_id_'.$i.'" value="'.$num.'" /></span></div>'; |
} else { |
} else { |
$datatable .= |
$datatable .= |
'<span class="LC_nobreak">'.$lt{'secret'}.':'. |
'<span class="LC_nobreak">'.$desc{'secret'}.':'. |
'<input type="password" size="20" name="linkprot_secret_'.$i.'" value="" autocomplete="off"'.$disabled.' />'. |
'<input type="password" size="20" name="linkprot_secret_'.$i.'" value="" autocomplete="off"'.$disabled.' />'. |
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.linkprot_secret_'.$i.'.type='."'text'".' } else { this.form.linkprot_secret_'.$i.'.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label>'. |
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.linkprot_secret_'.$i.'.type='."'text'".' } else { this.form.linkprot_secret_'.$i.'.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label>'. |
'<input type="hidden" name="linkprot_id_'.$i.'" value="'.$num.'" /></span>'; |
'<input type="hidden" name="linkprot_id_'.$i.'" value="'.$num.'" /></span>'; |
} |
} |
} |
} |
|
if ($ltiauth) { |
|
$datatable .= |
|
'</fieldset>'. |
|
'<fieldset id="linkprot_optional_'.$i.'" style="'.$usersty.'"><legend>'.$lt{'opti'}.'</legend>'. |
|
&linkprot_options($i,$itemcount,$disabled,\%values,\%desc). |
|
'</fieldset>'; |
|
} |
$datatable .= '</td></tr>'; |
$datatable .= '</td></tr>'; |
$itemcount ++; |
$itemcount ++; |
} |
} |
Line 5514 sub print_linkprotection {
|
Line 5652 sub print_linkprotection {
|
$datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">'."\n". |
$datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">'."\n". |
'<input type="hidden" name="linkprot_maxnum" value="'.$next.'" />'."\n". |
'<input type="hidden" name="linkprot_maxnum" value="'.$next.'" />'."\n". |
'<input type="checkbox" name="linkprot_add" value="1"'.$disabled.' />'.&mt('Add').'</span></td>'."\n". |
'<input type="checkbox" name="linkprot_add" value="1"'.$disabled.' />'.&mt('Add').'</span></td>'."\n". |
'<td>'. |
'<td>'; |
'<span class="LC_nobreak">'.$lt{'name'}. |
my ($usersty,$onclickrequser,%checkedrequser); |
|
if ($ltiauth) { |
|
$usersty = 'display:none'; |
|
$onclickrequser = ' onclick="toggleLTIReqUser(this.form,'."'requser','optional','1','block','add'".');"'; |
|
%checkedrequser = ( |
|
no => ' checked="checked"', |
|
yes => '', |
|
); |
|
$datatable .= '<fieldset><legend>'.$lt{'requ'}.'</legend>'; |
|
} |
|
$datatable .= '<span class="LC_nobreak">'.$desc{'name'}. |
':<input type="text" size="15" name="linkprot_name_add" value="" autocomplete="off"'.$disabled.' /></span> '."\n". |
':<input type="text" size="15" name="linkprot_name_add" value="" autocomplete="off"'.$disabled.' /></span> '."\n". |
(' 'x2). |
(' 'x2). |
'<span class="LC_nobreak">'.$lt{'version'}.':<select name="linkprot_version_add"'.$disabled.'>'. |
'<span class="LC_nobreak">'.$desc{'version'}.':<select name="linkprot_version_add"'.$disabled.'>'. |
'<option value="LTI-1p0" selected="selected">1.1</option></select></span> '."\n". |
'<option value="LTI-1p0" selected="selected">1.1</option></select></span> '."\n". |
(' 'x2). |
(' 'x2). |
'<span class="LC_nobreak">'.$lt{'lifetime'}.':<input type="text" size="3" name="linkprot_lifetime_add" value="300"'.$disabled.' /></span> '."\n". |
'<span class="LC_nobreak">'.$desc{'lifetime'}.':<input type="text" size="3" name="linkprot_lifetime_add" value="300"'.$disabled.' /></span> '."\n"; |
'<br /><br />'; |
if ($ltiauth) { |
|
$datatable .= (' 'x2).'<span class="LC_nobreak">'.$desc{'requser'}.'?'. |
|
'<label><input type="radio" name="linkprot_requser_add" value="0"'. |
|
$onclickrequser.$checkedrequser{'no'}.$disabled.' />'.&mt('No').'</label> '. |
|
'<label><input type="radio" name="linkprot_requser_add" value="1"'. |
|
$onclickrequser.$checkedrequser{'yes'}.$disabled.' />'.&mt('Yes').'</label></span>'; |
|
} |
|
$datatable .= '<br /><br />'; |
if ($switchserver) { |
if ($switchserver) { |
$datatable .= '<span class="LC_nobreak">'.&mt('Key and Secret are required').' - '.&mt("submit from course's home server: [_1].",$switchserver).'</span>'."\n"; |
$datatable .= '<span class="LC_nobreak">'.&mt('Key and Secret are required').' - '.&mt("submit from course's home server: [_1].",$switchserver).'</span>'."\n"; |
} else { |
} else { |
$datatable .= '<span class="LC_nobreak">'.$lt{'key'}.':<input type="text" size="25" name="linkprot_key_add" value="" autocomplete="off"'.$disabled.' /></span> '."\n". |
$datatable .= '<span class="LC_nobreak">'.$desc{'key'}.':<input type="text" size="25" name="linkprot_key_add" value="" autocomplete="off"'.$disabled.' /></span> '."\n". |
(' 'x2). |
(' 'x2). |
'<span class="LC_nobreak">'.$lt{'secret'}.':<input type="password" size="20" name="linkprot_secret_add" value="" autocomplete="off"'.$disabled.' />'. |
'<span class="LC_nobreak">'.$desc{'secret'}.':<input type="password" size="20" name="linkprot_secret_add" value="" autocomplete="off"'.$disabled.' />'. |
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.linkprot_secret_add.type='."'text'".' } else { this.form.linkprot_secret_add.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label></span> '."\n"; |
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.linkprot_secret_add.type='."'text'".' } else { this.form.linkprot_secret_add.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label></span> '."\n"; |
} |
} |
|
if ($ltiauth) { |
|
$datatable .= '</fieldset>'. |
|
'<fieldset id="linkprot_optional_add" style="'.$usersty.'"><legend>'.$lt{'opti'}.'</legend>'. |
|
&linkprot_options('add',$itemcount,$disabled,{},\%desc). |
|
'</fieldset>'; |
|
} |
$datatable .= '</td></tr>'; |
$datatable .= '</td></tr>'; |
$$rowtotal ++; |
$$rowtotal ++; |
return $datatable;; |
return $datatable;; |
} |
} |
|
|
sub linkprot_names { |
sub linkprot_names { |
my %lt = &Apache::lonlocal::texthash( |
return &Apache::lonlocal::texthash( |
'version' => 'LTI Version', |
'version' => 'LTI Version', |
'key' => 'Key', |
'key' => 'Key', |
'lifetime' => 'Nonce lifetime (s)', |
'lifetime' => 'Nonce lifetime (s)', |
'name' => 'Launcher Application Name', |
'name' => 'Launcher Application', |
'secret' => 'Secret', |
'secret' => 'Secret', |
|
'requser' => 'Use identity', |
|
'email' => 'Email address', |
|
'sourcedid' => 'User ID', |
|
'other' => 'Other', |
|
'auth' => 'Display LON-CAPA login page', |
|
'reject' => 'Discontinue launch process', |
); |
); |
return %lt; |
|
} |
} |
|
|
sub check_switchserver { |
sub check_switchserver { |
Line 5563 sub check_switchserver {
|
Line 5729 sub check_switchserver {
|
return $switchserver; |
return $switchserver; |
} |
} |
|
|
|
sub linkprot_options { |
|
my ($num,$itemcount,$disabled,$current,$desc) = @_; |
|
my %lt; |
|
if (ref($desc) eq 'HASH') { |
|
%lt = %{$desc}; |
|
} |
|
my $userfieldsty = 'none'; |
|
my (%checked,$userfield); |
|
$checked{'sourcedid'} = ' checked="checked"'; |
|
$checked{'reject'} = ' checked="checked"'; |
|
if (ref($current) eq 'HASH') { |
|
if (($current->{'mapuser'} ne '') && ($current->{'mapuser'} ne 'lis_person_sourcedid')) { |
|
$checked{'sourcedid'} = ''; |
|
if ($current->{'mapuser'} eq 'lis_person_contact_email_primary') { |
|
$checked{'email'} = ' checked="checked"'; |
|
} else { |
|
$checked{'other'} = ' checked="checked"'; |
|
$userfield = $current->{'mapuser'}; |
|
$userfieldsty = 'inline-block'; |
|
} |
|
} |
|
if (($current->{'notstudent'} ne '') && ($current->{'notstudent'} ne 'reject')) { |
|
$checked{'reject'} = ''; |
|
$checked{'auth'} = ' checked="checked"'; |
|
} |
|
} |
|
my $onclickuser = ' onclick="toggleLTIReqUser(this.form,'."'mapuser','userfield','other','inline-block','$num'".');"'; |
|
my $output = '<div class="LC_floatleft"><span class="LC_nobreak">'. |
|
&mt('Source of LON-CAPA username in LTI request').': '; |
|
foreach my $option ('sourcedid','email','other') { |
|
$output .= '<label><input type="radio" name="linkprot_mapuser_'.$num.'" value="'.$option.'"'. |
|
$checked{$option}.$onclickuser.$disabled.' />'.$lt{$option}.'</label>'. |
|
($option eq 'other' ? '' : (' 'x2) ); |
|
} |
|
$output .= '</span></div>'. |
|
'<div class="LC_floatleft" style="display:'.$userfieldsty.';" id="linkprot_userfield_'.$num.'">'. |
|
'<input type="text" name="linkprot_customuser_'.$num.'" '. |
|
'value="'.$userfield.'"'.$disabled.' /></div>'; |
|
$output .= '<br />'. |
|
'<div class="LC_floatleft"><span class="LC_nobreak">'. |
|
&mt('Action when username is not for an enrolled student').': '; |
|
foreach my $option ('reject','auth') { |
|
$output .= '<label><input type="radio" name="linkprot_notstudent_'.$num.'" value="'.$option.'"'. |
|
$checked{$option}.$disabled.' />'.$lt{$option}.'</label>'. |
|
($option eq 'auth' ? '' : (' 'x2) ); |
|
} |
|
$output .= '</span></div>'; |
|
return $output; |
|
} |
|
|
sub print_other { |
sub print_other { |
my ($cdom,$settings,$allitems,$rowtotal,$crstype,$noedit) = @_; |
my ($cdom,$settings,$allitems,$rowtotal,$crstype,$noedit) = @_; |
unless ((ref($settings) eq 'HASH') && (ref($allitems) eq 'ARRAY')) { |
unless ((ref($settings) eq 'HASH') && (ref($allitems) eq 'ARRAY')) { |