--- loncom/interface/loncreateuser.pm 2024/05/21 02:57:15 1.480
+++ loncom/interface/loncreateuser.pm 2025/01/13 01:00:58 1.483
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.480 2024/05/21 02:57:15 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.483 2025/01/13 01:00:58 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -375,6 +375,12 @@ sub build_tools_display {
if ($userenv{'tools.'.$item} ne '') {
$cust_on = ' checked="checked" ';
$cust_off = '';
+ $curr_access = $userenv{'tools.'.$item};
+ } else {
+ $curr_access =
+ &Apache::lonnet::usertools_access($ccuname,$ccdomain,$item,'reload',
+ undef,\%userenv,'',
+ {'is_adv' => $isadv});
}
}
} elsif ($userenv{$context.'.'.$item} ne '') {
@@ -1525,6 +1531,7 @@ sub print_user_modification_page {
'bread_crumbs_component' => 'User Management'};
if ($env{'form.popup'}) {
$args->{'no_nav_bar'} = 1;
+ $args->{'add_modal'} = 1;
}
if (($context eq 'domain') && ($env{'request.role.domain'} eq $ccdomain)) {
my @toggles;
@@ -2910,6 +2917,24 @@ sub personal_data_display {
$rowcount ++;
}
}
+ my %shownfields;
+ if ($env{'request.role.domain'} ne $ccdomain) {
+ my %shownfields_by_type =
+ &Apache::lonuserutils::get_othdom_shownfields($ccdomain,\@userinfo);
+ my @types = split(/:/,$userenv{'inststatus'});
+ if (@types == 0) {
+ @types = ('default');
+ }
+ foreach my $type (@types) {
+ if (ref($shownfields_by_type{$type}) eq 'HASH') {
+ foreach my $field (keys(%{$shownfields_by_type{$type}})) {
+ if ($shownfields_by_type{$type}{$field}) {
+ $shownfields{$field} = 1;
+ }
+ }
+ }
+ }
+ }
foreach my $item (@userinfo) {
my $rowtitle = $lt{$item};
my $hiderow = 0;
@@ -2956,7 +2981,15 @@ sub personal_data_display {
$row .= '
'.&Apache::lonuserutils::forceid_change($context);
}
} else {
- $row .= $userenv{$item};
+ if ($env{'request.role.domain'} ne $ccdomain) {
+ if ($shownfields{$item}) {
+ $row .= $userenv{$item};
+ } else {
+ $row .= &mt('not shown');
+ }
+ } else {
+ $row .= $userenv{$item};
+ }
}
}
$row .= &Apache::lonhtmlcommon::row_closure(1);
@@ -6486,6 +6519,27 @@ sub handler {
$r->internal_redirect('/adm/viewcoauthors');
return OK;
}
+ } elsif (($env{'form.action'} eq 'setenv') && ($context eq 'author')) {
+ my ($role,$audom,$auname,$canview,$canedit) =
+ &Apache::lonviewcoauthors::get_allowable();
+ push(@{$brcrum},
+ {href => '/adm/createuser?action=calist',
+ text => 'Coauthor-viewable list',
+ help => 'Author_List_Coauthors'});
+ my $args = { 'bread_crumbs' => $brcrum };
+ $r->print(&Apache::loncommon::start_page('Coauthor-viewable list',undef,
+ $args));
+ my %viewsettings =
+ &Apache::lonviewcoauthors::retrieve_view_settings($auname,$audom,$role);
+ if ($viewsettings{'show'} eq 'none') {
+ $r->print('
'. + &mt('Listing of co-authors not enabled for this Authoring Space'). + '
'); + } else { + &Apache::lonviewcoauthors::print_coauthors($r,$auname,$audom,$role, + '/adm/createuser',\%viewsettings); + } } else { $bread_crumbs_component = 'User Management'; $args = { bread_crumbs => $brcrum, @@ -6990,6 +7044,27 @@ sub print_main_menu { ); } } elsif ($context eq 'author') { + my $coauthorlist; + if ($env{'request.role'} =~ m{^(?:ca|aa)\./($match_domain)/($match_username)$}) { + if ($env{'environment.internal.coauthorlist./'.$1.'/'.$2}) { + $coauthorlist = 1; + } + } elsif ($env{'request.role'} eq "au./$env{'user.domain'}/") { + if ($env{'environment.coauthorlist'}) { + $coauthorlist = 1; + } + } + if ($coauthorlist) { + push(@{ $menu[1]->{items} }, + { + linktext => 'Co-author-viewable list', + icon => 'clst.png', + #help => 'Coauthor_Listing', + url => '/adm/createuser?action=calist&forceedit=0', + permission => $permission->{'cusr'}, + linktitle => 'Co-author-viewable listing', + }); + } push(@{ $menu[2]->{items} }, #Category: Administration { linktext => 'Change Log',