Commit Graph

19 Commits

Author SHA1 Message Date
1848660317 chore: update default port from 8000 to 9004 and add mobile-more-btn to file-list 2026-01-06 10:08:59 +00:00
b8d88f5807 feat: add admin panel with session auth, user management, and billing dashboard
Implement a full-featured admin backend at `/manage/` with login authentication using
signed cookies and constant-time credential verification. The panel includes a dashboard
showing total/active users, storage usage, monthly revenue, and pending invoices, plus
user management, payment overview, and pricing configuration pages. New environment
variables `ADMIN_USERNAME`, `ADMIN_PASSWORD`, `ADMIN_SESSION_SECRET`, and
`ADMIN_SESSION_EXPIRE_HOURS` control access. The admin router is registered in main.py
and all new templates, auth module, and router files are added.
2026-01-05 20:50:41 +00:00
5bdabe63a1 refactor: replace OrderedDict with plain dict and remove async from DAL cache methods and invalidation helpers 2025-11-29 11:40:49 +00:00
137a8e1232 feat: extend char field lengths across billing and user models to support longer identifiers and descriptions 2025-11-29 11:34:08 +00:00
049e477ee9 feat: add refresh_user_cache method and integrate cache refresh in auth flows
Add a new `refresh_user_cache` method to `DataAccessLayer` that re-caches user objects by both ID and username with the configured TTL. Update `basic_auth` and `webdav_auth` handlers to call this method after successful authentication, ensuring the enterprise cache stays synchronized with user lookups from the fallback ORM path.
2025-11-29 11:27:08 +00:00
2d26306352 feat: add enterprise write buffer and data access layer with batched activity and usage record flushing 2025-11-29 11:18:53 +00:00
525784aa6f chore: add token revocation, caching, concurrency, and WebDAV lock modules 2025-11-29 10:17:47 +00:00
acf70b7019 feat: add responsive hamburger navigation menu with slide-in sidebar for mobile views
Implement a mobile-friendly navigation system that replaces the static nav menu with a hamburger toggle button on screens ≤768px. The menu slides in from the left as a fixed overlay panel with smooth CSS transitions, and automatically closes when any nav link is clicked. Includes animated hamburger icon transformation (rotating top/bottom bars, hiding middle bar) and adjusted hero section padding for better mobile layout.
2025-11-16 01:03:16 +00:00
a90a992172 chore: capitalize brand name and update copyright year in base.html template 2025-11-16 00:58:38 +00:00
46e1b8c9eb chore: fix default template directory paths and add missing legal/feature templates
- Update `generate_legal_documents` default `template_dir` from `"templates/legal"` to `"mywebdav/templates/legal"`
- Update `Jinja2Templates` directory from `"templates"` to `"mywebdav/templates"`
- Add new `base.html` template with navigation, footer, and SEO meta tags
- Add new `features.html` template with responsive grid layout and feature cards
- Add new legal document templates: `compliance_statement.html`, `contact_complaint_mechanism.html`, `cookie_policy.html`, `data_portability_deletion_policy.html`
2025-11-16 00:54:58 +00:00
0564809132 feat: migrate legal documents to Jinja2 templates and add splash/features/pricing/support pages 2025-11-16 00:48:39 +00:00
6da46eaffb fix: return proper WebDAV auth challenge headers and text error bodies instead of JSON 2025-11-14 00:59:01 +00:00
a2b5692811 feat: add JWT cookie fallback auth and comprehensive WebDAV test suite
Implement JWT token decoding from cookies as a secondary authentication method in webdav_auth, falling back to Basic Auth then session cookie. Add full test suite (735 lines) covering OPTIONS, PROPFIND, and authorization scenarios for WebDAV endpoints.
2025-11-14 00:54:47 +00:00
6d47bbfa5e chore: replace end_of_day calculation with timedelta-based approach in usage_tracker.py 2025-11-14 00:04:00 +00:00
69f3161eec chore: reformat code style with consistent quotes, trailing commas, and spacing across auth, billing, and models 2025-11-13 22:22:05 +00:00
aac0798305 chore: replace deprecated datetime.utcnow with timezone-aware datetime.now and migrate pydantic v1 Config to model_config 2025-11-13 22:05:26 +00:00
b5c3a0f5d1 feat: add legal documents module with compliance, contact, and cookie policies
Add a comprehensive LegalDocument base class in mywebdav/legal.py with abstract methods for title and content generation, along with full markdown and HTML implementations for compliance statement, contact/complaint mechanism, and cookie policy pages, replacing placeholder content with detailed regulatory and procedural information.
2025-11-13 20:28:53 +00:00
91f3b5c688 chore: rebrand all RBox references to MyWebdav across codebase and docs
Replace every occurrence of "RBox" with "MyWebdav" in source files, configuration,
legal documents, UI components, and test fixtures. This includes renaming the
`RBoxApp` class to `MyWebdavApp` in the JavaScript component, updating the
TOTP issuer from "RBox" to "MyWebdav" in the auth router, changing the
application description in the argument parser, and updating all user-facing
strings in HTML templates, legal policies, and the manifest file. The
`.env.example` default for `TOTP_ISSUER` is also updated accordingly.
2025-11-13 19:50:03 +00:00
9a7a640400 chore: rename all project references from rbox to mywebdav across configs, code, and docs 2025-11-13 19:42:43 +00:00