--- loncom/lonnet/perl/lonnet.pm 2025/01/05 21:53:43 1.1533
+++ loncom/lonnet/perl/lonnet.pm 2025/03/19 14:44:04 1.1537
@@ -1,7 +1,7 @@
# The LearningOnline Network
# TCP networking package
#
-# $Id: lonnet.pm,v 1.1533 2025/01/05 21:53:43 raeburn Exp $
+# $Id: lonnet.pm,v 1.1537 2025/03/19 14:44:04 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -3019,6 +3019,9 @@ sub get_domain_defaults {
last if ($domdefaults{'userapprovals'});
}
}
+ if (ref($domconfig{'privacy'}{'othdom'}) eq 'HASH') {
+ $domdefaults{'privacyothdom'} = $domconfig{'privacy'}{'othdom'};
+ }
}
&do_cache_new('domdefaults',$domain,\%domdefaults,$cachetime);
return %domdefaults;
@@ -3731,6 +3734,7 @@ sub ssi_body {
$output=~s|//(\s*)?\s||gs;
$output=~s/^.*?\
]*\>//si;
$output=~s/\<\/body\s*\>.*?$//si;
+ $output=~s{\Q\E}{
}gs;
if (wantarray) {
return ($output, $response);
} else {
@@ -7524,6 +7528,27 @@ sub set_adhoc_privileges {
if (&allowed('adv') eq 'F') { $tadv=1; }
&appenv({'request.role.adv' => $tadv});
}
+ if ($role eq 'ca') {
+ my @ca_settings = ('authoreditors','coauthorlist');
+ my %info = &userenvironment($dcdom,$pickedcourse,@ca_settings);
+ foreach my $item (@ca_settings) {
+ if (exists($info{$item})) {
+ my $name = $item;
+ if ($item eq 'authoreditors') {
+ $name = 'editors';
+ unless ($info{'authoreditors'}) {
+ my %domdefs = &get_domain_defaults($dcdom);
+ if ($domdefs{$name} ne '') {
+ $info{'authoreditors'} = $domdefs{$name};
+ } else {
+ $info{'authoreditors'} = 'edit,xml';
+ }
+ }
+ }
+ &appenv({"environment.internal.$name./$dcdom/$pickedcourse" => $info{$item}});
+ }
+ }
+ }
}
# --------------------------------------------------------------- get interface
@@ -15092,6 +15117,9 @@ sub whichuser {
$courseid=$tmp_courseid;
($domain)=&get_env_multiple('form.grade_domain');
($name)=&get_env_multiple('form.grade_username');
+ if ($name eq 'public' && $domain eq 'public') {
+ $publicuser = 1;
+ }
return ($symb,$courseid,$domain,$name,$publicuser);
}
}
@@ -15108,6 +15136,7 @@ sub whichuser {
$env{'form.username'}.=time.rand(10000000);
}
$name.=$env{'form.username'};
+ $publicuser = 1;
}
return ($symb,$courseid,$domain,$name,$publicuser);