--- loncom/interface/loncreateuser.pm 2016/10/04 21:02:16 1.414 +++ loncom/interface/loncreateuser.pm 2016/10/22 17:56:12 1.417 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Create a user # -# $Id: loncreateuser.pm,v 1.414 2016/10/04 21:02:16 raeburn Exp $ +# $Id: loncreateuser.pm,v 1.417 2016/10/22 17:56:12 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -533,13 +533,13 @@ sub domainrole_req { sub domadhocroles { my ($ccuname,$ccdomain) = @_; - my $confname = &Apache::lonnet::get_domainconfiguser($env{'request.role.domain'}); + my $confname = &Apache::lonnet::get_domainconfiguser($env{'request.role.domain'}); my %existing=&Apache::lonnet::dump('roles',$env{'request.role.domain'}, $confname,'rolesdef_'); my $output; if (keys(%existing) > 0) { my @current; - my $curradhoc = 'adhocroles.'.$env{'request.role.domain'}; + my $curradhoc = 'adhocroles.'.$env{'request.role.domain'}; my %userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname,$curradhoc); if ($userenv{$curradhoc}) { @current = split(/,/,$userenv{$curradhoc}); @@ -560,7 +560,7 @@ sub domadhocroles { &Apache::loncommon::start_data_table_header_row(). '
'.$userpicker.'
'; } - if ($env{'form.phase'} eq '') { + if (($env{'form.phase'} eq '') && ($env{'form.action'} ne 'accesslogs')) { my $defdom=$env{'request.role.domain'}; my $domform = &Apache::loncommon::select_dom_form($defdom,'srchdomain'); my %lt=&Apache::lonlocal::texthash( @@ -1022,9 +1032,11 @@ ENDSCRIPT 'usrch' => "User Search to add/modify roles", 'stusrch' => "User Search to enroll student", 'memsrch' => "User Search to enroll member", + 'srcva' => "Search for a user and view access log information", 'usel' => "Select a user to add/modify 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", 'username' => "username", 'domain' => "domain", 'lastname' => "last name", @@ -1073,6 +1085,10 @@ ENDSCRIPT $r->print($lt{'stusel'}); } $r->print(''); + } elsif ($env{'form.action'} eq 'accesslogs') { + $r->print("$lt{'srcva'}'
.&mt('There are no records to display.')
@@ -6576,15 +6647,328 @@ sub print_userchangelogs_display {
return;
}
-sub userlogdisplay_nav {
- my ($formname,$curr,$more_records) = @_;
- my ($nav_script,$nav_links);
- if (ref($curr) eq 'HASH') {
- # Create Navigation:
- # Navigation Script
- $nav_script = <<"ENDSCRIPT";
+sub print_useraccesslogs_display {
+ my ($r,$uname,$udom,$permission,$brcrum) = @_;
+ my $formname = 'accesslog';
+ my $form = 'document.accesslog';
+
+# set breadcrumbs
+ my %breadcrumb_text = &singleuser_breadcrumb();
+ push (@{$brcrum},
+ {href => "javascript:backPage($form)",
+ text => $breadcrumb_text{'search'}});
+ my (@prevphases,$prevphasestr);
+ if ($env{'form.prevphases'}) {
+ @prevphases = split(/,/,$env{'form.prevphases'});
+ $prevphasestr = $env{'form.prevphases'};
+ }
+ if (($env{'form.phase'} eq 'userpicked') || (grep(/^userpicked$/,@prevphases))) {
+ push(@{$brcrum},
+ {href => "javascript:backPage($form,'get_user_info','select')",
+ text => $breadcrumb_text{'userpicked'}});
+ if ($env{'form.phase'} eq 'userpicked') {
+ $prevphasestr = 'userpicked';
+ }
+ }
+ push(@{$brcrum},
+ {href => '/adm/createuser?action=accesslogs',
+ text => 'User access logs',
+ help => 'User_Access_Logs'});
+ my $bread_crumbs_component = 'User Access Logs';
+ my $args = { bread_crumbs => $brcrum,
+ bread_crumbs_component => 'User Management'};
+
+# set javascript
+ my ($jsback,$elements) = &crumb_utilities();
+ my $jsnav = &userlogdisplay_js($formname);
+
+ my $jscript = (< '
+ .&mt('You do not have rights to display user access logs.')
+ .' '
+ .&mt("User's domain must match role's domain")
+ .' '
+ .&mt('Invalid username or domain')
+ .' '
+ .''
+ .' ';
- if (($curr->{'page'} > 1) || ($more_records)) {
- if ($curr->{'page'} > 1) {
- $nav_links .= ' ';
- }
- if ($more_records) {
- $nav_links .= '';
- }
+}
+
+sub userlogdisplay_navlinks {
+ my ($curr,$more_records) = @_;
+ return unless(ref($curr) eq 'HASH');
+ # Navigation Buttons
+ my $nav_links = ' ';
+ if (($curr->{'page'} > 1) || ($more_records)) {
+ if (($curr->{'page'} > 1) && ($curr->{'show'} !~ /\D/)) {
+ $nav_links .= ' ';
+ }
+ if ($more_records) {
+ $nav_links .= '';
}
- $nav_links .= '
';
+ # Update Display button
+ $output .= ''.
+ ''.&mt('Actions/page:').'
'.
+ &Apache::lonmeta::selectbox('show',$curr->{'show'},undef,
+ (&mt('all'),5,10,20,50,100,1000,10000)).
+ ' ';
+ my $startform =
+ &Apache::lonhtmlcommon::date_setter($formname,'accesslog_start_date',
+ $curr->{'accesslog_start_date'},undef,
+ undef,undef,undef,undef,undef,undef,$nolink);
+ my $endform =
+ &Apache::lonhtmlcommon::date_setter($formname,'accesslog_end_date',
+ $curr->{'accesslog_end_date'},undef,
+ undef,undef,undef,undef,undef,undef,$nolink);
+ my %lt = &Apache::lonlocal::texthash (
+ activity => 'Activity',
+ Role => 'Role selection',
+ log => 'Log-in or Logout',
+ );
+ $output .= ''.&mt('Window during which actions occurred:').' '.
+ '
'.
+ '
'.
+ ' '.
+ ''.&mt('After:').
+ ' '.$startform.' '.&mt('Before:').' '.
+ ''.$endform.' '.
+ ''.&mt('Activities').' '.
+ '
'.
+ '