tinycm diff plugins/users/users.cgi @ rev 100

Improve users plugin (list last active users)
author Christophe Lincoln <pankso@slitaz.org>
date Mon Feb 20 13:33:04 2017 +0100 (2017-02-20)
parents 95673a3de4e4
children 35354740250d
line diff
     1.1 --- a/plugins/users/users.cgi	Mon Feb 20 02:20:44 2017 +0100
     1.2 +++ b/plugins/users/users.cgi	Mon Feb 20 13:33:04 2017 +0100
     1.3 @@ -27,24 +27,63 @@
     1.4  		header
     1.5  		html_header
     1.6  		user_box
     1.7 -		if check_auth && ! admin_user; then
     1.8 -			gettext "You must be admin to manage users" && exit 0
     1.9 +		# Admin only
    1.10 +		if admin_user; then
    1.11 +			tools="<a href='$script?userslist'>Users list</a>"
    1.12  		fi
    1.13 -		cat << EOT
    1.14 -<h2>Users admin</h2>
    1.15 +		# Logged users
    1.16 +		if check_auth; then
    1.17 +			cat << EOT
    1.18  <div id="tools">
    1.19  	<a href="$script?dashboard">Dashboard</a>
    1.20  	<a href='$script?loggedusers'>Logged users</a>
    1.21 -	<a href='$script?userslist'>Users list</a>
    1.22 +	$tools
    1.23  </div>
    1.24 +<h2>${d}</h2>
    1.25  <pre>
    1.26  User accounts   : $(ls -1 $PEOPLE | wc -l)
    1.27  Logged users    : $(ls $sessions | wc -l)
    1.28 +</pre>
    1.29 +EOT
    1.30 +		
    1.31 +			# Last active user
    1.32 +			count=10
    1.33 +			echo "<h3>Last active users</h3>"
    1.34 +			echo "<pre>"
    1.35 +			find ${PEOPLE} -name "last" | xargs ls -1t | head -n ${count} | while read last;
    1.36 +			do
    1.37 +				dir="$(dirname $last)"
    1.38 +				date="$(cat $last)"
    1.39 +				u=$(basename $dir)
    1.40 +				. "${PEOPLE}/${u}/account.conf"
    1.41 +			cat << EOT
    1.42 +$(get_gravatar $MAIL 24) $date  : <a href="?user=$u">$u</a> | $NAME
    1.43 +EOT
    1.44 +			done
    1.45 +			echo "</pre>"
    1.46 +			
    1.47 +			# Admin only
    1.48 +			if admin_user; then
    1.49 +				cat << EOT
    1.50 +<h3>Config paths</h3>
    1.51 +<pre>
    1.52  People DB       : $PEOPLE
    1.53  Auth file       : $AUTH_FILE
    1.54 +</pre>
    1.55  EOT
    1.56 -		
    1.57 -		echo "</pre>"
    1.58 +				# Get the list of administrators
    1.59 +				echo "<h3>Admin users</h3>"
    1.60 +				fgrep -l "ADMIN_USER=" $PEOPLE/*/account.conf | while read file;
    1.61 +				do
    1.62 +					. ${file}
    1.63 +					echo "<a href='?user=$USER'>$USER</a>"
    1.64 +					unset NAME USER
    1.65 +				done
    1.66 +			fi
    1.67 +			
    1.68 +		else
    1.69 +			gettext "You must be logged to check or admin users"
    1.70 +		fi
    1.71  		html_footer && exit 0 ;;
    1.72  		
    1.73  	*\ userslist\ *)
    1.74 @@ -59,12 +98,12 @@
    1.75  		fi
    1.76  		users=$(ls -1 $PEOPLE | wc -l)
    1.77  		cat << EOT
    1.78 -<h2>Users: $users</h2>
    1.79  <div id="tools">
    1.80  	<a href="$script?dashboard">Dashboard</a>
    1.81  	<a href="$script?users">Users admin</a>
    1.82  	<a href='$script?loggedusers'>Logged users</a>
    1.83  </div>
    1.84 +<h2>Users: $users</h2>
    1.85  <pre>
    1.86  EOT
    1.87  		for u in $(ls $PEOPLE)
    1.88 @@ -97,11 +136,11 @@
    1.89  		fi
    1.90  		logged="$(ls $sessions | wc -l)"
    1.91  		cat << EOT
    1.92 -<h2>Logged users: $logged</h2>
    1.93  <div id="tools">
    1.94  	<a href="$script?dashboard">Dashboard</a>
    1.95 -	<a href="$script?users">Users admin</a>
    1.96 +	<a href="$script?users">Users</a>
    1.97  </div>
    1.98 +<h2>Logged users: $logged</h2>
    1.99  <pre>
   1.100  EOT
   1.101  		for u in $(ls $sessions)