slitaz-dev-tools annotate tazwikiss/rootfs/var/www/wiki/plugins/wkp_Admin.sh @ rev 111

mirror-info: add some mirrors
author Pascal Bellard <pascal.bellard@slitaz.org>
date Thu Jun 09 20:54:44 2011 +0200 (2011-06-09)
parents a8cceb6943e9
children d2a15f85b581
rev   line source
pascal@58 1 plugin="<a href=\"?action=admin\">Administration</a>"
pascal@58 2 description_fr="Administration du Wiki"
pascal@58 3 description="Wiki administration"
pascal@58 4
pascal@58 5 admin_enable()
pascal@58 6 {
pascal@58 7 [ -n "$(POST $1)" ] || return
pascal@58 8 chmod 0 $3$2*
pascal@58 9 for i in $(POST); do
pascal@58 10 case "$i" in $2*) chmod 755 $3$i;; esac
pascal@58 11 done
pascal@58 12 }
pascal@58 13
pascal@58 14 action()
pascal@58 15 {
pascal@58 16 [ "$1" == "admin" ] || return 1
pascal@58 17 curpassword="$(POST curpassword)"
pascal@58 18 secret="admin.secret"
pascal@58 19 if [ -n "$(POST setpassword)" ]; then
pascal@58 20 if [ -z "$curpassword" ]; then # unauthorized
pascal@58 21 if [ ! -s $secret -o "$(cat $secret)" == \
pascal@58 22 "$(echo $(POST password) | md5sum)" ]; then
pascal@58 23 curpassword="$(POST password)"
pascal@58 24 fi
pascal@58 25 fi
pascal@58 26 [ -n "$curpassword" ] && echo $curpassword | md5sum > $secret
pascal@58 27 fi
pascal@58 28 if [ -n "$(POST save)" ]; then
pascal@58 29 cat <<EOT
pascal@58 30 Content-Type: application/octet-stream
pascal@58 31 Content-Length: $(stat -c %s $(POST file))
pascal@58 32 Content-Disposition: attachment; filename=$(POST file)
pascal@58 33
pascal@58 34 EOT
pascal@58 35 cat $(POST file)
pascal@58 36 exit 0
pascal@58 37 fi
pascal@111 38 [ -n "$(POST restore)" ] && mv -f $(FILE data tmpname) $(POST file)
pascal@58 39 admin_enable locales config- ./
pascal@58 40 admin_enable plugins wkp_ plugins/
pascal@58 41 CONTENT="
pascal@58 42 <table width=\"100%\">
pascal@58 43 <form method=\"post\" action=\"?action=admin\">
pascal@58 44 <tr><td><h2>$MDP</h2></td>
pascal@58 45 <td><input type=\"text\" name=\"password\" />
pascal@58 46 <input type=\"hidden\" name=\"curpassword\" value=\"$curpassword\" />
pascal@58 47 <input type=\"submit\" value=\"$DONE_BUTTON\" name=\"setpassword\" /></td></tr>
pascal@58 48 </form>"
pascal@58 49 [ -z "$curpassword" ] && return 0
pascal@58 50 CONTENT="$CONTENT
pascal@58 51 <form method=\"post\" enctype=\"multipart/form-data\" action=\"?action=admin\">
pascal@58 52 <input type=\"hidden\" name=\"curpassword\" value=\"$curpassword\" />
pascal@58 53 <tr><td><h2>Plugins</h2></td>
pascal@58 54 <td><input type=\"submit\" value=\"$DONE_BUTTON\" name=\"plugins\" /></td></tr>
pascal@58 55 "
pascal@58 56 PAGE_TITLE_link=false
pascal@58 57 editable=false
pascal@58 58 lang="${HTTP_ACCEPT_LANGUAGE%%,*}"
pascal@58 59 PAGE_TITLE="Administration"
pascal@58 60 for i in $plugins_dir/*.sh ; do
pascal@58 61 plugin=
pascal@58 62 eval $(grep ^plugin= $i)
pascal@58 63 [ -n "$plugin" ] || continue
pascal@58 64 eval $(grep ^description= $i)
pascal@58 65 alt="$(grep ^description_$lang= $i)"
pascal@58 66 [ -n "$alt" ] && eval $(echo "$alt" | sed 's/_..=/=/')
pascal@58 67 CONTENT="$CONTENT
pascal@58 68 <tr><td><b>
pascal@58 69 <input type=checkbox $([ -x $i ] && echo 'checked=checked ') name=\"$(basename $i)\" />
pascal@58 70 $plugin</b></td><td><i>$description</i></td></tr>"
pascal@58 71 done
pascal@58 72 CONTENT="$CONTENT
pascal@58 73 </form>
pascal@58 74 <form method=\"post\" enctype=\"multipart/form-data\" action=\"?action=admin\">
pascal@58 75 <input type=\"hidden\" name=\"curpassword\" value=\"$curpassword\" />
pascal@58 76 <tr><td><h2>Locales</h2></td>
pascal@58 77 <td><input type=\"submit\" value=\"$DONE_BUTTON\" name=\"locales\" /></td></tr>
pascal@58 78 "
pascal@58 79 for i in config-*.sh ; do
pascal@58 80 j=${i#config-}
pascal@58 81 j=${j%.sh}
pascal@58 82 [ -n "$j" ] || continue
pascal@58 83 CONTENT="$CONTENT
pascal@58 84 <tr><td><b>
pascal@58 85 <input type=checkbox $([ -x $i ] && echo 'checked=checked ') name=\"$i\" />
pascal@58 86 $j</b></td><td><i>$(. ./$i ; echo $WIKI_TITLE)</i></td></tr>
pascal@58 87 "
pascal@58 88 done
pascal@58 89 CONTENT="$CONTENT
pascal@58 90 </form>
pascal@111 91 <form method=\"post\" enctype=\"multipart/form-data\" action=\"?action=admin\">
pascal@58 92 <input type=\"hidden\" name=\"curpassword\" value=\"$curpassword\" />
pascal@58 93 <tr><td><h2>Configuration</h2></td><td>
pascal@58 94 <select name="file">
pascal@58 95 $(for i in template.html style.css config*.sh; do
pascal@58 96 [ -x $i ] && echo "<option>$i</option>"; done)
pascal@58 97 </select>
pascal@58 98 <input type=\"submit\" value=\"$DONE_BUTTON\" name=\"save\" />
pascal@111 99 <input type=\"file\" name=\"data\" />
pascal@58 100 <input type=\"submit\" value=\"$RESTORE\" name=\"restore\" /></td></tr>
pascal@58 101 </form>
pascal@58 102 </table>
pascal@58 103 "
pascal@58 104 }