wok-tiny annotate wiki/stuff/var/www/wiki/plugins/wkp_Admin.sh @ rev 142

Remove ashism ==
author Pascal Bellard <pascal.bellard@slitaz.org>
date Wed Feb 27 17:43:23 2019 +0100 (2019-02-27)
parents 48d2c4c7a227
children
rev   line source
pascal@100 1 plugin="<a href=\"?action=admin\" title=\"Wiki administration\">Administration</a>"
pascal@100 2 description_fr="Administration du Wiki"
pascal@100 3 description="Wiki administration"
pascal@100 4
pascal@100 5 admin_enable()
pascal@100 6 {
pascal@100 7 [ -n "$(POST $1)" ] || return
pascal@100 8 chmod 444 $4/$2*
pascal@100 9 for i in $(POST); do
pascal@100 10 case "$i" in $3*) chmod 755 $4/${i/$3/$2}.* ;; esac
pascal@100 11 done
pascal@100 12 }
pascal@100 13
pascal@100 14 admin_download()
pascal@100 15 {
pascal@100 16 cat - $1 <<EOT
pascal@100 17 Content-Type: application/octet-stream
pascal@100 18 Content-Length: $(stat -c %s $1)
pascal@100 19 Content-Disposition: attachment; filename=${2:-$1}
pascal@100 20
pascal@100 21 EOT
pascal@100 22 }
pascal@100 23
pascal@100 24 action()
pascal@100 25 {
pascal@100 26 case "$1" in
pascal@100 27 list|config|admin);;
pascal@100 28 backup) file=$(FILE file tmpname)
pascal@100 29 if [ -z "$file" ]; then
pascal@100 30 file=$(mktemp -p /tmp)
pascal@100 31 find */ | cpio -o -H newc | gzip -9 > $file
pascal@100 32 admin_download $file wiki-$(date '+%Y%m%d%H%M').cpio.gz
pascal@100 33 rm -f $file
pascal@100 34 exit 0
pascal@100 35 else
pascal@100 36 zcat $file | cpio -idmu $(echo */ | sed 's|/||g')
pascal@100 37 rm -rf $(dirname $file)
pascal@100 38 return 1
pascal@100 39 fi ;;
pascal@100 40 *) return 1 ;;
pascal@100 41 esac
pascal@100 42 PAGE_TITLE_link=false
pascal@100 43 editable=false
pascal@100 44 lang="${HTTP_ACCEPT_LANGUAGE%%[,;_-]*}"
pascal@100 45 PAGE_TITLE="Administration"
pascal@100 46 curpass="$(POST curpass)"
pascal@100 47 secret="admin.secret"
pascal@100 48 if [ -n "$(POST setpass)" ]; then
pascal@100 49 if [ -z "$curpass" ]; then # unauthorized
pascal@142 50 if [ ! -s $secret -o "$(cat $secret 2> /dev/null)" = \
pascal@100 51 "$(echo $(POST password) | md5sum)" ]; then
pascal@100 52 curpass="$(POST password)"
pascal@100 53 fi
pascal@100 54 fi
pascal@100 55 [ -n "$curpass" ] && echo $curpass | md5sum > $secret &&
pascal@100 56 chmod 400 $secret
pascal@100 57 fi
pascal@100 58 if [ -n "$(POST save)" ]; then
pascal@100 59 admin_download $(POST file)
pascal@100 60 exit 0
pascal@100 61 fi
pascal@100 62 [ -n "$(POST restore)" ] && mv -f $(FILE data tmpname) $(POST file)
pascal@100 63 admin_enable Locales config- config_ .
pascal@100 64 admin_enable Plugins wkp_ wkp_ plugins
pascal@100 65 admin_enable Pages '' page pages
pascal@100 66 disabled="disabled=disabled"
pascal@100 67 [ -n "$curpass" ] && disabled="" &&
pascal@100 68 curpass="<input type=\"hidden\" name=\"curpass\" value=\"$curpass\" />
pascal@100 69 "
pascal@100 70 hr="$curpass<tr><td colspan=2><hr /></td><tr />"
pascal@100 71 CONTENT="
pascal@100 72 <table width=\"100%\">
pascal@100 73 <form method=\"post\" action=\"?action=admin\">
pascal@100 74 <tr><td><h2>$MDP</h2></td>
pascal@100 75 <td><input type=\"text\" name=\"password\" />$curpass
pascal@100 76 <input type=\"submit\" value=\"$DONE_BUTTON\" name=\"setpass\" /></td></tr>
pascal@100 77 </form>
pascal@100 78 "
pascal@100 79 mform="form method=\"post\" enctype=\"multipart/form-data\" action=\"?action"
pascal@100 80 while read section files test; do
pascal@100 81 CONTENT="$CONTENT
pascal@100 82 <$mform=admin\">
pascal@100 83 $hr
pascal@100 84 <tr><td><h2>$section</h2></td>
pascal@100 85 <td><input type=\"submit\" $disabled value=\"$DONE_BUTTON\" name=\"$section\" /></td></tr>
pascal@100 86 "
pascal@100 87 for i in $files ; do
pascal@100 88 case "$section" in
pascal@100 89 Plugins)
pascal@100 90 plugin=
pascal@100 91 eval $(grep ^plugin= $i)
pascal@100 92 [ -n "$plugin" ] || continue
pascal@100 93 eval $(grep ^description= $i)
pascal@100 94 alt="$(grep ^description_$lang= $i)"
pascal@100 95 [ -n "$alt" ] && eval $(echo "$alt" | sed 's/_..=/=/')
pascal@100 96 help=
pascal@100 97 eval $(grep ^help= $i)
pascal@100 98 alt="$(grep ^help_$lang= $i)"
pascal@100 99 [ -n "$alt" ] && eval $(echo "$alt" | sed 's/_..=/=/')
pascal@100 100 name="$(basename $i .sh)"
pascal@100 101 [ -n "$help" ] && description=" <a href='?page=$help' title='$plugin help page'>$description</a>"
pascal@100 102 ;;
pascal@100 103 Locales)
pascal@100 104 j=${i#config-}
pascal@100 105 j=${j%.sh}
pascal@100 106 [ -n "$j" ] || continue
pascal@100 107 name="config_$j"
pascal@100 108 plugin="$j"
pascal@100 109 description="$(. ./$i ; echo $WIKI_TITLE)"
pascal@100 110 ;;
pascal@100 111 Pages)
pascal@100 112 j="$(basename $i .txt)"
pascal@100 113 plugin="<a href=\"?page=$j\">$j</a>"
pascal@100 114 name="page$j"
pascal@100 115 description="$([ -w $i ] || echo -n $PROTECTED_BUTTON)"
pascal@100 116 ;;
pascal@100 117 esac
pascal@100 118 CONTENT="$CONTENT
pascal@100 119 <tr><td><b>
pascal@100 120 <input type=checkbox $disabled $([ $test $i ] && echo 'checked=checked ') name=\"$name\" />
pascal@100 121 $plugin</b></td><td><i>$description</i></td></tr>"
pascal@100 122 done
pascal@100 123 CONTENT="$CONTENT</form>"
pascal@100 124 done <<EOT
pascal@100 125 Plugins $plugins_dir/*.sh -x
pascal@100 126 Locales config-*.sh -x
pascal@100 127 Pages pages/*.txt -w
pascal@100 128 EOT
pascal@100 129 CONTENT="$CONTENT
pascal@100 130 <$mform=admin\">
pascal@100 131 $hr
pascal@100 132 <tr><td><h2>Configuration</h2></td>
pascal@100 133 <td><select name="file" $disabled>
pascal@100 134 $(for i in template.html style.css config*.sh; do
pascal@100 135 [ -x $i ] && echo "<option>$i</option>"; done)
pascal@100 136 </select>
pascal@100 137 <input type=\"submit\" $disabled value=\"$DONE_BUTTON\" name=\"save\" />
pascal@100 138 <input type=\"file\" $disabled name=\"data\" />
pascal@100 139 <input type=\"submit\" $disabled value=\"$RESTORE\" name=\"restore\" /></td></tr>
pascal@100 140 </form>
pascal@100 141 <$mform=backup\">
pascal@100 142 $hr
pascal@100 143 <tr><td><h2>Data</h2></td>
pascal@100 144 <td><input type=\"submit\" $disabled name=\"save\" value=\"$DONE_BUTTON\" />
pascal@100 145 <input type=\"file\" $disabled name=\"file\" value=\"file\" />
pascal@100 146 <input type=\"submit\" $disabled name=\"restore\" value=\"$RESTORE\" />
pascal@100 147 </td></tr>
pascal@100 148 $(du -hs */ | sed 's|\(.*\)\t\(.*\)|<tr><td><b>\1</b></td><td><i>\2</i></td></tr>|')
pascal@100 149 </form>
pascal@100 150 </table>
pascal@100 151 "
pascal@100 152 }