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