Skip to content

Release 1.1.5: logo uploads are stored where they are served, and need an owner - #15

Merged
gdarko merged 2 commits into
mainfrom
fix/logo-upload
Sep 24, 2026
Merged

gdarko merged 2 commits into
mainfrom
fix/logo-upload

Conversation

@gdarko

@gdarko gdarko commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

Reported on a non-Docker 2.x install: after uploading a logo, /storage/whitelabel/admin_portal_logo/....png returned 403 and the file did not exist.

  • Where logos are stored. The controller stored them on the default disk, which InvoiceShelf sets at boot to the administrator's default File Disk. Wherever that is not the local storage/app, the file went somewhere /storage does not serve. Logos are now stored on the public disk. Reproduced by pointing the default disk elsewhere: before, the URL was a 404; after, it serves the image.
  • Who can upload. The upload route had only the api middleware and accepted any file type. It now requires auth:sanctum and company, the owner only gate, and gif, jpg or png, like InvoiceShelf's own avatar upload.

Checked on the published 2.4.5 image: uploading through the settings page shows the logo in the preview and the header. Tag v1.1.5 after merge.

Logos went to the default disk, which InvoiceShelf sets to the
administrator's default File Disk, so wherever that is not the local
storage/app the saved /storage/whitelabel/... URL pointed at nothing.
They are now stored on the public disk.

The upload route had no authentication and took any file type. It now
requires a signed-in company owner and accepts gif, jpg and png only.
@gdarko
gdarko merged commit 27583a1 into main Sep 24, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant