tazpanel annotate settings.cgi @ rev 304
Added tag 1.5.5 for changeset fdfc6b494539
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Fri May 04 13:16:25 2012 +0300 (2012-05-04) |
parents | 72e9955ebdff |
children | 3e9acc16f728 |
rev | line source |
---|---|
pankso@42 | 1 #!/bin/sh |
pankso@42 | 2 # |
pankso@42 | 3 # System settings CGI interface: user, locale, keyboard, date. Since we |
paul@205 | 4 # don't have multiple pages here there is only one case used to get command |
paul@205 | 5 # values and the full content is followed directly. |
pankso@42 | 6 # |
pankso@112 | 7 # Copyright (C) 2011 SliTaz GNU/Linux - BSD License |
pankso@42 | 8 # |
pankso@42 | 9 |
pankso@42 | 10 # Common functions from libtazpanel |
pankso@42 | 11 . lib/libtazpanel |
pankso@42 | 12 get_config |
pascal@81 | 13 header |
pankso@42 | 14 |
al@292 | 15 TITLE=$(gettext 'TazPanel - Settings') |
pankso@42 | 16 |
pankso@42 | 17 # |
pankso@42 | 18 # Commands executed before page loading. |
pankso@42 | 19 # |
pankso@42 | 20 |
pascal@81 | 21 case " $(GET) " in |
pascal@115 | 22 *\ do\ *) |
paul@205 | 23 # Assume no array support in httpd_helper.sh ;^) |
pascal@115 | 24 users="" |
pascal@115 | 25 IFS="&" |
pascal@115 | 26 for i in $QUERY_STRING ; do |
pascal@115 | 27 case "$i" in |
pascal@115 | 28 user=*) users="$users ${i#user=}" ;; |
pascal@115 | 29 esac |
pascal@115 | 30 done |
pascal@115 | 31 unset IFS |
pascal@115 | 32 for cmd in "Delete user" "Lock user" "Unlock user" \ |
pascal@115 | 33 "Change password" ; do |
al@303 | 34 [ "$(GET do)" == "$(gettext "$cmd")" ] || continue # BUGGY |
pascal@115 | 35 for user in $users ; do |
pascal@115 | 36 case "$cmd" in |
pascal@115 | 37 Delete*) deluser $user ;; |
pankso@119 | 38 Lock*) passwd -l $user | log ;; |
pankso@119 | 39 Unlock*) passwd -u $user | log ;; |
pascal@252 | 40 Change*) echo "$user:$(GET password)" | chpasswd -m | log ;; |
pascal@115 | 41 esac |
pascal@115 | 42 done |
pascal@115 | 43 done ;; |
pascal@115 | 44 *\ adduser\ *) |
pankso@42 | 45 # |
pankso@42 | 46 # Manage system user accounts |
pankso@42 | 47 # |
pascal@81 | 48 user=$(GET adduser) |
pascal@115 | 49 passwd=$(GET passwd) |
pascal@81 | 50 if [ -n "$user" ]; then |
slaxemulator@233 | 51 adduser -D -s /bin/sh -g "SliTaz User" -G users -h /home/$user $user |
pascal@252 | 52 echo "$user:$passwd" | chpasswd -m | log |
slaxemulator@233 | 53 for g in audio cdrom floppy video tty |
pascal@81 | 54 do |
pascal@81 | 55 addgroup $user $g |
pascal@81 | 56 done |
pascal@81 | 57 fi ;; |
pascal@81 | 58 *\ gen_locale\ *) |
pascal@81 | 59 new_locale=$(GET gen_locale) ;; |
pascal@141 | 60 *\ gen_keymap\ *) |
pascal@141 | 61 new_keymap=$(GET gen_keymap) ;; |
pascal@142 | 62 *\ apply_xorg_kbd\ *) |
pascal@142 | 63 sed -i "s/XkbLayout.*/XkbLayout \" \"$(GET apply_xorg_kbd)\"/" \ |
pascal@142 | 64 /etc/X11/xorg.conf.d/40-Keyboard.conf ;; |
pascal@81 | 65 *\ rdate\ *) |
pankso@42 | 66 rdate -s tick.greyware.com ;; |
pascal@81 | 67 *\ hwclock\ *) |
pankso@150 | 68 hwclock -w -u ;; |
pankso@110 | 69 *\ panel_pass*) |
pankso@110 | 70 sed -i s@/:root:.*@/:root:$(GET panel_pass)@ $HTTPD_CONF ;; |
pankso@110 | 71 *\ style*) |
pankso@110 | 72 sed -i s/'^STYLE.*'/"STYLE=\"$(GET style)\""/ $CONFIG |
al@292 | 73 . $CONFIG ;; |
pankso@42 | 74 esac |
pankso@42 | 75 |
pankso@42 | 76 # |
pankso@42 | 77 # Default xHTML content |
pankso@42 | 78 # |
pankso@42 | 79 xhtml_header |
pankso@67 | 80 |
pankso@110 | 81 case " $(GET) " in |
pankso@110 | 82 *\ user*) |
pankso@110 | 83 # |
pankso@110 | 84 # Users management |
pankso@110 | 85 # |
pankso@110 | 86 cat <<EOT |
al@303 | 87 <h3 id="users">$(gettext 'Manage users')</h3> |
al@303 | 88 |
pankso@110 | 89 <form method="get" action="$SCRIPT_NAME"> |
pascal@115 | 90 <div id="actions"> |
pascal@115 | 91 <div class="float-left"> |
al@303 | 92 $(gettext 'Selection:') |
al@303 | 93 <input type="submit" name="do" value="$(gettext 'Delete user')" /> |
al@303 | 94 <input type="submit" name="do" value="$(gettext 'Lock user')" /> |
al@303 | 95 <input type="submit" name="do" value="$(gettext 'Unlock user')" /> |
pascal@115 | 96 </div> |
pascal@115 | 97 </div> |
al@303 | 98 |
al@303 | 99 <table class="zebra"> |
al@303 | 100 <thead> |
pascal@115 | 101 <tr class="thead"> |
al@303 | 102 <td>$(gettext 'Login')</td> |
al@303 | 103 <td>$(gettext 'User ID')</td> |
al@303 | 104 <td>$(gettext 'Name')</td> |
al@303 | 105 <td>$(gettext 'Home')</td> |
al@303 | 106 <td>$(gettext 'Shell')</td> |
pascal@115 | 107 </tr> |
al@303 | 108 </thead> |
al@303 | 109 </tbody> |
pascal@115 | 110 EOT |
pascal@115 | 111 for login in `cat /etc/passwd | cut -d ":" -f 1` |
pankso@110 | 112 do |
pascal@115 | 113 if [ -d /home/$login ]; then |
pascal@115 | 114 colorlogin=$login |
pascal@115 | 115 grep -qs "^$login:!" /etc/shadow && |
pascal@115 | 116 colorlogin="<span style='color: red;'>$login</span>" |
pascal@115 | 117 IFS=':' |
pascal@115 | 118 set -- $(grep "^$login:" /etc/passwd) |
pascal@115 | 119 unset IFS |
pascal@115 | 120 uid=$3 |
pascal@115 | 121 gid=$4 |
pascal@115 | 122 name="$(echo $5 | sed s/,.*//)" |
pascal@115 | 123 home="$6" |
pascal@115 | 124 shell=$7 |
pascal@115 | 125 cat <<EOT |
pascal@115 | 126 <tr> |
pascal@115 | 127 <td><input type='checkbox' name='user' value='$login' /> |
pascal@115 | 128 <img src='$IMAGES/user.png' />$colorlogin</td> |
pascal@115 | 129 <td>$uid:$gid</td> |
pascal@115 | 130 <td>$name</td> |
pascal@115 | 131 <td>$home</td> |
pascal@115 | 132 <td>$shell</td> |
pascal@115 | 133 </tr> |
pascal@115 | 134 EOT |
pankso@110 | 135 fi |
pankso@110 | 136 done |
al@303 | 137 cat << EOT |
al@303 | 138 </tbody> |
al@303 | 139 </table> |
al@303 | 140 EOT |
pankso@110 | 141 cat << EOT |
pankso@117 | 142 <p> |
al@303 | 143 $(gettext 'Password:') |
pascal@121 | 144 <input type="password" name="password" /> |
al@303 | 145 <input type="submit" name="do" value="$(gettext 'Change password')" /> |
pankso@117 | 146 </p> |
pankso@42 | 147 </form> |
pankso@42 | 148 |
al@303 | 149 <h4>$(gettext 'Add a new user')</h4> |
al@303 | 150 |
pankso@42 | 151 <form method="get" action="$SCRIPT_NAME"> |
pankso@42 | 152 <input type="hidden" name="user" /> |
al@303 | 153 <table> |
al@303 | 154 <tr><td>$(gettext 'User login:')</td> |
al@303 | 155 <td><input type="text" name="adduser" size="30" /></td></tr> |
al@303 | 156 <tr><td>$(gettext 'User password:')</td> |
al@303 | 157 <td><input type="password" name="passwd" size="30" /></td></tr> |
al@303 | 158 <tr><td colspan="2"> |
al@303 | 159 <input type="submit" value="$(gettext 'Create user')" /></td></tr> |
al@303 | 160 </table> |
pankso@42 | 161 </form> |
pascal@147 | 162 |
al@303 | 163 <h4>$(gettext 'Current user sessions')</h4> |
pascal@147 | 164 |
al@303 | 165 <pre>$(who)</pre> |
al@303 | 166 |
al@303 | 167 <h4>$(gettext 'Last user sessions')</h4> |
al@303 | 168 |
al@303 | 169 <pre>$(last)</pre> |
pankso@42 | 170 EOT |
pankso@110 | 171 ;; |
pankso@110 | 172 *) |
pankso@110 | 173 # |
pankso@110 | 174 # Defaut system settings page |
pankso@110 | 175 # |
pankso@110 | 176 cat << EOT |
pankso@110 | 177 <div id="wrapper"> |
al@303 | 178 <h2>$(gettext 'System settings')</h2> |
al@303 | 179 <p>$(gettext 'Manage system time, users or language settings')<p> |
pankso@110 | 180 </div> |
pankso@110 | 181 <div id="actions"> |
pankso@110 | 182 <a class="button" href="$SCRIPT_NAME?users"> |
al@303 | 183 <img src="$IMAGES/users.png" />$(gettext 'Manage users')</a> |
pankso@110 | 184 </div> |
pankso@42 | 185 |
al@303 | 186 <h3>$(gettext 'System time')</h3> |
al@303 | 187 |
al@303 | 188 <table> |
al@303 | 189 <tr><td>$(gettext 'Time zome:')</td><td>$(cat /etc/TZ)</td></tr> |
al@303 | 190 <tr><td>$(gettext 'System time:')</td><td>$(date)</td></tr> |
al@303 | 191 <tr><td>$(gettext 'Hardware clock:')</td><td>$(hwclock -r)</tr> |
al@303 | 192 </table> |
al@303 | 193 <a class="button" href="$SCRIPT_NAME?rdate">$(gettext 'Sync online')</a> |
al@303 | 194 <a class="button" href="$SCRIPT_NAME?hwclock">$(gettext 'Set hardware clock')</a> |
pankso@110 | 195 EOT |
pankso@110 | 196 # |
pankso@110 | 197 # Locale settings |
pankso@110 | 198 # |
pankso@110 | 199 cat << EOT |
al@303 | 200 <h3 id="locale">$(gettext 'System language')</h3> |
pankso@42 | 201 <p> |
pankso@42 | 202 EOT |
pankso@42 | 203 # Check if a new locale was requested |
pankso@42 | 204 if [ -n "$new_locale" ]; then |
pankso@42 | 205 rm -rf /usr/lib/locale/$new_locale |
pankso@42 | 206 localedef -i $new_locale -c -f UTF-8 \ |
pankso@42 | 207 /usr/lib/locale/$new_locale |
pankso@42 | 208 # System configuration |
pankso@42 | 209 echo "LANG=$new_locale" > /etc/locale.conf |
pankso@42 | 210 echo "LC_ALL=$new_locale" >> /etc/locale.conf |
al@303 | 211 eval_gettext "You must logout and login again to your current \ |
al@303 | 212 session to use \$new_locale locale." |
pankso@42 | 213 else |
al@303 | 214 gettext 'Current system locales:' |
pankso@42 | 215 locale -a |
pankso@42 | 216 fi |
pankso@42 | 217 cat << EOT |
pankso@42 | 218 </p> |
pankso@42 | 219 <form method="get" action="$SCRIPT_NAME"> |
al@303 | 220 $(gettext 'Available locales:') |
pascal@81 | 221 <select name="gen_locale"> |
al@303 | 222 <option value="en_US">en__US</options> |
pankso@110 | 223 $(list_locales) |
pankso@42 | 224 </select> |
al@303 | 225 <input type="submit" value="$(gettext 'Activate')" /> |
pankso@42 | 226 </form> |
pankso@110 | 227 |
al@303 | 228 <h3 id="keymap">$(gettext 'Console keymap')</h3> |
pascal@141 | 229 <p> |
pascal@141 | 230 EOT |
pascal@141 | 231 # Check if a new keymap was requested |
pascal@141 | 232 if [ -n "$new_keymap" ]; then |
pascal@141 | 233 echo "$new_keymap" > /etc/keymap.conf |
pascal@141 | 234 if [ -x /bin/loadkeys ]; then |
pascal@141 | 235 loadkeys $new_keymap |
pascal@141 | 236 else |
pascal@141 | 237 loadkmap < /usr/share/kmap/$new_keymap.kmap |
pascal@141 | 238 fi |
pascal@141 | 239 fi |
pascal@142 | 240 keymap=$(cat /etc/keymap.conf) |
al@303 | 241 eval_gettext 'Current console keymap: $keymap' |
pascal@142 | 242 echo "</p>" |
pascal@142 | 243 if [ -n "$keymap" ]; then |
pascal@142 | 244 case "$keymap" in |
pascal@142 | 245 fr_CH*) |
pascal@142 | 246 keymap="ch" ;; |
pascal@142 | 247 ru) |
pascal@142 | 248 keymap="us,ru(winkeys)" ;; |
pascal@142 | 249 slovene) |
pascal@142 | 250 keymap=si ;; |
pascal@142 | 251 *) |
pascal@142 | 252 keymap=${keymap%-lat*} |
pascal@142 | 253 keymap=${keymap%-abnt2} ;; |
pascal@142 | 254 esac |
pascal@142 | 255 keyboard_config=/etc/X11/xorg.conf.d/40-Keyboard.conf |
pascal@142 | 256 cat << EOT |
pascal@142 | 257 <form method="get" action="$SCRIPT_NAME"> |
al@303 | 258 $(gettext 'Suggested keymap for Xorg:') |
pascal@142 | 259 <input type="submit" name "apply_xorg_kbd" value="$keymap" /> |
pascal@142 | 260 <a class="button" href="index.cgi?file=$keyboard_config"> |
al@303 | 261 <img src="$IMAGES/edit.png" />$(gettext 'Edit')</a> |
pascal@142 | 262 </form> |
pascal@142 | 263 EOT |
pascal@142 | 264 fi |
pascal@141 | 265 cat << EOT |
pascal@141 | 266 <form method="get" action="$SCRIPT_NAME"> |
al@303 | 267 $(gettext 'Available keymaps:') |
pascal@141 | 268 <select name="gen_keymap"> |
pascal@141 | 269 $(list_keymaps) |
pascal@141 | 270 </select> |
al@303 | 271 <input type="submit" value="$(gettext 'Activate')" /> |
pascal@141 | 272 </form> |
pascal@141 | 273 |
al@303 | 274 <h2>$(gettext 'Panel configuration')</h2> |
al@303 | 275 |
pankso@110 | 276 <form method="get" action="$SCRIPT_NAME"> |
pankso@110 | 277 <p> |
al@303 | 278 $(gettext 'Style:') |
pankso@110 | 279 <select name="style"> |
pankso@110 | 280 $(list_styles) |
pankso@110 | 281 </select> |
al@303 | 282 <input type="submit" value="$(gettext 'Activate')" /> |
pankso@110 | 283 </p> |
pankso@110 | 284 </form> |
pankso@110 | 285 <form method="get" action="$SCRIPT_NAME"> |
pankso@110 | 286 <p> |
al@303 | 287 $(gettext 'Panel password:') |
pankso@110 | 288 <input type="password" name="panel_pass"/> |
al@303 | 289 <input type="submit" value="$(gettext 'Change')" /> |
pankso@110 | 290 </p> |
pankso@110 | 291 </form> |
pankso@110 | 292 <p> |
al@303 | 293 $(gettext 'Configuration files:') |
pankso@110 | 294 <a class="button" href="index.cgi?file=$CONFIG"> |
al@303 | 295 <img src="$IMAGES/edit.png" />$(gettext 'Panel')</a> |
pankso@110 | 296 <a class="button" href="index.cgi?file=$HTTPD_CONF"> |
al@303 | 297 <img src="$IMAGES/edit.png" />$(gettext 'Server')</a> |
pankso@110 | 298 </p> |
pankso@110 | 299 <p> |
al@303 | 300 $(gettext 'TazPanel provides a debuging mode and page:') |
al@303 | 301 <a href="/index.cgi?debug">debug</a> |
pankso@110 | 302 </p> |
pankso@42 | 303 EOT |
pankso@110 | 304 ;; |
pankso@110 | 305 esac |
pankso@42 | 306 |
pankso@42 | 307 xhtml_footer |
pankso@42 | 308 exit 0 |