tazpanel view settings.cgi @ rev 49

Update all page with latest functions such as debug, bunch of fixes and adding support for deamons
author Christophe Lincoln <pankso@slitaz.org>
date Sat Apr 09 00:22:23 2011 +0200 (2011-04-09)
parents a7b1d69663c3
children 730f8bcacabc
line source
1 #!/bin/sh
2 #
3 # System settings CGI interface: user, locale, keyboard, date. Since we
4 # dont have multiple page here there is only one case used to get commands
5 # values and the full content is following directly.
6 #
7 # Copyright (C) 2011 SliTaz GNU/Linux - GNU gpl v3
8 #
9 echo "Content-Type: text/html"
10 echo ""
12 # Common functions from libtazpanel
13 . lib/libtazpanel
14 get_config
16 # Include gettext helper script.
17 . /usr/bin/gettext.sh
19 # Export package name for gettext.
20 TEXTDOMAIN='tazpanel'
21 export TEXTDOMAIN
23 TITLE="- Settings"
25 # Get the list of system locales
26 list_locales() {
27 cd /usr/share/i18n/locales
28 for locale in `ls -1 [a-z][a-z]_[A-Z][A-Z]`
29 do
30 echo "<option value='$locale'>$locale</option>"
31 done
32 }
34 #
35 # Commands executed before page loading.
36 #
38 case "$QUERY_STRING" in
39 users|user=*)
40 #
41 # Manage system user accounts
42 #
43 cmdline=`echo ${QUERY_STRING#user*=} | sed s'/&/ /g'`
44 # Parse cmdline
45 for opt in $cmdline
46 do
47 case $opt in
48 adduser=*)
49 user=${opt#adduser=}
50 cmd=adduser ;;
51 deluser=*)
52 user=${opt#deluser=}
53 deluser $user ;;
54 passwd=*)
55 pass=${opt#passwd=} ;;
56 esac
57 done
58 case "$cmd" in
59 adduser)
60 adduser -D $user
61 echo "$pass" | chpasswd
62 for g in audio cdrom floppy video
63 do
64 addgroup $user $g
65 done ;;
66 *) continue ;;
67 esac ;;
68 gen-locale=*)
69 new_locale=${QUERY_STRING#gen-locale=} ;;
70 rdate)
71 rdate -s tick.greyware.com ;;
72 hwclock)
73 hwclock -w ;;
74 *)
75 continue ;;
76 esac
78 #
79 # Default xHTML content
80 #
81 xhtml_header
82 debug_info
83 cat << EOT
84 <div id="wrapper">
85 <h2>`gettext "System settings"`</h2>
86 <p>`gettext "Manage system time, users or language settings"`<p>
87 </div>
89 <pre>
90 `gettext "Time zome :"` `cat /etc/TZ`
91 `gettext "System time :"` `date`
92 `gettext "Hardware clock :"` `hwclock -r`
93 </pre>
94 <a class="button" href="$SCRIPT_NAME?rdate">`gettext "Sync online"`</a>
95 <a class="button" href="$SCRIPT_NAME?hwclock">`gettext "Set harware clock"`</a>
96 EOT
97 #
98 # Users management
99 #
101 cat <<EOT
102 <h3>`gettext "Users"`</h3>
103 <form method="get" action="$SCRIPT_NAME">
104 EOT
105 table_start
106 cat << EOT
107 <tr class="thead">
108 <td>`gettext "Login"`</td>
109 <td>`gettext "User ID"`</td>
110 <td>`gettext "Name"`</td>
111 <td>`gettext "Home"`</td>
112 <td>`gettext "SHell"`</td>
113 </tr>
114 EOT
115 for i in `cat /etc/passwd | cut -d ":" -f 1`
116 do
117 if [ -d /home/$i ]; then
118 login=$i
119 uid=`cat /etc/passwd | grep $i | cut -d ":" -f 3`
120 gid=`cat /etc/passwd | grep $i | cut -d ":" -f 4`
121 name=`cat /etc/passwd | grep $i | cut -d ":" -f 5 | \
122 sed s/,,,//`
123 home=`cat /etc/passwd | grep $i | cut -d ":" -f 6`
124 shell=`cat /etc/passwd | grep $i | cut -d ":" -f 7`
125 echo '<tr>'
126 echo "<td><input type='hidden' name='user' />
127 <input type='checkbox' name='deluser' value='$login' />
128 <img src='$IMAGES/user.png' />$login</td>"
129 echo "<td>$uid:$gid</td>"
130 echo "<td>$name</td>"
131 echo "<td>$home</td>"
132 echo "<td>$shell</td>"
133 echo '</tr>'
134 fi
135 done
136 table_end
137 cat << EOT
138 <div>
139 <input type="submit" value="`gettext "Delete selected user"`" />
140 </div>
141 </form>
143 <h4>`gettext "Add a new user"`</h4>
144 <form method="get" action="$SCRIPT_NAME">
145 <input type="hidden" name="user" />
146 <p>`gettext "User login:"`</p>
147 <p><input type="text" name="adduser" size="30" /></p>
148 <p>`gettext "User password:"`</p>
149 <p><input type="password" name="passwd" size="30" /></p>
150 <input type="submit" value="`gettext "Create user"`" />
151 </form>
152 EOT
154 #
155 # Locale settings
156 #
157 cat << EOT
158 <a name="locale"></a>
159 <h3>`gettext "System language"`</h3>
160 <p>
161 EOT
162 # Check if a new locale was requested
163 if [ -n "$new_locale" ]; then
164 rm -rf /usr/lib/locale/$new_locale
165 localedef -i $new_locale -c -f UTF-8 \
166 /usr/lib/locale/$new_locale
167 # System configuration
168 echo "LANG=$new_locale" > /etc/locale.conf
169 echo "LC_ALL=$new_locale" >> /etc/locale.conf
170 eval_gettext "You must logout and login again your current
171 session to use \$new_locale locale."
172 else
173 eval_gettext "Current system locales: "
174 locale -a
175 fi
176 cat << EOT
177 </p>
178 <form method="get" action="$SCRIPT_NAME">
179 `gettext "Avalaible locales:"`
180 <select name="gen-locale">
181 <option value="en_US">en_US</options>
182 `list_locales`
183 </select>
184 <input type="submit" value="`gettext "Generated and use"`" />
185 </form>
186 EOT
188 xhtml_footer
189 exit 0