'.
- &Apache::loncommon::end_data_table_header_row();
- foreach my $key (sort(keys(%customroles))) {
- next if ((!$canmodify) && (!grep(/^\Q$key\E$/,@current)));
- $output .= &Apache::loncommon::start_data_table_row();
- if ($canmodify) {
- if (grep(/^\Q$key\E$/,@current)) {
- $output .= '
'.
- '
';
- } else {
- $output .= '
'.
- '
';
- }
- }
- $output .= '
'.$key.'
';
- foreach my $level ('course','domain','system') {
- if ($customroles{$key}{$level}) {
- my $suffix;
- if (($level eq 'domain') || ($level eq 'system')) {
- $suffix = ' ('.&mt($level).')';
- }
- my @privs = split(/:/,$customroles{$key}{$level});
- foreach my $item (@privs) {
- next if ($item eq '');
- my ($priv,$cond) = split(/\&/,$item);
- $output .= &Apache::lonnet::plaintext($priv,'Course').$suffix.' ';
- }
- }
- }
- $output .= '
'.
- &Apache::loncommon::end_data_table_row();
- }
- $output .= &Apache::loncommon::end_data_table();
- }
- return $output;
-}
-
sub courserequest_titles {
my %titles = &Apache::lonlocal::texthash (
official => 'Official',
@@ -757,7 +679,7 @@ sub print_username_entry_form {
} elsif ($env{'form.action'} eq 'accesslogs') {
$helpitem = 'Domain_User_Access_Logs';
}
- my %breadcrumb_text = &singleuser_breadcrumb($crstype);
+ my %breadcrumb_text = &singleuser_breadcrumb($crstype,$context,$defdom);
if ($env{'form.action'} eq 'custom') {
push(@{$brcrum},
{href=>"javascript:backPage(document.crtuser)",
@@ -785,6 +707,7 @@ sub print_username_entry_form {
'srst' => 'Search for a user and enroll as a student',
'srme' => 'Search for a user and enroll as a member',
'srad' => 'Search for a user and modify/add user information or roles',
+ 'srvu' => 'Search for a user and view user information and roles',
'srva' => 'Search for a user and view access log information',
'usr' => "Username",
'dom' => "Domain",
@@ -840,6 +763,9 @@ sub print_username_entry_form {
}
} elsif ($env{'form.action'} eq 'accesslogs') {
$actiontext = $lt{'srva'};
+ } elsif (($env{'form.action'} eq 'singleuser') &&
+ ($context eq 'domain') && (!&Apache::lonnet::allowed('mau',$defdom))) {
+ $actiontext = $lt{'srvu'};
}
$r->print("
$actiontext
");
if ($env{'form.origform'} ne 'crtusername') {
@@ -933,7 +859,9 @@ ENDBLOCK
} else {
$output = '
'.$userpicker.'
';
}
- if (($env{'form.phase'} eq '') && ($env{'form.action'} ne 'accesslogs')) {
+ if (($env{'form.phase'} eq '') && ($env{'form.action'} ne 'accesslogs') &&
+ (!(($env{'form.action'} eq 'singleuser') && ($context eq 'domain') &&
+ (!&Apache::lonnet::allowed('mau',$env{'request.role.domain'}))))) {
my $defdom=$env{'request.role.domain'};
my $domform = &Apache::loncommon::select_dom_form($defdom,'srchdomain');
my %lt=&Apache::lonlocal::texthash(
@@ -1050,7 +978,9 @@ ENDSCRIPT
'stusrch' => "User Search to enroll student",
'memsrch' => "User Search to enroll member",
'srcva' => "Search for a user and view access log information",
+ 'usrvu' => "User Search to view user roles",
'usel' => "Select a user to add/modify roles",
+ 'suvr' => "Select a user to view roles",
'stusel' => "Select a user to enroll as a student",
'memsel' => "Select a user to enroll as a member",
'vacsel' => "Select a user to view access log",
@@ -1063,7 +993,7 @@ ENDSCRIPT
if ($context eq 'requestcrs') {
$r->print('
');
+ }
} elsif ($env{'form.action'} eq 'singlestudent') {
$r->print($jscript."");
if ($crstype eq 'Community') {
@@ -1279,7 +1219,7 @@ sub print_user_modification_page {
my $js = &validation_javascript($context,$ccdomain,$pjump_def,$crstype,
$groupslist,$newuser,$formname,\%loaditem);
- my %breadcrumb_text = &singleuser_breadcrumb($crstype);
+ my %breadcrumb_text = &singleuser_breadcrumb($crstype,$context,$ccdomain);
my $helpitem = 'Course_Change_Privileges';
if ($env{'form.action'} eq 'singlestudent') {
$helpitem = 'Course_Add_Student';
@@ -1345,7 +1285,7 @@ ENDFORMINFO
}
my $title = '';
if ($newuser) {
- my ($portfolioform,$domroleform,$adhocroleform);
+ my ($portfolioform,$domroleform);
if ((&Apache::lonnet::allowed('mpq',$env{'request.role.domain'})) ||
(&Apache::lonnet::allowed('mut',$env{'request.role.domain'}))) {
# Current user has quota or user tools modification privileges
@@ -1355,12 +1295,6 @@ ENDFORMINFO
($ccdomain eq $env{'request.role.domain'})) {
$domroleform = ' '.&domainrole_req($ccuname,$ccdomain);
}
- if (&Apache::lonnet::allowed('cdh',$env{'request.role.domain'})) {
- $adhocroleform = &domadhocroles($ccuname,$ccdomain);
- if ($adhocroleform) {
- $adhocroleform = ' '.$adhocroleform;
- }
- }
&initialize_authen_forms($ccdomain,$formname);
my %lt=&Apache::lonlocal::texthash(
'lg' => 'Login Data',
@@ -1471,7 +1405,7 @@ ENDAUTH
} else {
$r->print(&Apache::lonuserutils::set_login($ccdomain,$authformkrb,$authformint,$authformloc));
}
- $r->print($portfolioform.$domroleform.$adhocroleform);
+ $r->print($portfolioform.$domroleform);
if ($env{'form.action'} eq 'singlestudent') {
$r->print(&date_sections_select($context,$newuser,$formname,
$permission,$crstype,$ccuname,
@@ -1514,7 +1448,7 @@ ENDAUTH
$r->print(&Apache::loncommon::end_data_table());
}
$r->print('
');
- my @order = ('auth','quota','tools','requestauthor','adhocroles');
+ my @order = ('auth','quota','tools','requestauthor');
my %user_text;
my ($isadv,$isauthor) =
&Apache::lonnet::is_advanced_user($ccdomain,$ccuname);
@@ -1524,10 +1458,6 @@ ENDAUTH
($env{'request.role.domain'} eq $ccdomain)) {
$user_text{'requestauthor'} = &domainrole_req($ccuname,$ccdomain);
}
- if ((&Apache::lonnet::allowed('cdh',$env{'request.role.domain'})) ||
- (&Apache::lonnet::allowed('udp',$env{'request.role.domain'}))) {
- $user_text{'adhocroles'} = &domadhocroles($ccuname,$ccdomain);
- }
$user_text{'auth'} = &user_authentication($ccuname,$ccdomain,$formname);
if ((&Apache::lonnet::allowed('mpq',$ccdomain)) ||
(&Apache::lonnet::allowed('mut',$ccdomain)) ||
@@ -1654,7 +1584,7 @@ ENDNOTOOLSPRIV
}
sub singleuser_breadcrumb {
- my ($crstype) = @_;
+ my ($crstype,$context,$domain) = @_;
my %breadcrumb_text;
if ($env{'form.action'} eq 'singlestudent') {
if ($crstype eq 'Community') {
@@ -1662,16 +1592,21 @@ sub singleuser_breadcrumb {
} else {
$breadcrumb_text{'search'} = 'Enroll a student';
}
- $breadcrumb_text{'userpicked'} = 'Select a user',
- $breadcrumb_text{'modify'} = 'Set section/dates',
+ $breadcrumb_text{'userpicked'} = 'Select a user';
+ $breadcrumb_text{'modify'} = 'Set section/dates';
} elsif ($env{'form.action'} eq 'accesslogs') {
$breadcrumb_text{'search'} = 'View access logs for a user';
- $breadcrumb_text{'userpicked'} = 'Select a user',
- $breadcrumb_text{'activity'} = 'Activity',
+ $breadcrumb_text{'userpicked'} = 'Select a user';
+ $breadcrumb_text{'activity'} = 'Activity';
+ } elsif (($env{'form.action'} eq 'singleuser') && ($context eq 'domain') &&
+ (!&Apache::lonnet::allowed('mau',$domain))) {
+ $breadcrumb_text{'search'} = "View user's roles";
+ $breadcrumb_text{'userpicked'} = 'Select a user';
+ $breadcrumb_text{'modify'} = 'User roles';
} else {
$breadcrumb_text{'search'} = 'Create/modify a user';
- $breadcrumb_text{'userpicked'} = 'Select a user',
- $breadcrumb_text{'modify'} = 'Set user role',
+ $breadcrumb_text{'userpicked'} = 'Select a user';
+ $breadcrumb_text{'modify'} = 'Set user role';
}
return %breadcrumb_text;
}
@@ -2283,7 +2218,7 @@ ENDBADAUTH
$result = &mt('Currently Kerberos authenticated, Version [_1].',$krbver);
} else {
$result = &mt('Currently Kerberos authenticated with domain [_1] Version [_2].',
- $krbver,$krbrealm);
+ $krbrealm,$krbver);
}
} elsif ($currentauth =~ /^internal:/) {
$result = &mt('Currently internally authenticated.');
@@ -2689,7 +2624,7 @@ sub update_user_data {
$jsback."\n".
'// ]]>'."\n".
''."\n";
- my %breadcrumb_text = &singleuser_breadcrumb($crstype);
+ my %breadcrumb_text = &singleuser_breadcrumb($crstype,$context,$env{'form.ccdomain'});
push (@{$brcrum},
{href => "javascript:backPage(document.userupdate)",
text => $breadcrumb_text{'search'},
@@ -2908,12 +2843,6 @@ sub update_user_data {
$newcustom{'requestauthor'},
\%changeHash,'requestauthor');
}
- if (&Apache::lonnet::allowed('cdh',$env{'request.role.domain'})) {
- my @adds = &Apache::loncommon::get_env_multiple('form.adhocroleadd');
- if (&adhocrole_changes(\%changeHash)) {
- $changed{'adhocroles.'.$env{'request.role.domain'}} = $changeHash{'adhocroles.'.$env{'request.role.domain'}};
- }
- }
}
if ($canmodify_status{'inststatus'}) {
if (exists($env{'form.inststatus'})) {
@@ -2977,8 +2906,7 @@ sub update_user_data {
'requestcourses.community','requestcourses.textbook',
'reqcrsotherdom.official','reqcrsotherdom.unofficial',
'reqcrsotherdom.community','reqcrsotherdom.textbook',
- 'reqcrsotherdom.placement','requestauthor',
- 'adhocroles.'.$env{'request.role.domain'}],
+ 'reqcrsotherdom.placement','requestauthor'],
$env{'form.ccdomain'},$env{'form.ccuname'});
my ($tmp) = keys(%userenv);
if ($tmp =~ /^(con_lost|error)/i) {
@@ -3117,7 +3045,6 @@ sub update_user_data {
&Apache::loncommon::default_quota($env{'form.ccdomain'},$oldinststatus,$name);
($newdefquota{$name},$newsettingstatus{$name}) = ($olddefquota{$name},$oldsettingstatus{$name});
}
- push(@disporder,'adhocroles');
my %canshow;
if (&Apache::lonnet::allowed('mpq',$env{'form.ccdomain'})) {
$canshow{'quota'} = 1;
@@ -3136,9 +3063,6 @@ sub update_user_data {
if (&Apache::lonnet::allowed('cau',$env{'form.ccdomain'})) {
$canshow{'requestauthor'} = 1;
}
- if (&Apache::lonnet::allowed('cdh',$env{'request.role.domain'})) {
- $canshow{'adhocroles'} = 1;
- }
my (%changeHash,%changed);
if ($oldinststatus eq '') {
$oldsettings{'inststatus'} = $othertitle;
@@ -3252,14 +3176,6 @@ sub update_user_data {
&tool_changes('reqcrsotherdom',\@requestcourses,\%oldsettings,\%oldsettingstext,
\%userenv,\%changeHash,\%changed,\%newsettings,\%newsettingstext);
}
- if ($userenv{'adhocroles.'.$env{'request.role.domain'}}) {
- $changeHash{'adhocroles.'.$env{'request.role.domain'}} = $userenv{'adhocroles.'.$env{'request.role.domain'}};
- }
- if (&adhocrole_changes(\%changeHash,\%userenv)) {
- $changed{'adhocroles'} = 1;
- $oldsettings{'adhocroles'} = $userenv{'adhocroles.'.$env{'request.role.domain'}};
- $newsettings{'adhocroles'} = $changeHash{'adhocroles.'.$env{'request.role.domain'}};
- }
}
foreach my $item (@userinfo) {
if ($env{'form.c'.$item} ne $userenv{$item}) {
@@ -3302,9 +3218,6 @@ sub update_user_data {
&Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'},
$key,'reload','requestauthor');
}
- } elsif ($key eq 'adhocroles') {
- $newenvhash{'adhocroles.'.$env{'request.role.domain'}} =
- $changeHash{'adhocroles.'.$env{'request.role.domain'}};
} elsif ($key ne 'quota') {
$newenvhash{'environment.tools.'.$key} =
$changeHash{'tools.'.$key};
@@ -3497,7 +3410,6 @@ sub display_userinfo {
'textbook' => 'Can Request Textbook Courses',
'placement' => 'Can Request Placement Tests',
'requestauthor' => 'Can Request Author Role',
- 'adhocroles' => 'Ad Hoc Roles Selectable via Helpdesk Role',
'inststatus' => "Affiliation",
'prvs' => 'Previous Value:',
'chto' => 'Changed To:'
@@ -3863,70 +3775,6 @@ sub tool_changes {
return;
}
-sub adhocrole_changes {
- my ($changehashref,$userenv) = @_;
- my @adds = &Apache::loncommon::get_env_multiple('form.adhocroleadd');
- my @dels = &Apache::loncommon::get_env_multiple('form.adhocroledel');
- my (@saved,@added,@alladhoc,$changed);
- my $adhoc_key = 'adhocroles.'.$env{'request.role.domain'};
- if (!$env{'form.makeuser'}) {
- if (ref($userenv) eq 'HASH') {
- my @current;
- if ($userenv->{$adhoc_key}) {
- @current = split(/,/,$userenv->{$adhoc_key});
- if (@dels) {
- foreach my $curr (@current) {
- next if ($curr eq '');
- unless (grep(/\Q$curr\E$/,@dels)) {
- push(@saved,$curr);
- }
- }
- $changed = 1;
- } else {
- @saved = @current;
- }
- }
- }
- }
- if (@adds) {
- my $confname = &Apache::lonnet::get_domainconfiguser($env{'request.role.domain'});
- my %existing=&Apache::lonnet::dump('roles',$env{'request.role.domain'},
- $confname,'rolesdef_');
- foreach my $poss (@adds) {
- if (exists($existing{'rolesdef_'.$poss})) {
- push(@added,$poss);
- $changed = 1;
- }
- }
- }
- if (@added) {
- if (@saved) {
- foreach my $add (@added) {
- unless (grep(/^\Q$add\E$/,@saved)) {
- push(@alladhoc,$add);
- }
- }
- } else {
- push(@alladhoc,@added);
- }
- }
- if (@saved) {
- push(@alladhoc,@saved);
- }
- if (@alladhoc) {
- my $adhocstr = join(',',sort(@alladhoc));
- $changehashref->{$adhoc_key} = $adhocstr;
- } elsif (@dels) {
- &Apache::lonnet::del('environment',[$adhoc_key],$env{'form.ccdomain'},$env{'form.ccuname'});
- delete($changehashref->{$adhoc_key});
- if (($env{'form.ccdomain'} eq $env{'user.domain'}) &&
- ($env{'form.ccuname'} eq $env{'user.name'})) {
- &Apache::lonnet::delenv($adhoc_key);
- }
- }
- return $changed;
-}
-
sub update_roles {
my ($r,$context,$showcredits) = @_;
my $now=time;
@@ -5506,7 +5354,7 @@ sub print_main_menu {
{
linktext => 'User Access Log',
icon => 'document-properties.png',
- #help => 'User_Access_Logs',
+ #help => 'Domain_User_Access_Logs',
url => '/adm/createuser?action=accesslogs',
permission => $permission->{'activity'},
linktitle => 'View user access log.',
@@ -6814,7 +6662,7 @@ sub print_useraccesslogs_display {
my $form = 'document.accesslog';
# set breadcrumbs
- my %breadcrumb_text = &singleuser_breadcrumb();
+ my %breadcrumb_text = &singleuser_breadcrumb('','domain',$udom);
push (@{$brcrum},
{href => "javascript:backPage($form)",
text => $breadcrumb_text{'search'}});
@@ -6834,10 +6682,13 @@ sub print_useraccesslogs_display {
push(@{$brcrum},
{href => '/adm/createuser?action=accesslogs',
text => 'User access logs',
- help => 'User_Access_Logs'});
+ help => 'Domain_User_Access_Logs'});
my $bread_crumbs_component = 'User Access Logs';
my $args = { bread_crumbs => $brcrum,
bread_crumbs_component => 'User Management'};
+ if ($env{'form.popup'}) {
+ $args->{'no_nav_bar'} = 1;
+ }
# set javascript
my ($jsback,$elements) = &crumb_utilities();
@@ -7043,6 +6894,10 @@ ENDSCRIPT
.'');
}
+ if ($env{'form.popup'} == 1) {
+ $r->print(''."\n");
+ }
+
# Form Footer
$r->print(
''
@@ -7762,18 +7617,21 @@ sub build_search_response {
.&mt("Click 'Search'")
.' ';
} else {
- my $helplink = ' href="javascript:helpMenu('."'display'".')"';
- $response .= '
';
- if ($context eq 'requestcrs') {
- $response .= &mt("You are not authorized to define new users in the new course's domain - [_1].",$targetdom);
- } else {
- $response .= &mt("You are not authorized to create new users in your current role's domain - [_1].",$targetdom);
+ unless (($context eq 'domain') && ($env{'form.action'} eq 'singleuser')) {
+ my $helplink = ' href="javascript:helpMenu('."'display'".')"';
+ $response .= '
';
+ if ($context eq 'requestcrs') {
+ $response .= &mt("You are not authorized to define new users in the new course's domain - [_1].",$targetdom);
+ } else {
+ $response .= &mt("You are not authorized to create new users in your current role's domain - [_1].",$targetdom);
+ }
+ $response .= ' '
+ .&mt('Please contact the [_1]helpdesk[_2] if you need to create a new user.'
+ ,' '
+ ,'')
+ .' ';
+
}
- $response .= ' '
- .&mt('Please contact the [_1]helpdesk[_2] if you need to create a new user.'
- ,' '
- ,'')
- .' ';
}
}
}