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