[LON-CAPA-cvs] cvs: loncom /interface domainprefs.pm londocs.pm lonmodifycourse.pm /lonnet/perl lonnet.pm
raeburn
raeburn at source.lon-capa.org
Thu Aug 20 16:51:48 EDT 2026
raeburn Thu Aug 20 20:51:48 2026 EDT
Modified files:
/loncom/interface domainprefs.pm lonmodifycourse.pm londocs.pm
/loncom/lonnet/perl lonnet.pm
Log:
- Domain configuration for Course/Community defaults includes additional
item: "Availability of Accessibility Checker in Content Utilities",
which can be overridden for each course by a DC.
-------------- next part --------------
Index: loncom/interface/domainprefs.pm
diff -u loncom/interface/domainprefs.pm:1.461 loncom/interface/domainprefs.pm:1.462
--- loncom/interface/domainprefs.pm:1.461 Sun Jun 28 18:02:24 2026
+++ loncom/interface/domainprefs.pm Thu Aug 20 20:51:47 2026
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: domainprefs.pm,v 1.461 2026/06/28 18:02:24 raeburn Exp $
+# $Id: domainprefs.pm,v 1.462 2026/08/20 20:51:47 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -7143,6 +7143,7 @@
exttool => 'External Tools can be defined and configured in courses/communities (by type)',
crsauthor => 'Standard LON-CAPA problems can be created within a course/community (by type)',
crseditors => 'Available editors for web pages and/or problems created in a course/community',
+ axeuse => 'Availability of Accessibility Checker in Content Utilities',
);
my %staticdefaults = (
anonsurvey_threshold => 10,
@@ -7323,10 +7324,20 @@
my %crsauthor;
my %crseditors;
my @types = ('official','unofficial','community','textbook','placement');
+ my %checkedaxe = (
+ none => ' checked="checked"',
+ );
if (ref($settings) eq 'HASH') {
if ($settings->{'ltiauth'}) {
$ltiauth = 1;
}
+ if ($settings->{'axeuse'} =~ /^dom|instdom|all$/) {
+ my $curraxe = $settings->{'axeuse'};
+ delete($checkedaxe{'none'});
+ %checkedaxe = (
+ $curraxe => ' checked="checked"',
+ );
+ }
if (ref($settings->{'domexttool'}) eq 'HASH') {
foreach my $type (@types) {
if ($settings->{'domexttool'}->{$type}) {
@@ -7639,6 +7650,40 @@
$editornames{$editor}.'</label></span></div>'."\n";
}
$datatable .= '</div></div></fieldset></td></tr>'."\n";
+ $itemcount ++;
+ $css_class = $itemcount%2?' class="LC_odd_row"':'';
+ my %axetext = &Apache::lonlocal::texthash (
+ none => 'Not available in any courses/communities',
+ dom => "Available in domain's own courses/communities only",
+ instdom => "Available in institution's own courses/communities only",
+ all => 'Available in courses/communities from any domain',
+ );
+ $datatable .=
+ '<tr'.$css_class.'><td><span class="LC_nobreak">'.
+ $choices{'axeuse'}.
+ '</span></td>'.
+ '<td class="LC_left_item">'.
+ '<fieldset class="LC_borderless" style="line-height: 185%;">'.
+ '<legend class="LC_visually_hidden">'.$choices{'axeuse'}.'</legend>'.
+ '<span class="LC_nobreak">';
+ my @possoptions = ('none');
+ my @alldoms = &Apache::lonnet::all_domains();
+ if (@alldoms > 1) {
+ push(@possoptions,'dom');
+ my (%by_ip,%by_location, at intdoms, at instdoms);
+ &build_location_hashes(\@intdoms,\%by_ip,\%by_location,\@instdoms);
+ if (@instdoms > 1) {
+ push(@possoptions,'instdom');
+ }
+ }
+ push(@possoptions,'all');
+ foreach my $option (@possoptions) {
+ $datatable .= '<label><input type="radio" name="axeuse"'.
+ ' value="'.$option.'"'.$checkedaxe{$option}.' />'.
+ $axetext{$option}.'</label>'.($option? '<br />' : '');
+ }
+ $datatable .= '</span></fieldset></td></tr>'."\n";
+ $itemcount ++;
}
$$rowtotal += $itemcount;
return $datatable;
@@ -21864,6 +21909,7 @@
'usejsme' => 'on',
'inline_chem' => 'on',
'ltiauth' => 'off',
+ 'axeuse' => 'none',
);
my @toggles = ('uselcmath','usejsme','inline_chem','ltiauth');
my @numbers = ('anonsurvey_threshold','uploadquota_official','uploadquota_unofficial',
@@ -21889,11 +21935,6 @@
mimetex => &mt('Convert to Images'),
tth => &mt('TeX to HTML'),
);
- my %pdftext = &Apache::lonlocal::texthash (
- 2 => 'Yes, including checkboxes',
- 1 => 'Yes, excluding checkboxes',
- 0 => 'No',
- );
my @editors = ('edit','xml','daxe');
my %editornames = &crseditor_titles();
@@ -22190,6 +22231,29 @@
$defaultshash{'coursedefaults'}{'exttool'} = \%newexttool;
$defaultshash{'coursedefaults'}{'crsauthor'} = \%newcrsauthor;
$defaultshash{'coursedefaults'}{'crseditors'} = \@newcrseditors;
+
+ my @possoptions = ('none');
+ my @alldoms = &Apache::lonnet::all_domains();
+ if (@alldoms > 1) {
+ push(@possoptions,'dom');
+ my (%by_ip,%by_location, at intdoms, at instdoms);
+ &build_location_hashes(\@intdoms,\%by_ip,\%by_location,\@instdoms);
+ if (@instdoms > 1) {
+ push(@possoptions,'instdom');
+ }
+ }
+ push(@possoptions,'all');
+ if (grep(/^\Q$env{'form.axeuse'}\E$/, at possoptions)) {
+ my $curr = $domconfig{'coursedefaults'}{'axeuse'};
+ if ($curr eq '') {
+ unless ($curr eq $defaultchecked{'axeuse'}) {
+ $changes{'axeuse'} = 1;
+ }
+ } elsif ($curr ne $env{'form.axeuse'}) {
+ $changes{'axeuse'} = 1;
+ }
+ $defaultshash{'coursedefaults'}{'axeuse'} = $env{'form.axeuse'};
+ }
}
my $putresult = &Apache::lonnet::put_dom('configuration',\%defaultshash,
$dom);
@@ -22201,13 +22265,18 @@
($changes{'canclone'}) || ($changes{'mysqltables'}) || ($changes{'texengine'}) ||
($changes{'inline_chem'}) || ($changes{'ltiauth'}) || ($changes{'domexttool'}) ||
($changes{'exttool'}) || ($changes{'coursequota'}) || ($changes{'crsauthor'}) ||
- ($changes{'maxsizepdfform'})) {
+ ($changes{'maxsizepdfform'}) || ($changes{'axeuse'})) {
foreach my $item ('canuse_pdfforms','uselcmath','usejsme','inline_chem','texengine',
- 'ltiauth','maxsizepdfform') {
+ 'maxsizepdfform') {
if ($changes{$item}) {
$domdefaults{$item}=$defaultshash{'coursedefaults'}{$item};
}
}
+ foreach my $item ('ltiauth','axeuse') {
+ if ($changes{$item}) {
+ $domdefaults{'crs'.$item}=$defaultshash{'coursedefaults'}{$item};
+ }
+ }
if ($changes{'coursecredits'}) {
if (ref($defaultshash{'coursedefaults'}{'coursecredits'}) eq 'HASH') {
foreach my $type (keys(%{$defaultshash{'coursedefaults'}{'coursecredits'}})) {
@@ -22472,6 +22541,16 @@
}
$resulttext .= '<li>'.&mt('Available editors for course/community resources: [_1]',$shown).'</li>';
}
+ } elsif ($item eq 'axeuse') {
+ if ($env{'form.'.$item} eq 'none') {
+ $resulttext .= '<li>'.&mt('Accessibility Checking unavailable').'</li>';
+ } elsif ($env{'form.'.$item} eq 'dom') {
+ $resulttext .= '<li>'.&mt("Accessibility Checking available for domain's own courses").'</li>';
+ } elsif ($env{'form.'.$item} eq 'instdom') {
+ $resulttext .= '<li>'.&mt("Accessibility Checking available for institution's own courses").'</li>';
+ } else {
+ $resulttext .= '<li>'.&mt('Accessibility Checking available for courses from any domain').'</li>';
+ }
}
}
$resulttext .= '</ul>';
Index: loncom/interface/lonmodifycourse.pm
diff -u loncom/interface/lonmodifycourse.pm:1.111 loncom/interface/lonmodifycourse.pm:1.112
--- loncom/interface/lonmodifycourse.pm:1.111 Mon May 4 21:14:36 2026
+++ loncom/interface/lonmodifycourse.pm Thu Aug 20 20:51:47 2026
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# handler for DC-only modifiable course settings
#
-# $Id: lonmodifycourse.pm,v 1.111 2026/05/04 21:14:36 raeburn Exp $
+# $Id: lonmodifycourse.pm,v 1.112 2026/08/20 20:51:47 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -435,6 +435,7 @@
'setexttool' => 'View/Modify External Tools permissions',
'setcrsauthor' => 'View/Modify In-course Authoring permissions',
'setcrseditors' => 'View/Modify permitted course resource editors',
+ 'setaxeuse' => 'View/Modify Accessibility Checking availability',
);
} else {
%linktext = (
@@ -446,6 +447,7 @@
'setexttool' => 'View External Tools permissions',
'setcrsauthor' => 'View In-course Authoring permissions',
'setcrseditors' => 'View permitted course resource editors',
+ 'setaxeuse' => 'View Accessibility Checking availability',
);
}
if ($type eq 'Community') {
@@ -613,6 +615,15 @@
permission => $permission->{'setcrseditors'},
linktitle => '',
},
+ {
+ linktext => $linktext{'setaxeuse'},
+ icon => 'accessibility.png',
+ alttext => '',
+ #help => '',
+ url => &phaseurl('setaxeuse'),
+ permission => $permission->{'setaxeuse'},
+ linktitle => '',
+ },
]
},
);
@@ -1345,7 +1356,7 @@
sub print_default_overrides {
my ($r,$cdom,$cnum,$cdesc,$type,$readonly,$item) = @_;
my (%titles,$checkeddom,$checkedcrs,$divsty,$currcrsval,$crsdefault,%crschecked,
- $helpfile,$title,$crselements, at currcrseditors);
+ $helpfile,$title,$crselements, at currcrseditors,$curraxeuse);
%titles = &default_overrides_titles($type);
my ($title,$domdefdisplay,$settings,$optiontext,$options) =
&default_overrides_common($item,$cdom,$cnum,$type,\%titles);
@@ -1355,6 +1366,9 @@
if ($item eq 'ltiauth') {
$helpfile = 'Modify_Course_LTI_Authen';
$crsdefault = 0;
+ } elsif ($item eq 'axeuse') {
+ $helpfile = 'Modify_Course_Accessibility';
+ $crsdefault = 1;
} else {
if ($item eq 'exttool') {
$helpfile = 'Modify_Course_External_Tool';
@@ -1478,12 +1492,19 @@
'valu' => 'Value for this course',
'modi' => 'Save',
'back' => 'Pick another action',
+ 'axe' => 'Accessibility Checking link/icon in Content Utilities',
+ 'axey' => 'Accessibility checking enabled',
+ 'axen' => 'Accessibility checking disabled',
+ 'noax' => 'Not available in courses',
+ 'axon' => 'Available in courses',
);
if ($type eq 'Community') {
$titles{'crs'} = &mt('Only external tools defined in community may be used');
$titles{'both'} = &mt('External tools defined/configured in either domain or community may be used');
$titles{'cour'} = &mt('Use community-specific setting');
$titles{'valu'} = &mt('Value for this community');
+ $titles{'noax'} = &mt('Not available in any communities');
+ $titles{'axon'} = &mt('Available in communities');
}
return %titles;
}
@@ -1523,12 +1544,20 @@
$domdef = 1;
@options = ('edit','xml','daxe');
map { $optiontext{$_} = $titles->{$_}; } @options;
+ } elsif ($item eq 'axeuse') {
+ $title = $titles->{'axe'};
+ $domdef = 'none';
+ @options = ('1','0');
+ %optiontext = (
+ 1 => $titles->{'axey'},
+ 0 => $titles->{'axen'},
+ );
}
}
my %domconfig =
&Apache::lonnet::get_dom('configuration',['coursedefaults'],$cdom);
if (ref($domconfig{'coursedefaults'}) eq 'HASH') {
- if (($item eq 'ltiauth') || ($item eq 'crseditors')) {
+ if (($item eq 'ltiauth') || ($item eq 'crseditors') || ($item eq 'axeuse')) {
$domdef = $domconfig{'coursedefaults'}{$item};
} else {
my $lctype = &get_lctype($type,\%settings);
@@ -1580,6 +1609,12 @@
} else {
$domdefdisplay = join(', ', map { $titles->{$_}; } ('edit','xml'));
}
+ } elsif ($item eq 'axeuse') {
+ if ($domdef =~ /^all|dom|instdom$/) {
+ $domdefdisplay = $titles->{'axon'};
+ } else {
+ $domdefdisplay = $titles->{'noax'};
+ }
}
return ($title,$domdefdisplay,\%settings,\%optiontext,\@options);
}
@@ -2620,6 +2655,12 @@
chg => 'Permitted course resource editors changed',
nochg => 'Permitted course resource editors unchanged',
);
+ } elsif ($item eq 'axeuse') {
+ %resulttext =
+ &Apache::lonlocal::texthash(
+ chg => 'Availability of accessibility checking changed',
+ nochg => 'Availability of accessibility checking unchanged',
+ );
}
&print_header($r,$type);
$r->print('<h3>'.$title.'</h3>'."\n".
@@ -2869,7 +2910,8 @@
ENDSCRIPT
} elsif (($phase eq 'setltiauth') || ($phase eq 'setexttool') ||
- ($phase eq 'setcrsauthor') || ($phase eq 'setcrseditors')) {
+ ($phase eq 'setcrsauthor') || ($phase eq 'setcrseditors') ||
+ ($phase eq 'setaxeuse')) {
$js .= <<"ENDJS";
function toggleOptions(form,phase) {
var radioname;
@@ -2886,6 +2928,9 @@
} else if (phase == 'setcrseditors') {
radioname = 'crseditorsset';
divid = 'crscrseditors';
+ } else if (phase == 'setaxeuse') {
+ radioname = 'axeuseset';
+ divid = 'crsaxeuse';
}
var num = form.elements[radioname].length;
if (num) {
@@ -2921,7 +2966,7 @@
$starthash = {
add_entries => {'onload' => "hide_searching(); courseSet(document.filterpicker.official, 'load');"},
};
- } elsif ($env{'form.phase'} =~ /^set(ltiauth|exttool|crsauthor|crseditors)$/) {
+ } elsif ($env{'form.phase'} =~ /^set(ltiauth|exttool|crsauthor|crseditors|axeuse)$/) {
$starthash = {
add_entries => {'onload' => "toggleOptions(document.$env{'form.phase'},'$env{'form.phase'}');"},
};
@@ -3034,8 +3079,8 @@
'threshold','postsubmit','postsubtimeout','defaultcredits','uploadquota',
'selfenrollmgrdc','selfenrollmgrcc','action','state','currsec_st',
'sections','newsec','mysqltables','nopasswdchg','ltiauth','ltiauthset',
- 'exttoolset','exttool','crsauthorset','crsauthor','crseditorsset','crseditors'],
- ['^selfenrollmgr_','^selfenroll_'])."\n".
+ 'exttoolset','exttool','crsauthorset','crsauthor','crseditorsset','crseditors',
+ 'axeuseset','axeuse'],['^selfenrollmgr_','^selfenroll_'])."\n".
'<input type="hidden" name="prevphase" value="'.$env{'form.phase'}.'" />';
return $hidden_elements;
}
@@ -3076,6 +3121,8 @@
processcrsauthor => 'edit',
setcrseditors => 'edit',
processcrseditors => 'edit',
+ setaxeuse => 'edit',
+ processaxeuse => 'edit',
);
if ($passwdconf{'crsownerchg'}) {
$permission{passwdchg} = 'edit';
@@ -3095,6 +3142,7 @@
setexttool => 'view',
setcrsauthor => 'view',
setcrseditors => 'view',
+ setaxeuse => 'view',
);
if ($passwdconf{'crsownerchg'}) {
$permission{passwdchg} = 'view';
@@ -3346,6 +3394,18 @@
{href=>"javascript:changePage(document.$phase,'$phase')",
text=>"Result"});
&modify_default_overrides($r,$cdom,$cnum,$cdesc,$domdesc,$type,'crseditors');
+ } elsif (($phase eq 'setaxeuse') && ($permission->{'setaxeuse'})) {
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"javascript:changePage(document.$phase,'$phase')",
+ text=>"Availability of Accessibility Checking"});
+ &print_default_overrides($r,$cdom,$cnum,$cdesc,$type,$readonly,'axeuse');
+ } elsif (($phase eq 'processaxeuse') && ($permission->{'processaxeuse'})) {
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"javascript:changePage(document.$phase,'setaxeuse')",
+ text=>"Availability of Accessibility Checking"},
+ {href=>"javascript:changePage(document.$phase,'$phase')",
+ text=>"Result"});
+ &modify_default_overrides($r,$cdom,$cnum,$cdesc,$domdesc,$type,'axeuse');
}
}
} else {
Index: loncom/interface/londocs.pm
diff -u loncom/interface/londocs.pm:1.744 loncom/interface/londocs.pm:1.745
--- loncom/interface/londocs.pm:1.744 Tue Aug 18 18:53:27 2026
+++ loncom/interface/londocs.pm Thu Aug 20 20:51:47 2026
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: londocs.pm,v 1.744 2026/08/18 18:53:27 raeburn Exp $
+# $Id: londocs.pm,v 1.745 2026/08/20 20:51:47 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -6291,6 +6291,51 @@
$r->print(&endContentScreen());
}
+sub axeuse_allowed {
+ my ($r,$coursedom) = @_;
+ my ($axeuse,$noaxemsg);
+ my $crsaxeuse = $env{'course.'.$env{'request.course.id'}.'.internal.axeuse'};
+ my $lctype = lc(&Apache::loncommon::course_type());
+ if ($crsaxeuse eq '0') {
+ $noaxemsg = &mt("Accessibility Checking disabled in this $lctype");
+ return ($crsaxeuse,$noaxemsg);
+ }
+ my %domdefs=&Apache::lonnet::get_domain_defaults($coursedom);
+ if (($crsaxeuse eq '1') || ($domdefs{'crsaxeuse'} =~ /^dom|instdom|all$/)) {
+ my $defdom = $r->dir_config('lonDefDomain');
+ if ($defdom eq $coursedom) {
+ $axeuse = 1;
+ } else {
+ my @machinedoms = &Apache::lonnet::current_machine_domains();
+ if (grep(/^\Q$coursedom\E$/, at machinedoms)) {
+ $axeuse = 1;
+ } else {
+ my %defdomdefaults = &Apache::lonnet::get_domain_defaults($defdom);
+ if ($defdomdefaults{'crsaxeuse'} eq 'all') {
+ $axeuse = 1;
+ } elsif ($defdomdefaults{'crsaxeuse'} eq 'instdom') {
+ my $primary_id = &Apache::lonnet::domain($coursedom,'primary');
+ my $intdom = &Apache::lonnet::internet_dom($primary_id);
+ if ($intdom ne '') {
+ my $internet_names = &Apache::lonnet::get_internet_names($Apache::lonnet::perlvar{'lonHostID'});
+ if (ref($internet_names) eq 'ARRAY') {
+ if (grep(/^\Q$intdom\E$/,@{$internet_names})) {
+ $axeuse = 1;
+ }
+ }
+ }
+ unless ($axeuse) {
+ $noaxemsg = &mt("This server's default domain configuration does not allow Accessibility Checking for the domain to which this $lctype belongs.");
+ }
+ }
+ }
+ }
+ } else {
+ $noaxemsg = &mt("Accessibility Checking not enabled in the domain to which this $lctype belongs.");
+ }
+ return ($axeuse,$noaxemsg);
+}
+
sub wcag_check_form {
my ($r,$canedit,$cnum,$cdom) = @_;
my $crstype = &Apache::loncommon::course_type();
@@ -7026,14 +7071,25 @@
&init_breadcrumbs('exportcourse','IMS Export');
&Apache::imsexport::exportcourse($r);
} elsif ($allowed && $env{'form.wcagcheck'}) {
- if ($r->dir_config('lonAxeUse') eq 'Y') {
- &init_breadcrumbs('wcagcheck','Select Resources for Accessibility Check','Docs_Accessibility_Check');
- my @checkmain = &Apache::loncommon::get_env_multiple('form.wcagmain');
- my @checksupp = &Apache::loncommon::get_env_multiple('form.wcagsupp');
- if ((scalar(@checkmain) > 0) || (scalar(@checksupp) > 0)) {
- &wcag_check_results($r,$canedit,$coursenum,$coursedom,\@checkmain,\@checksupp);
+ if ($r->dir_config('lonAxeUse')) {
+ my ($axeuse,$noaxemsg) = &axeuse_allowed($r,$coursedom);
+ if ($axeuse) {
+ &init_breadcrumbs('wcagcheck','Select Resources for Accessibility Check','Docs_Accessibility_Check');
+ my @checkmain = &Apache::loncommon::get_env_multiple('form.wcagmain');
+ my @checksupp = &Apache::loncommon::get_env_multiple('form.wcagsupp');
+ if ((scalar(@checkmain) > 0) || (scalar(@checksupp) > 0)) {
+ &wcag_check_results($r,$canedit,$coursenum,$coursedom,\@checkmain,\@checksupp);
+ } else {
+ &wcag_check_form($r,$canedit,$coursenum,$coursedom);
+ }
} else {
- &wcag_check_form($r,$canedit,$coursenum,$coursedom);
+ &init_breadcrumbs('wcagcheck','Accessibility Checking');
+ $r->print(&Apache::loncommon::start_page('Accessibility Checking'));
+ $r->print(&Apache::lonhtmlcommon::breadcrumbs('Accessibility'));
+ $r->print(&startContentScreen('tools'));
+ $r->print('<h2 class="LC_heading_2">'.&mt('Accessibility Checking Unavailable').'</h2>'."\n".
+ '<p>'.$noaxemsg.'</p>');
+ $r->print(&endContentScreen());
}
} else {
&init_breadcrumbs('wcagcheck','Accessibility Checking');
@@ -8776,16 +8832,21 @@
alttext => '',
linktitle => "Set shortened URLs for a resource or folder in your $lc_crstype for use in deep-linking"
},
- { linktext => $lt{'cfa'},
- url => "javascript:injectData(document.courseverify,'dummy','wcagcheck','$lt{'cfa'}')",
- permission => 'F',
- help => 'Docs_Accessibility_Check',
- icon => 'accessibility.png',
- alttext => '',
- linktitle => "Accessibility checking for selected resources in your $lc_crstype"
- },
]
});
+ my $crsaxeuse = $env{'course.'.$env{'request.course.id'}.'internal.axeuse'};
+ my %domdefs=&Apache::lonnet::get_domain_defaults($coursedom);
+ if (($crsaxeuse eq '1') || (($crsaxeuse eq '') && ($domdefs{'crsaxeuse'} =~ /^dom|instdom|all$/))) {
+ push(@{$menu[0]->{items}},
+ { linktext => $lt{'cfa'},
+ url => "javascript:injectData(document.courseverify,'dummy','wcagcheck','$lt{'cfa'}')",
+ permission => 'F',
+ help => 'Docs_Accessibility_Check',
+ icon => 'accessibility.png',
+ alttext => '',
+ linktitle => "Accessibility checking for selected resources in your $lc_crstype"
+ });
+ }
if ($canedit) {
my ($crsauname,$crsaudom,$crshome);
if (($coursenum ne '') && ($coursedom ne '')) {
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.1548 loncom/lonnet/perl/lonnet.pm:1.1549
--- loncom/lonnet/perl/lonnet.pm:1.1548 Fri Aug 7 19:33:34 2026
+++ loncom/lonnet/perl/lonnet.pm Thu Aug 20 20:51:47 2026
@@ -1,7 +1,7 @@
# The LearningOnline Network
# TCP networking package
#
-# $Id: lonnet.pm,v 1.1548 2026/08/07 19:33:34 raeburn Exp $
+# $Id: lonnet.pm,v 1.1549 2026/08/20 20:51:47 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2965,6 +2965,9 @@
if (exists($domconfig{'coursedefaults'}{'ltiauth'})) {
$domdefaults{'crsltiauth'} = $domconfig{'coursedefaults'}{'ltiauth'};
}
+ if (exists($domconfig{'coursedefaults'}{'axeuse'})) {
+ $domdefaults{'crsaxeuse'} = $domconfig{'coursedefaults'}{'axeuse'};
+ }
}
if (ref($domconfig{'usersessions'}) eq 'HASH') {
if (ref($domconfig{'usersessions'}{'remote'}) eq 'HASH') {
More information about the LON-CAPA-cvs
mailing list