Commit Graph

27 Commits

Author SHA1 Message Date
UNITRONIX 5e2ab9bfa9 refactor(org): replace JSON address book tab with device groups view
Show org-linked device and user groups via team_id, with shortcuts to
Devices → Groups and one-click group creation scoped to the organization.
2026-06-10 03:33:02 +02:00
UNITRONIX f99d1ca326 feat: add organization shared address book (#190)
Let org admins publish contacts that merge into each member's RustDesk
address book on GET /api/ab, with panel management and i18n coverage.
2026-06-10 03:19:05 +02:00
UNITRONIX 96b8330ee6 fix(i18n): complete update-channel and Docker UI translations for release
Add patch-updates-docker-i18n.js, fix commercialization fallbacks, and consolidate CHANGELOG [Unreleased] so i18n:check passes across all 26 locales before dev→main.
2026-06-09 06:12:13 +02:00
UNITRONIX d96efad802 fix(rbac): block deleting last super_admin and clarify org owner label
Align Go delete-user guard with update/demotion logic (Discussion #99), add tests, fix pro-role docs, and label org owner as Org Admin in all locales.
2026-06-09 05:07:00 +02:00
UNITRONIX b1ec2fa7bb fix(console): improve update channel UX and fix Modal.confirm on stable
Replace broken Modal.open with Modal.confirm, apply channel on select
change with confirmation, show active channel badge, and clarify copy.
2026-06-07 17:06:35 +02:00
UNITRONIX 317365c766 Add dev/main branching, automated versioning, and update channel switcher.
Introduce bump-version.js with CI workflows for patch bumps on dev and
stable releases on main, plus panel and installer UI to choose stable vs
development GitHub update branches.
2026-06-07 16:48:31 +02:00
UNITRONIX 01fcdc4aea feat(billing): implement billing and time synchronization module
Added a new billing service and time synchronization functionality to the server. This includes the creation of billing packages, contracts, and sessions, along with necessary database migrations. Updated API endpoints for billing management and integrated billing checks into signal handling. Enhanced configuration options for billing parameters and added localization support for billing-related messages.
2026-06-07 14:35:22 +02:00
UNITRONIX 06bf6c503c feat(i18n): add group membership messages in multiple languages
Added new localization strings for group membership actions, including "added to group" and "removed from group," across various language files. This enhancement improves user experience by providing clear feedback on group membership changes in the user's preferred language.
2026-06-07 12:13:29 +02:00
UNITRONIX aaef03a3b2 feat(chat): implement chat message handling and UI integration
Added support for chat messages in the agent, including a new handler for processing incoming chat messages. Updated the configuration to include a chat message handler and integrated chat functionality into the UI, allowing users to send and receive messages seamlessly. Enhanced the user experience with a dedicated chat window and improved layout for better interaction.
2026-06-07 04:48:08 +02:00
UNITRONIX 24bf48d391 feat(devices): add pagination and context menu for device management
Introduced a new pagination feature allowing users to select the number of devices displayed per page. Added a context menu for device actions, enhancing user interaction with device management. Updated the CSS for better layout and usability, including a floating horizontal scrollbar for improved navigation. This update aims to streamline the device management experience.
2026-06-07 01:42:09 +02:00
UNITRONIX 50d1942f8c fix(auth): show username collision when LDAP matches local account (#148)
Add Go LDAP verify endpoint and probe it from the console when a local
user's password fails, so valid domain credentials return HTTP 409 with a
clear collision message instead of a misleading password mismatch. Includes
i18n for auth.username_collision across all console locales.
2026-06-07 00:32:03 +02:00
UNITRONIX bb3cc09c3f fix(presence): clarify post-migration offline state and emit peer_online events.
After RustDesk→BetterDesk migration, HTTP heartbeats can update last seen while
UDP signal registration is still missing. Show a distinct "No signal" badge,
document the two-channel presence model, and publish peer_online on registration.
2026-06-07 00:13:54 +02:00
UNITRONIX e7215f2f9d feat(i18n): add short link functionality and validation messages across multiple languages
- Introduced new localization strings for short download links and their hints in various languages.
- Added validation messages for short link requirements, including character restrictions and length constraints.
- Updated existing download link hints to inform users that old hex links will continue to function after changes to short links.
- Ensured consistency across all language files to enhance user experience and clarity in the interface.
2026-06-06 09:18:48 +02:00
UNITRONIX 8b916488b9 Complete web console i18n audit and refine server attestation.
Sync all 26 locale files to the EN+PL baseline (3432 keys), add OBSIDIAN tier strings, and ship i18n apply/audit tooling. Improve server attestation UX and convert orphaned node:test scripts to Jest so the full test suite passes.
2026-06-06 02:36:57 +02:00
UNITRONIX 27c082205f fix(i18n): complete web console translations
Complete the web console locale set so all 26 language files share the EN/PL baseline with no missing keys, extra keys, empty values, or English fallback values.

Keep strict i18n audit behavior and disabled auto-fix flow so incomplete translations are surfaced for manual review instead of being filled with English fallback text.

Validated with the strict web-nodejs i18n audit, JSON parsing for all locale files, placeholder preservation checks, and VS Code diagnostics.

This commit was made possible thanks to Insolve.
2026-05-31 18:46:27 +02:00
UNITRONIX 9041fb7227 fix: clarify group management workflows (#140)
Make device group edit/delete actions visible, add direct user-group management entry points from the device group ACL modal, and allow device group editors to load user groups for ACL assignment.

Refs #140.
2026-05-23 00:16:22 +02:00
UNITRONIX bdbf09edc6 feat: add user groups management functionality
- Implemented user groups creation, editing, and deletion features.
- Added API endpoints for managing user groups: create, update, and delete.
- Enhanced user interface with a dedicated user groups manager section.
- Updated translations for user groups related strings in multiple languages.
- Improved CSS styles for user groups display and actions.
- Added tests for user groups API functionality.
2026-05-18 23:58:56 +02:00
UNITRONIX 87e9251d31 feat: Implement user group management and access control
- Added user group membership functionality, allowing users to be assigned to groups.
- Introduced validation for group GUIDs and enhanced error handling in user routes.
- Updated device group routes to support allowed user groups, enabling better access control for devices.
- Enhanced database schema to include user group memberships and device group user group access.
- Updated services and database adapters to handle user group data and relationships.
- Modified front-end views to display and manage user groups effectively.
- Added tests to ensure proper functionality of user group assignments and device access control.
2026-05-18 02:23:57 +02:00
UNITRONIX 241d367ea7 fix: add tag-based dynamic device groups (#140) 2026-05-15 00:57:59 +02:00
UNITRONIX 73ff76885f fix(users): standardize roles and surface org membership inline
Address the follow-up feedback on #136 about the user-management UX
feeling disjointed and using non-standard role labels:

- Rename the base organization role from "Viewer"/"User" to
  "Member" across all 26 locales. This removes the vocabulary
  collision with the server-wide "Viewer" role and makes the
  two-axis role model (server role vs per-org role) clearer.
- Add an Organizations column to the System > Users table so
  admins can see each user's org memberships at a glance without
  opening a modal. Badges are clickable and reopen the existing
  Organizations modal for that user.
- Clarify the Add/Edit User form: the role dropdown is now
  labelled "Server Role" with a hint that per-organization roles
  are configured separately under each user's Organizations.
- The Organizations modal now has an explicit section heading and
  a short hint, and uses i18n labels for the role dropdown with
  an aria-label so the org role is visually distinct from the
  server role.

Backend role values are unchanged ("user"/"operator"/"admin"/
"owner" for orgs, existing 7 server roles), so this is a pure
UX/i18n change with no schema or API impact.

Refs: #136

Suggested-by: Sterlyn Kong <68391309+SterlynKong@users.noreply.github.com>
2026-05-11 02:19:08 +02:00
UNITRONIX a8d3259d43 feat(server-management): add server management service and terminal proxy
- Implemented server management service providing resource snapshots, file browser, service control, and audit logging.
- Added terminal proxy for WebSocket-backed PTY, allowing browser-based shell access with user authentication and role-based access control.
- Created server management view with tabs for overview, terminal, file management, and services, including UI elements for displaying system metrics and managing files/services.

Co-authored-by: Copilot <copilot@github.com>
2026-05-07 03:09:03 +02:00
UNITRONIX 723c95121f feat(web): add accessibility preferences panel 2026-05-03 02:49:22 +02:00
UNITRONIX b66ddbe98f i18n(web): fill missing Node.js locale keys
Backfill missing web console translation keys across all available locale files using the English and Polish catalogs as the completeness baseline.

Also normalize the locale JSON files so they parse consistently during tooling and validation.
2026-05-01 22:31:14 +02:00
UNITRONIX 294f006cd0 fix(ui,i18n): standardize role labels between server and org user modals (#120)
The 'Add User' modal in an organization showed Owner / Admin / Operator / User
while the server-level 'Add User' modal showed Viewer / Operator / Administrator
/ Global Admin / Server Admin / Super Admin / Pro. Same conceptual roles had
inconsistent labels (Admin vs Administrator) and the lowest tier used different
words (User vs Viewer), making the two modals look unrelated.

Server-only roles (Super Admin, Server Admin, Global Admin, Pro) intentionally
remain absent from the org modal — they are not org-scoped.

Changes:
- web-nodejs/public/js/organizationDetail.js: reorder roleOptions() to
  lowest-first ['user','operator','admin','owner'] to match the server modal's
  Viewer→Pro ordering pattern.
- web-nodejs/lang/*.json (26 locales): in the 'organizations' section, rename
  role_user label to the localized equivalent of 'Viewer' (matching the
  server section's role_viewer) and role_admin to 'Administrator' (matching
  server section's role_admin). Backend enum values ('user', 'admin') are
  unchanged — this is a pure label change, no schema migration required.

Reported-by: @SterlynKong
2026-05-01 22:15:23 +02:00
UNITRONIX d37b6c2c88 Add Go server build support to updater
Enable optional compilation and deployment of the Go server as part of the self-update flow. UI: add checkbox/status/info area in settings.js, check /api/settings/updates/server-info, include server component when selected, adjust progress/messages and longer timeouts. API/Server: add server-info endpoint and extend install request timeouts. Service: updateService now sets server localRoot and implements functions to detect Go, fetch server source (git or GitHub API), build the binary, and deploy it. i18n: add related translation keys across many locale files. Misc: improve input validation and error logging in desktop.routes, and return graceful defaults for missing policy routes in policies.routes.
2026-04-16 01:07:13 +02:00
UNITRONIX e09d183092 Add permissions/org and UI strings to locales
Extend localization across multiple locale files: add a new permissions section and related role/organization strings, 2FA prompts, branding/typography keys, baseline/backup status keys, and many organization/device/user management messages. Also add load_orgs_failed and verify/2fa messages, update plural/device count keys in betterdesk-mgmt en/zh-TW, and adjust several existing messages (e.g. field_required placeholder and various delete_confirm texts) to improve clarity.
2026-04-14 00:36:23 +02:00
UNITRONIX dd0889e3d6 Add SessionManager; update docs, i18n & CI
Introduce a SessionManager for relay-based remote sessions in the Tauri MGMT client: new SessionCommand API, start/stop/session input routing, clipboard/recording/quality controls, and notification read/dismiss state. Wire AppState with new mutexes and show main window on startup. CI: add SBOM generation (anchore) and Trivy vulnerability scan steps. Misc: change console Docker DB path, large README/CHANGELOG updates (chat E2E, unattended access/WOL, i18n expansion, CDAP/SDK docs), and many web-nodejs assets/locales/routes/views/services and server-side changes.
2026-04-05 13:42:07 +02:00