slitaz-dev-tools annotate tazwikiss/rootfs/var/www/wiki/plugins/wkp_Password.sh @ rev 310
makegraphs: tune cpuinfo
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Fri Jan 15 08:08:28 2021 +0000 (2021-01-15) |
parents | ebf281be15d0 |
children |
rev | line source |
---|---|
pascal@114 | 1 plugin="Password" |
pascal@114 | 2 description_fr="Ajoute un mot de passe à une page avec {PASSWORD=code}" |
pascal@114 | 3 description="Add a password to a page with {PASSWORD=something}" |
pascal@114 | 4 |
pascal@114 | 5 pagepass_hash() |
pascal@114 | 6 { |
pascal@114 | 7 echo $1 | md5sum | cut -c1-8 |
pascal@114 | 8 } |
pascal@114 | 9 |
pascal@116 | 10 init() |
pascal@116 | 11 { |
pascal@116 | 12 if grep -qs '{HASHPASSWORD=' $1; then |
pascal@116 | 13 case "$(GET action)" in |
pascal@116 | 14 pagepass|'') return ;; |
pascal@116 | 15 esac |
pascal@116 | 16 hash="$(sed '/{HASHPASSWORD=.*}/!d;s/.*{HASHPASSWORD=\([^}]*\)}.*/\1/;q' <$1)" |
pascal@116 | 17 cookie="pagepass$(pagepass_hash $PWD$PAGE_txt)" |
pascal@309 | 18 [ "$(COOKIE $cookie)" = "$hash" ] && return |
pascal@116 | 19 header |
pascal@116 | 20 echo "<script> history.go(-1); </script>" |
pascal@116 | 21 exit 0 |
pascal@116 | 22 fi |
pascal@116 | 23 } |
pascal@116 | 24 |
pascal@114 | 25 action() |
pascal@114 | 26 { |
pascal@309 | 27 [ "$1" = "pagepass" ] || return 1 |
pascal@114 | 28 uri="$SCRIPT_NAME?page=$(POST page)&auth=$(POST auth)" |
pascal@309 | 29 if [ "$(pagepass_hash $(POST pass))" = "$(POST hash)" ]; then |
pascal@114 | 30 header "HTTP/1.0 302 Found" \ |
pascal@114 | 31 "location: $uri" \ |
pascal@114 | 32 "Set-Cookie: $(POST cookie)=$(POST hash)" |
pascal@114 | 33 ## "Set-Cookie: $(POST cookie)=$(POST hash); Max-Age=3600; Path=$(dirname $SCRIPT_NAME); HttpOnly" |
pascal@114 | 34 else |
pascal@114 | 35 header "HTTP/1.0 302 Found" \ |
pascal@114 | 36 "location: $uri&error=1" |
pascal@114 | 37 fi |
pascal@114 | 38 exit 0 |
pascal@114 | 39 } |
pascal@114 | 40 |
pascal@114 | 41 formatBegin() |
pascal@114 | 42 { |
pascal@114 | 43 hash="$(sed '/{HASHPASSWORD=.*}/!d;s/.*{HASHPASSWORD=\([^}]*\)}.*/\1/;q' <<EOT |
pascal@114 | 44 $CONTENT |
pascal@114 | 45 EOT |
pascal@114 | 46 )" |
pascal@114 | 47 cookie="pagepass$(pagepass_hash $PWD$PAGE_txt)" |
pascal@114 | 48 if [ "$(COOKIE $cookie)" != "$hash" ]; then |
pascal@114 | 49 editable=false |
pascal@114 | 50 CONTENT="<form method=\"post\" action=\"?action=pagepass\"> |
pascal@114 | 51 <input type=\"hidden\" name=\"page\" value=\"$(GET page)\" /> \ |
pascal@114 | 52 <input type=\"hidden\" name=\"auth\" value=\"$(GET auth)\" /> \ |
pascal@114 | 53 <input type=\"hidden\" name=\"hash\" value=\"$hash\" /> \ |
pascal@114 | 54 <input type=\"hidden\" name=\"cookie\" value=\"$cookie\" /> \ |
pascal@114 | 55 $MDP <input type=\"text\" name=\"pass\" /> \ |
pascal@114 | 56 <input type=\"submit\" value=\"$DONE_BUTTON\" /> |
pascal@114 | 57 </form>" |
pascal@114 | 58 else |
pascal@114 | 59 CONTENT="$(sed 's/{HASHPASSWORD=[^}]*}//' <<EOT |
pascal@114 | 60 $CONTENT |
pascal@114 | 61 EOT |
pascal@114 | 62 )" |
pascal@114 | 63 fi |
pascal@114 | 64 } |
pascal@114 | 65 |
pascal@114 | 66 pagepass_sedexpr() |
pascal@114 | 67 { |
pascal@114 | 68 sed '/{PASSWORD=.*}/!d;s/.*{PASSWORD=\([^}]*\)}.*/\1/' $1 | \ |
pascal@114 | 69 while read pass; do |
pascal@114 | 70 echo -n "-e 's|{PASSWORD=$pass|{HASHPASSWORD=$(pagepass_hash $pass)|' " |
pascal@114 | 71 done |
pascal@114 | 72 echo -n "-e 's|{PASSWORD=}||' " |
pascal@114 | 73 } |
pascal@114 | 74 |
pascal@114 | 75 writedPage() |
pascal@114 | 76 { |
pascal@223 | 77 eval sed -i $(pagepass_sedexpr $1) $1 $BACKUP_DIR$PAGE_TITLE/\*.bak |
pascal@114 | 78 } |