tazpanel view settings.cgi @ rev 42

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