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