tazpanel view settings.cgi @ rev 112

Add some doc/help, use a BSD License and add COPYING file
author Christophe Lincoln <pankso@slitaz.org>
date Fri Apr 15 11:32:56 2011 +0200 (2011-04-15)
parents dbdfa16dfdf2
children 34979c5e823b
line source
1 #!/bin/sh
2 #
3 # System settings CGI interface: user, locale, keyboard, date. Since we
4 # dont have multiple pages here there is only one case used to get command
5 # values and the full content is following directly.
6 #
7 # Copyright (C) 2011 SliTaz GNU/Linux - BSD License
8 #
10 # Common functions from libtazpanel
11 . lib/libtazpanel
12 get_config
13 header
15 TITLE="- Settings"
17 # Get the list of system locales
18 list_locales() {
19 cd /usr/share/i18n/locales
20 for locale in `ls -1 [a-z][a-z]_[A-Z][A-Z]`
21 do
22 echo "<option value='$locale'>$locale</option>"
23 done
24 }
26 # Get the list of panle styles
27 list_styles() {
28 cd $PANEL/styles
29 for style in *
30 do
31 echo "<option value='$style'>$style</option>"
32 done
33 }
35 #
36 # Commands executed before page loading.
37 #
39 case " $(GET) " in
40 *\ user*)
41 #
42 # Manage system user accounts
43 #
44 if [ "$(GET deluser)" ]; then
45 deluser $(GET deluser)
46 fi
47 user=$(GET adduser)
48 if [ -n "$user" ]; then
49 adduser -D $user
50 echo "$(GET passwd)" | chpasswd
51 for g in audio cdrom floppy video
52 do
53 addgroup $user $g
54 done
55 fi ;;
56 *\ gen_locale\ *)
57 new_locale=$(GET gen_locale) ;;
58 *\ rdate\ *)
59 rdate -s tick.greyware.com ;;
60 *\ hwclock\ *)
61 hwclock -w ;;
62 *\ panel_pass*)
63 sed -i s@/:root:.*@/:root:$(GET panel_pass)@ $HTTPD_CONF ;;
64 *\ style*)
65 sed -i s/'^STYLE.*'/"STYLE=\"$(GET style)\""/ $CONFIG
66 . $CONFIG ;;
67 esac
69 #
70 # Default xHTML content
71 #
72 xhtml_header
74 case " $(GET) " in
75 *\ user*)
76 #
77 # Users management
78 #
79 cat <<EOT
80 <h3>`gettext "Manage users"`</h3>
81 <form method="get" action="$SCRIPT_NAME">
82 $(table_start)
83 <thead>
84 <tr>
85 <td>`gettext "Login"`</td>
86 <td>`gettext "User ID"`</td>
87 <td>`gettext "Name"`</td>
88 <td>`gettext "Home"`</td>
89 <td>`gettext "SHell"`</td>
90 </tr>
91 </thead>
92 EOT
93 for i in `cat /etc/passwd | cut -d ":" -f 1`
94 do
95 if [ -d /home/$i ]; then
96 login=$i
97 uid=`cat /etc/passwd | grep $i | cut -d ":" -f 3`
98 gid=`cat /etc/passwd | grep $i | cut -d ":" -f 4`
99 name=`cat /etc/passwd | grep $i | cut -d ":" -f 5 | \
100 sed s/,,,//`
101 home=`cat /etc/passwd | grep $i | cut -d ":" -f 6`
102 shell=`cat /etc/passwd | grep $i | cut -d ":" -f 7`
103 echo '<tr>'
104 echo "<td><input type='hidden' name='user' />
105 <input type='checkbox' name='deluser' value='$login' />
106 <img src='$IMAGES/user.png' />$login</td>"
107 echo "<td>$uid:$gid</td>"
108 echo "<td>$name</td>"
109 echo "<td>$home</td>"
110 echo "<td>$shell</td>"
111 echo '</tr>'
112 fi
113 done
114 table_end
115 cat << EOT
116 <div>
117 <input type="submit" value="`gettext "Delete selected user"`" />
118 </div>
119 </form>
121 <h4>`gettext "Add a new user"`</h4>
122 <form method="get" action="$SCRIPT_NAME">
123 <input type="hidden" name="user" />
124 <p>`gettext "User login:"`</p>
125 <p><input type="text" name="adduser" size="30" /></p>
126 <p>`gettext "User password:"`</p>
127 <p><input type="password" name="passwd" size="30" /></p>
128 <input type="submit" value="`gettext "Create user"`" />
129 </form>
130 EOT
131 ;;
132 *)
133 #
134 # Defaut system settings page
135 #
136 cat << EOT
137 <div id="wrapper">
138 <h2>$(gettext "System settings")</h2>
139 <p>$(gettext "Manage system time, users or language settings")<p>
140 </div>
141 <div id="actions">
142 <a class="button" href="$SCRIPT_NAME?users">
143 <img src="$IMAGES/users.png" />$(gettext "Manage users")</a>
144 </div>
146 <h3>`gettext "System time"`</h3>
147 <pre>
148 `gettext "Time zome :"` `cat /etc/TZ`
149 `gettext "System time :"` `date`
150 `gettext "Hardware clock :"` `hwclock -r`
151 </pre>
152 <a class="button" href="$SCRIPT_NAME?rdate">`gettext "Sync online"`</a>
153 <a class="button" href="$SCRIPT_NAME?hwclock">`gettext "Set hardware clock"`</a>
154 EOT
155 #
156 # Locale settings
157 #
158 cat << EOT
159 <a name="locale"></a>
160 <h3>`gettext "System language"`</h3>
161 <p>
162 EOT
163 # Check if a new locale was requested
164 if [ -n "$new_locale" ]; then
165 rm -rf /usr/lib/locale/$new_locale
166 localedef -i $new_locale -c -f UTF-8 \
167 /usr/lib/locale/$new_locale
168 # System configuration
169 echo "LANG=$new_locale" > /etc/locale.conf
170 echo "LC_ALL=$new_locale" >> /etc/locale.conf
171 eval_gettext "You must logout and login again to your current
172 session to use \$new_locale locale."
173 else
174 gettext "Current system locales: "
175 locale -a
176 fi
177 cat << EOT
178 </p>
179 <form method="get" action="$SCRIPT_NAME">
180 $(gettext "Available locales:")
181 <select name="gen_locale">
182 <option value="en_US">en_US</options>
183 $(list_locales)
184 </select>
185 <input type="submit" value="$(gettext "Activate")" />
186 </form>
188 <h3>$(gettext "Panel configuration")</h3>
189 <form method="get" action="$SCRIPT_NAME">
190 <p>
191 $(gettext "Style:")
192 <select name="style">
193 $(list_styles)
194 </select>
195 <input type="submit" value="$(gettext "Activate")" />
196 </p>
197 </form>
198 <form method="get" action="$SCRIPT_NAME">
199 <p>
200 $(gettext "Panel password:")
201 <input type="password" name="panel_pass"/>
202 <input type="submit" value="$(gettext "Change")" />
203 </p>
204 </form>
205 <p>
206 $(gettext "Configuration files: ")
207 <a class="button" href="index.cgi?file=$CONFIG">
208 <img src="$IMAGES/edit.png" />$(gettext "Panel")</a>
209 <a class="button" href="index.cgi?file=$HTTPD_CONF">
210 <img src="$IMAGES/edit.png" />$(gettext "Server")</a>
211 </p>
212 <p>
213 $(gettext "TazPanel provides a debuging mode and page:")
214 <a href='/index.cgi?debug'>debug</a>
215 </p>
216 EOT
217 ;;
218 esac
220 xhtml_footer
221 exit 0