--- loncom/interface/loncreateuser.pm 2023/11/04 00:06:00 1.472
+++ loncom/interface/loncreateuser.pm 2024/02/29 14:09:30 1.475
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.472 2023/11/04 00:06:00 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.475 2024/02/29 14:09:30 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -273,13 +273,13 @@ sub build_tools_display {
my ($ccuname,$ccdomain,$context) = @_;
my (@usertools,%userenv,$output,@options,%validations,%reqtitles,%reqdisplay,
$colspan,$isadv,%domconfig,@defaulteditors,@customeditors,@custommanagers,
- @possmanagers,$editorsty,$customsty);
+ @possmanagers);
my %lt = &Apache::lonlocal::texthash (
'blog' => "Personal User Blog",
'aboutme' => "Personal Information Page",
'webdav' => "WebDAV access to Authoring Spaces (https)",
'editors' => "Available Editors",
- 'managers' => "Co-authors who can add/revoke co-authors",
+ 'managers' => "Co-authors who can add/revoke roles",
'portfolio' => "Personal User Portfolio",
'portaccess' => "Portfolio Shareable",
'timezone' => "Can set Time Zone",
@@ -337,13 +337,15 @@ sub build_tools_display {
}
foreach my $item (@usertools) {
my ($custom_access,$curr_access,$cust_on,$cust_off,$tool_on,$tool_off,
- $currdisp,$custdisp,$custradio,$onclick);
+ $currdisp,$custdisp,$custradio,$onclick,$customsty,$editorsty);
$cust_off = 'checked="checked" ';
$tool_on = 'checked="checked" ';
- $curr_access =
- &Apache::lonnet::usertools_access($ccuname,$ccdomain,$item,undef,
- $context,\%userenv,'',
- {'is_adv' => $isadv});
+ unless (($context eq 'authordefaults') && ($item ne 'webdav')) {
+ $curr_access =
+ &Apache::lonnet::usertools_access($ccuname,$ccdomain,$item,undef,
+ $context,\%userenv,'',
+ {'is_adv' => $isadv});
+ }
if ($context eq 'requestauthor') {
if ($userenv{$context} ne '') {
$cust_on = ' checked="checked" ';
@@ -466,7 +468,7 @@ sub build_tools_display {
$tool_off = 'checked="checked" ';
$tool_on = '';
}
- $customsty = ' style="display:inline;"';
+ $customsty = ' style="display:block;"';
}
}
$output .= '
'."\n".
@@ -474,16 +476,14 @@ sub build_tools_display {
'
'."\n".
&Apache::loncommon::start_data_table_row()."\n";
if (($context eq 'requestcourses') || ($context eq 'requestauthor')) {
- my ($curroption,$currlimit,$customsty);
+ my ($curroption,$currlimit);
my $envkey = $context.'.'.$item;
if ($context eq 'requestauthor') {
$envkey = $context;
}
if ($userenv{$envkey} ne '') {
$curroption = $userenv{$envkey};
- $customsty = ' style="display:block"';
} else {
- $customsty = ' style="display:none"';
my (@inststatuses);
if ($context eq 'requestcourses') {
$curroption =
@@ -3781,7 +3781,10 @@ sub update_user_data {
}
if (($env{'user.name'} eq $env{'form.ccuname'}) &&
($env{'user.domain'} eq $env{'form.ccdomain'})) {
- my %newenvhash;
+ my (%newenvhash,$got_domdefs,%domdefaults,$got_userenv,
+ %userenv);
+ my @fromenv = keys(%changed);
+ push(@fromenv,'inststatus');
foreach my $key (keys(%changed)) {
if (($key eq 'official') || ($key eq 'unofficial') ||
($key eq 'community') || ($key eq 'textbook') ||
@@ -3791,28 +3794,55 @@ sub update_user_data {
if ($changeHash{'requestcourses.'.$key}) {
$newenvhash{'environment.canrequest.'.$key} = 1;
} else {
+ unless ($got_domdefs) {
+ %domdefaults =
+ &Apache::lonnet::get_domain_defaults($env{'user.domain'});
+ $got_domdefs = 1;
+ }
+ unless ($got_userenv) {
+ %userenv =
+ &Apache::lonnet::userenvironment($env{'user.domain'},
+ $env{'user.name'},@fromenv);
+ $got_userenv = 1;
+ }
$newenvhash{'environment.canrequest.'.$key} =
&Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'},
- $key,'reload','requestcourses');
+ $key,'reload','requestcourses',\%userenv,\%domdefaults);
}
} elsif ($key eq 'requestauthor') {
$newenvhash{'environment.'.$key} = $changeHash{$key};
if ($changeHash{$key}) {
$newenvhash{'environment.canrequest.author'} = 1;
} else {
+ unless ($got_domdefs) {
+ %domdefaults =
+ &Apache::lonnet::get_domain_defaults($env{'user.domain'});
+ $got_domdefs = 1;
+ }
+ unless ($got_userenv) {
+ %userenv =
+ &Apache::lonnet::userenvironment($env{'user.domain'},
+ $env{'user.name'},@fromenv);
+ $got_userenv = 1;
+ }
$newenvhash{'environment.canrequest.author'} =
&Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'},
- $key,'reload','requestauthor');
+ $key,'reload','requestauthor',\%userenv,\%domdefaults);
}
} elsif ($key eq 'editors') {
$newenvhash{'environment.author'.$key} = $changeHash{'author'.$key};
- if ($key eq 'editors') {
- if ($env{'form.customeditors'}) {
- $newenvhash{'environment.editors'} = $changeHash{'author'.$key};
+ if ($env{'form.customeditors'}) {
+ $newenvhash{'environment.editors'} = $changeHash{'author'.$key};
+ } else {
+ unless ($got_domdefs) {
+ %domdefaults =
+ &Apache::lonnet::get_domain_defaults($env{'user.domain'});
+ $got_domdefs = 1;
+ }
+ if ($domdefaults{'editors'} ne '') {
+ $newenvhash{'environment.editors'} = $domdefaults{'editors'};
} else {
- $newenvhash{'environment.editors'} =
- &Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'},
- $key,'reload','authordefaults');
+ $newenvhash{'environment.editors'} = 'edit,xml';
}
}
} elsif ($key ne 'quota') {
@@ -3822,9 +3852,20 @@ sub update_user_data {
$newenvhash{'environment.availabletools.'.$key} =
$changeHash{'tools.'.$key};
} else {
+ unless ($got_domdefs) {
+ %domdefaults =
+ &Apache::lonnet::get_domain_defaults($env{'user.domain'});
+ $got_domdefs = 1;
+ }
+ unless ($got_userenv) {
+ %userenv =
+ &Apache::lonnet::userenvironment($env{'user.domain'},
+ $env{'user.name'},@fromenv);
+ $got_userenv = 1;
+ }
$newenvhash{'environment.availabletools.'.$key} =
&Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'},
- $key,'reload','tools');
+ $key,'reload','tools',\%userenv,\%domdefaults);
}
}
}
@@ -4025,7 +4066,7 @@ sub display_userinfo {
'prvs' => 'Previous Value:',
'chto' => 'Changed To:',
'editors' => "Available Editors in Authoring Space",
- 'managers' => "Co-authors who can add/revoke co-authors",
+ 'managers' => "Co-authors who can add/revoke roles",
'edit' => 'Standard editor (Edit)',
'xml' => 'Text editor (EditXML)',
'daxe' => 'Daxe editor (Daxe)',
@@ -6350,7 +6391,7 @@ sub handler {
if (($permission->{cusr}) && ($context eq 'author')) {
push(@{$brcrum},
{href => '/adm/createuser?action=camanagers',
- text => 'Co-authors who manage',
+ text => 'Co-author Managers',
help => 'Author_Manage_Coauthors'});
if ($env{'form.state'} eq 'process') {
push(@{$brcrum},
@@ -6919,15 +6960,15 @@ sub print_main_menu {
},
{
linktext => 'Co-author Managers',
- icon => 'helpdesk-access.png',
+ icon => 'camanager.png',
#help => 'Coauthor_Management',
url => '/adm/createuser?action=camanagers',
permission => $permission->{'author'},
linktitle => 'Assign/Revoke right to manage co-author roles',
},
{
- linktext => 'Configure Coauthor Listing',
- icon => 'helpdesk-access.png',
+ linktext => 'Configure Co-author Listing',
+ icon => 'coauthors.png',
#help => 'Coauthor_Settings',
url => '/adm/createuser?action=calist&forceedit=1',
permission => ($permission->{'cusr'}),