tazpanel annotate index.cgi @ rev 13

A bunch of change, users mangement, javascript small function, css, tazpg.cgi
author Christophe Lincoln <pankso@slitaz.org>
date Sun Apr 03 03:21:00 2011 +0200 (2011-04-03)
parents ab6120f11be4
children 2ea20065417a
rev   line source
pankso@2 1 #!/bin/sh
pankso@2 2 #
pankso@13 3 # Main CGI interface for TazPanel. In on word: KISS
pankso@2 4 #
pankso@2 5 echo "Content-Type: text/html"
pankso@2 6 echo ""
pankso@2 7
pankso@13 8 # We need a config file first
pankso@13 9 CONFIG="/etc/slitaz/tazpanel.conf"
pankso@13 10 [ -f $CONFIG ] && . $CONFIG
pankso@13 11 [ -f tazpanel.conf ] && . tazpanel.conf
pankso@13 12 [ -z $PANEL ] && echo "No config file found" && exit 1
pankso@2 13
pankso@13 14 # xHTML 5 header
pankso@8 15 xhtml_header() {
pankso@8 16 cat $HEADER | sed s/'- %TITLE%'/"$TITLE"/
pankso@8 17 }
pankso@2 18
pankso@13 19 table_start() {
pankso@13 20 cat << EOT
pankso@13 21 <table>
pankso@13 22 <tbody>
pankso@13 23 EOT
pankso@13 24 }
pankso@13 25
pankso@13 26 table_end () {
pankso@13 27 cat << EOT
pankso@13 28 </tbody>
pankso@13 29 </table>
pankso@13 30 EOT
pankso@13 31 }
pankso@2 32
pankso@2 33 #
pankso@2 34 # Commands
pankso@2 35 #
pankso@2 36
pankso@2 37 case "$QUERY_STRING" in
pankso@13 38 boot)
pankso@13 39 # Everything until user login
pankso@13 40 TITLE="- Network"
pankso@13 41 xhtml_header
pankso@13 42 cat << EOT
pankso@13 43 <div id="wrapper">
pankso@13 44 <h2>`gettext "Boot &amp; startup"`</h2>
pankso@13 45 <p>
pankso@13 46 `gettext "Everything that appends before user login."`
pankso@13 47 </p>
pankso@13 48
pankso@13 49 <h3>`gettext "Kernel cmdline"`</h3>
pankso@13 50 <pre>
pankso@13 51 `cat /proc/cmdline`
pankso@13 52 </pre>
pankso@13 53 EOT
pankso@13 54 echo '</div>' ;;
pankso@13 55 users|user=*)
pankso@13 56 # Manage system user accounts
pankso@8 57 TITLE="- Users"
pankso@8 58 xhtml_header
pankso@13 59
pankso@13 60 cmdline=`echo ${QUERY_STRING#user*=} | sed s'/&/ /g'`
pankso@13 61 #user=`echo ${cmdline} | sed s'/=/ /' | awk '{print $1}'`
pankso@13 62 #cmd=`echo ${cmdline} | sed s'/=/ /' |awk '{print $2}'`
pankso@13 63
pankso@13 64 [ $DEBUG == "1" ] && echo \
pankso@13 65 "<p class='debug'>$cmdline</p>"
pankso@13 66 #$REQUEST_METHOD $QUERY_STRING
pankso@13 67 # Parse cmdline
pankso@13 68 for opt in $cmdline
pankso@2 69 do
pankso@13 70 case $opt in
pankso@13 71 adduser=*)
pankso@13 72 user=${opt#adduser=}
pankso@13 73 cmd=adduser ;;
pankso@13 74 deluser=*)
pankso@13 75 user=${opt#deluser=}
pankso@13 76 deluser $user ;;
pankso@13 77 passwd=*)
pankso@13 78 pass=${opt#passwd=} ;;
pankso@13 79 esac
pankso@2 80 done
pankso@13 81 case "$cmd" in
pankso@13 82 adduser)
pankso@13 83 echo "$user"
pankso@13 84 echo $pass
pankso@13 85 adduser -D $user
pankso@13 86 echo "$pass" | chpasswd
pankso@13 87 for g in audio cdrom floppy video
pankso@13 88 do
pankso@13 89 addgroup $user $g
pankso@13 90 done ;;
pankso@13 91 *) continue ;;
pankso@13 92 esac
pankso@13 93 cat << EOT
pankso@13 94 <div id="wrapper">
pankso@13 95 <h2>`gettext "Manage users"`</h2>
pankso@13 96 <div>`gettext "Manage human users on your SliTaz system"`</div>
pankso@13 97 <form method="get" action="$SCRIPT_NAME">
pankso@13 98 EOT
pankso@13 99 table_start
pankso@13 100 cat << EOT
pankso@13 101 <tr id="thead">
pankso@13 102 <td>`gettext "Name"`</td>
pankso@13 103 <td>`gettext "User ID"`</td>
pankso@13 104 <td>`gettext "Name"`</td>
pankso@13 105 <td>`gettext "Home"`</td>
pankso@13 106 <td>`gettext "SHell"`</td>
pankso@13 107 </tr>
pankso@13 108 EOT
pankso@13 109 for i in `cat /etc/passwd | cut -d ":" -f 1`
pankso@13 110 do
pankso@13 111 if [ -d /home/$i ]; then
pankso@13 112 login=$i
pankso@13 113 uid=`cat /etc/passwd | grep $i | cut -d ":" -f 3`
pankso@13 114 gid=`cat /etc/passwd | grep $i | cut -d ":" -f 4`
pankso@13 115 name=`cat /etc/passwd | grep $i | cut -d ":" -f 5 | \
pankso@13 116 sed s/,,,//`
pankso@13 117 home=`cat /etc/passwd | grep $i | cut -d ":" -f 6`
pankso@13 118 shell=`cat /etc/passwd | grep $i | cut -d ":" -f 7`
pankso@13 119 echo '<tr>'
pankso@13 120 echo "<td><input type='hidden' name='user' />
pankso@13 121 <input type='checkbox' name='deluser' value='$login' />
pankso@13 122 <img src='$IMAGES/user.png' />$login</td>"
pankso@13 123 echo "<td>$uid:$gid</td>"
pankso@13 124 echo "<td>$name</td>"
pankso@13 125 echo "<td>$home</td>"
pankso@13 126 echo "<td>$shell</td>"
pankso@13 127 echo '</tr>'
pankso@13 128 fi
pankso@13 129 done
pankso@13 130 table_end
pankso@13 131 #`gettext "Selection:"`
pankso@13 132 cat << EOT
pankso@13 133 <div>
pankso@13 134 <input type="submit" value="`gettext "Delete selected user"`" />
pankso@13 135 </div>
pankso@13 136
pankso@13 137 </form>
pankso@13 138 </div>
pankso@13 139
pankso@13 140 <h3>`gettext "Add a user"`</h3>
pankso@13 141 <form method="get" action="$SCRIPT_NAME">
pankso@13 142 <input type="hidden" name="user" size="30" />
pankso@13 143 <p>
pankso@13 144 `gettext ""`
pankso@13 145 <input type="text" name="adduser" size="30" />
pankso@13 146 </p>
pankso@13 147 <p>
pankso@13 148 `gettext ""`
pankso@13 149 <input type="password" name="passwd" size="30" />
pankso@13 150 </p>
pankso@13 151 <input type="submit" value="`gettext ""`Create user" />
pankso@13 152 </form
pankso@13 153 EOT
pankso@13 154 ;;
pankso@2 155 network)
pankso@13 156 # Network configuration
pankso@8 157 TITLE="- Network"
pankso@8 158 xhtml_header
pankso@13 159 cat << EOT
pankso@13 160 <div id="wrapper">
pankso@13 161 <h2>`gettext "Connections`</h2>
pankso@13 162 EOT
pankso@2 163 echo '<pre>'
pankso@2 164 ifconfig
pankso@13 165 echo '</pre>'
pankso@13 166 echo '</div>' ;;
pankso@2 167 hardware)
pankso@8 168 TITLE="- Hardware"
pankso@8 169 xhtml_header
pankso@13 170 cat << EOT
pankso@13 171 <div id="wrapper">
pankso@13 172 <h2>`gettext "Drivers &amp; Devices"`</h2>
pankso@13 173 EOT
pankso@2 174 echo '<pre>'
pankso@2 175 lspci
pankso@13 176 echo '</pre>'
pankso@13 177 echo '</div>' ;;
pankso@2 178 *)
pankso@2 179 # Default xHTML content
pankso@8 180 xhtml_header
pankso@2 181 cat << EOT
pankso@13 182 <div id="wrapper">
pankso@13 183 <h2>`gettext "Host:"` `hostname`</h2>
pankso@2 184 <p>
pankso@2 185 Uptime: `uptime`
pankso@2 186 </p>
pankso@2 187 EOT
pankso@13 188 echo '</div>'
pankso@2 189 ;;
pankso@2 190 esac
pankso@2 191
pankso@2 192 # xHTML 5 footer
pankso@2 193 cat $FOOTER