From 9eaa9904e0d2ae8e5a9c966e83e90ea35a5e5c8f Mon Sep 17 00:00:00 2001 From: ed Date: Fri, 21 Jul 2023 00:36:37 +0000 Subject: [PATCH] v1.8.6 --- copyparty/__version__.py | 4 ++-- copyparty/httpcli.py | 2 +- docs/changelog.md | 35 +++++++++++++++++++++++++++++++++++ scripts/make-sfx.sh | 4 ++-- scripts/uncomment.py | 5 +++++ 5 files changed, 45 insertions(+), 5 deletions(-) diff --git a/copyparty/__version__.py b/copyparty/__version__.py index 6345518a..3896541b 100644 --- a/copyparty/__version__.py +++ b/copyparty/__version__.py @@ -1,8 +1,8 @@ # coding: utf-8 -VERSION = (1, 8, 4) +VERSION = (1, 8, 6) CODENAME = "argon" -BUILD_DT = (2023, 7, 18) +BUILD_DT = (2023, 7, 21) S_VERSION = ".".join(map(str, VERSION)) S_BUILD_DT = "{0:04d}-{1:02d}-{2:02d}".format(*BUILD_DT) diff --git a/copyparty/httpcli.py b/copyparty/httpcli.py index bcbe5197..97c04bbd 100644 --- a/copyparty/httpcli.py +++ b/copyparty/httpcli.py @@ -439,7 +439,7 @@ class HttpCli(object): self.can_upget, self.can_admin, ) = ( - avn.can_access("", self.uname) if avn else [False] * 6 + avn.can_access("", self.uname) if avn else [False] * 7 ) self.avn = avn self.vn = vn diff --git a/docs/changelog.md b/docs/changelog.md index 503f8272..a0ac551f 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,3 +1,38 @@ +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2023-0718-0746 `v1.8.4` range-select v2 + +**IMPORTANT:** `v1.8.2` (previous release) fixed [CVE-2023-37474](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-37474) ; please see the [1.8.2 release notes](https://github.com/9001/copyparty/releases/tag/v1.8.2) (all serverlogs reviewed so far showed no signs of exploitation) + +* read-only demo server at https://a.ocv.me/pub/demo/ +* [docker image](https://github.com/9001/copyparty/tree/hovudstraum/scripts/docker) ╱ [similar software](https://github.com/9001/copyparty/blob/hovudstraum/docs/versus.md) ╱ [client testbed](https://cd.ocv.me/b/) + +## new features +* #47 file selection by shift-clicking + * in list-view: click a table row to select it, then shift-click another to select all files in-between + * in grid-view: either enable the `multiselect` button (mainly for phones/tablets), or the new `sel` button in the `[⚙️] settings` tab (better for mouse+keyboard), then shift-click two files +* volflag `fat32` avoids a bug in android's sdcardfs causing excessive reindexing on startup if any files were modified on the sdcard since last reboot + +## bugfixes +* minor corrections to the new features from #45 + * uploader IPs are now visible for `a`dmin accounts in `d2t` volumes as well + +## other changes +* the admin-panel is only accessible for accounts which have the `a` (admin) permission-level in one or more volumes; so instead of giving your user `rwmd` access, you'll want `rwmda` instead: + ```bash + python3 copyparty-sfx.py -a joe:hunter2 -v /mnt/nas/pub:pub:rwmda,joe + ``` + or in a settings file, + ```yaml + [/pub] + /mnt/nas/pub + accs: + rwmda: joe + ``` + * until now, `rw` was enough, however most readwrite users don't need access to those features + * grabbing a stacktrace with `?stack` is permitted for both `rw` and `a` + + + ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ # 2023-0714-1558 `v1.8.2` URGENT: fix path traversal vulnerability diff --git a/scripts/make-sfx.sh b/scripts/make-sfx.sh index f4e6c111..cf03491d 100755 --- a/scripts/make-sfx.sh +++ b/scripts/make-sfx.sh @@ -392,9 +392,9 @@ find -name '*.pyc' -delete find -name __pycache__ -delete find -name py.typed -delete -# especially prevent osx from leaking your lan ip (wtf apple) +# especially prevent macos/osx from leaking your lan ip (wtf apple) find -type f \( -name .DS_Store -or -name ._.DS_Store \) -delete -find -type f -name ._\* | while IFS= read -r f; do cmp <(printf '\x00\x05\x16') <(head -c 3 -- "$f") && rm -f -- "$f"; done +find -type f -name ._\* | while IFS= read -r f; do cmp <(printf '\x00\x05\x16') <(head -c 3 -- "$f") && rm -fv -- "$f"; done rm -f copyparty/web/deps/*.full.* copyparty/web/dbg-* copyparty/web/Makefile diff --git a/scripts/uncomment.py b/scripts/uncomment.py index ad2aae80..7b7e8cdc 100644 --- a/scripts/uncomment.py +++ b/scripts/uncomment.py @@ -69,8 +69,13 @@ def uncomment(fpath): def main(): print("uncommenting", end="", flush=True) try: + if sys.argv[1] == "1": + sys.argv.remove("1") + raise Exception("disabled") + import multiprocessing as mp + mp.set_start_method("spawn", True) with mp.Pool(os.cpu_count()) as pool: pool.map(uncomment, sys.argv[1:]) except Exception as ex: