Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/content/docs/index.mdoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ description: Learn what FOSSBilling is, where to start, and how to get involved
tableOfContents: false
banner:
content: |
<strong>0.8.3 is here!</strong> Check out the
<a href="https://github.com/FOSSBilling/FOSSBilling/releases/tag/0.8.3">release notes</a>
<strong>0.8.4 is here!</strong> Check out the
<a href="https://github.com/FOSSBilling/FOSSBilling/releases/tag/0.8.4">release notes</a>
and the <a href="/maintenance/updating/0-7-to-0-8/">0.7 → 0.8 upgrade guide</a> for details.
---

Expand Down
10 changes: 10 additions & 0 deletions src/content/docs/maintenance/Updating/0-7-to-0-8.mdoc
Original file line number Diff line number Diff line change
Expand Up @@ -504,6 +504,16 @@ Cron jobs now carry an `is_cron` flag, and the system no longer falls back to an
Custom modules that relied on admin-level permission fallback during cron runs (e.g. for subscription renewals, deposit payments) need review. Use the `is_cron` flag to determine context and ensure your module works with the correct identity during cron.
{% /aside %}

## Admin Permissions Group Rework (0.8.4)

Admin permissions have moved from per-user to a Doctrine-backed group model. Staff members can belong to multiple groups; permissions are set at the group level.

{% aside type="caution" %}
Custom modules or themes that check permissions directly via `$staff->hasPermission(...)` or inspect the `role`/`permissions` fields on the staff entity may need updating. The `manage_settings` permission is now enforced on extension configuration pages.
{% /aside %}

Existing staff group assignments are migrated automatically, with legacy non-admin staff from the old default group assigned to the **Migrated staff** group. For untouched legacy groups, `manage_settings` is backfilled on selected core modules where access was already granted to preserve prior behavior. After updating, review staff group assignments and permissions in the admin panel. Use the `has_permission` Twig function for template checks; in PHP, use the staff service's group-aware methods instead of reading the `permissions` field directly.

## Deprecations & Removals (Summary)

| Component | Status | Notes |
Expand Down
17 changes: 17 additions & 0 deletions src/content/docs/maintenance/changelog.mdoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,23 @@ FOSSBilling publishes release notes and tagged versions on GitHub. Use the links

For the latest changes, start with the [most recent release](https://github.com/FOSSBilling/FOSSBilling/releases/latest).

### Version 0.8.4

| Area | Summary |
|------|---------|
| **Breaking: Admin Permissions** | Admin permissions reworked from per-user to a group-based model. Existing staff are auto-migrated to temporary groups on upgrade. Custom modules/themes checking permissions directly may need updating. |
| **Security** | Server manager credentials masked in API/admin UI; `manage_settings` permission enforced on extension config pages; Stripe webhooks require signing secret; server manager input hardened |
| **Stripe** | Recurring subscriptions via Setup Intents and webhooks; invoice paid webhook and currency normalization |
| **Client Profiles** | Per-user timezone support; country code selector and number formatter; custom client fields sorted and cap raised to 20; custom client IDs exposed in API |
| **Knowledge Base** | Migrated to Doctrine with improved search, view counts, and canned responses; Markdown-safe sanitization for ticket/KB messages |
| **Admin UX** | Ticket replies editable with revision history; staff notification emails scoped to admin groups; ribbon-style suspended badges; rate limit management UI; Discord community button |
| **Invoicing** | PDF invoice attachment to emails; configurable reminder intervals; zero-price order invoices; price validation at order creation; renewal price and duplicate-payment fixes |
| **Bug Fixes** | MySQL 8.0.22+ REGEXP charset conflict in patches 67/74; registrar adapter autoloader fix; PayPal duplicate subscription handling; Product Promotions crash on NULL flags; domain double-activation fix; UpdatePatcher undefined method from 0.6.x upgrades; Twig 500 error pages; cron defaults on fresh installs; DirectAdmin account deletion recovery |
| **Development** | Email, Extension, Support modules migrated to Doctrine; frontend JS migrated to TypeScript; document fields migrated to custom client fields |
| **Dependencies** | Twig v3.28.0; CKEditor 5 v48.3.0; Sentry v4.29.0; Stripe PHP v20.3.1; PostCSS v8.5.16; Autoprefixer v10.5.2; Rector v2.5.5 |

[View the full 0.8.4 release notes](https://github.com/FOSSBilling/FOSSBilling/releases/tag/0.8.4) for the complete list of changes.

### Version 0.8.3

| Area | Summary |
Expand Down