tazpanel annotate settings.cgi @ rev 110

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