Skip to content

Develop#183

Merged
NaysKutzu merged 20 commits into
mainfrom
develop
Jun 9, 2026
Merged

Develop#183
NaysKutzu merged 20 commits into
mainfrom
develop

Conversation

@NaysKutzu

Copy link
Copy Markdown
Member

No description provided.

NaysKutzu added 20 commits May 22, 2026 14:26
…h improvements to the auth LDAP button styles

- Closes #179
…y order, and hidden methods; enhance login form behavior and CAPTCHA layout

- Closes #180
- Added a method to list Proxmox users and a cleanup function for expired temporary console users.
- Updated the Admin Updates page to correctly call the online install API for plugins and improved error handling for bulk updates.
- Enhanced the StatusBadge component to visually indicate live connection status for running servers.
- Updated CHANGELOG to reflect these changes.
- Closes #181
…nents

- Updated guzzlehttp/guzzle and guzzlehttp/promises to latest versions in composer.lock.
- Refactored LoginForm and Captcha components for cleaner code and improved readability.
- Enhanced ServerCard and StatusBadge components for better JSX formatting.
- Updated CHANGELOG to reflect these changes.
…onents

- Updated APP_VERSION in app, backend CLI, and public index files to reflect the new version.
- Adjusted version in frontend package.json and runner Cargo files to v1.3.7+4.
- Added a new endpoint for initiating Discord account linking.
- Enhanced the DiscordController to support account linking and improved error handling for various scenarios.
- Updated frontend components to handle Discord link success and error messages.
- Added new localization strings for Discord account linking feedback.
- Updated CHANGELOG to reflect these changes.
- Added new admin settings for configuring the login page and improved visibility of authentication options.
- Implemented clearer notifications for admins regarding open support tickets, including email alerts.
- Users now receive email notifications for ticket replies, closures, and reopens.
- Introduced a method to retrieve distinct role IDs with specific permissions.
- Enhanced ticket retrieval methods to filter by open status.
- Added functionality to count global open tickets.
- Updated frontend components to display new links and improved ticket management features.
- Updated CHANGELOG to reflect these changes.
- Implemented a new endpoint for resending failed emails for both users and admins.
- Enhanced the MailQueue class with a method to retry sending failed emails.
- Updated the UsersController and SessionController to handle email resend requests.
- Added frontend components to support email resend actions, including loading states and success/error notifications.
- Updated localization strings for email resend feedback.
- Updated CHANGELOG to reflect these changes.
…lity and functionality

- Replaced the Button component with a new import from featherui for consistency.
- Simplified the logic for displaying the banner based on open ticket counts and user permissions.
- Removed unnecessary state management and effects related to pathname checks.
- Ensured the banner only shows if it hasn't been dismissed and there are open tickets.
- Updated the dismissal functionality to improve user experience.
- Improved the role editor page for better usability and clarity.
- Updated SQL query in Role.php to order roles by ID in descending order.
- Added validation in PermissionsController to prevent admins from removing their own admin.root permission.
- Enhanced localization strings for better user feedback regarding permission management.
- Updated CHANGELOG to reflect these changes.
- Introduced a checkbox for users to accept terms of service on the login page.
- Added legal notice components to both login and registration forms to inform users of terms and privacy policies.
- Updated localization strings to support new legal notices.
- Enhanced CHANGELOG to reflect these changes.
- Added configurable default avatar provider in admin settings, supporting multiple options including Gravatar and custom URLs.
- Introduced admin SSO token settings to configure default token lifetime and expiration parameters.
- Enhanced admin list pages to remember search, filters, sort, and pagination using localStorage.
- Implemented configurable default Docker image for spells, ensuring correct runtime on server installs.
- Updated server startup image selection to lock to spell-configured images by default, with an option for custom input.
- Improved admin user edit page with a Potential Alts tab to identify accounts sharing IP addresses.
- Added functionality to block new registrations based on device/browser limits and allow admins to clear device fingerprints.
- Enhanced CHANGELOG to reflect these updates.
- Refactored Wings client creation across multiple controllers to utilize a new `fromNode` method for better readability and maintainability.
- Updated Wings connection logic to respect the 'behind proxy' setting.
- Fixed timezone mismatches in admin pages for improved user experience.
- Enhanced CHANGELOG to reflect these updates.
- Introduced a new method for picking free allocation IDs based on specific IP/port slots, enhancing server transfer capabilities.
- Updated server transfer logic to support auto-opening missing ports on the destination node.
- Improved system health check mechanism with retry logic and better error handling.
- Refactored various components for improved readability and maintainability.
- Enhanced CHANGELOG to reflect these updates.
- Added validation for plugin uploads to ensure conf.yml identifier matches the PHP entry class namespace, preventing installation issues.
- Introduced optional filters for server status and user email verification in server and user queries, improving search functionality.
- Updated resource limit validation in server creation and editing forms to ensure compliance with defined limits.
- Enhanced CHANGELOG to reflect these updates.
- Enhanced plugin behaviors and error reporting mechanisms for better user feedback and debugging.
- Updated CHANGELOG to reflect these improvements.
- Introduced a new optional 'custom_badge' property for roles, allowing for a short label to be displayed on user badges.
- Updated the RolesController to handle validation and normalization of the custom badge input.
- Enhanced the UsersController and TicketsController to include the custom badge in role data.
- Updated frontend components to support displaying the custom badge in various user interfaces.
- Enhanced localization strings to include custom badge labels and hints.
- Updated CHANGELOG to reflect these changes.
- Eliminated the Cloudflare challenge recovery logic from layout, translation context, and API response handling.
- Simplified the cloudflare-challenge utility by removing the trigger function and related constants.
- Updated relevant components to ensure they no longer depend on the removed challenge handling logic.
- Enhanced code readability and maintainability by streamlining the affected files.
- Improved phpMyAdmin integration for seamless database management within the panel.
- Implemented smarter component rendering for enhanced performance and reliability.
- Updated the loading and logout pages with new styling and functionality for better user experience.
- Enhanced localization strings for phpMyAdmin authentication messages.
- Updated CHANGELOG to reflect these enhancements.
…nents

- Updated composer.lock to reflect new versions of guzzlehttp/guzzle and symfony/polyfill-mbstring.
- Refactored RolesController to improve the normalization of custom badge functionality.
- Moved the parseStatusFilter method in ServerUserController for better organization.
- Improved import order in PluginEntryValidator for consistency.
- Added licensing information to token-logout.php and token.php for clarity.
- Cleaned up unused state in EditServerPage and adjusted formatting in RoleBadge and RoleEditor components.
- Enhanced useServersWebSocket hook with eslint directive for better code quality.
@@ -157,6 +157,11 @@
}
}, [uuidShort, initialServer, fetchServer]);

useEffect(() => {
if (typeof document === 'undefined' || !uuidShort) return;
document.cookie = `serverUuid=${encodeURIComponent(uuidShort)}; path=/; max-age=3600; SameSite=Lax`;
@coderabbitai

coderabbitai Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 210 files, which is 60 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 788411e9-1ad1-4fa5-8ff8-0f7873a17287

📥 Commits

Reviewing files that changed from the base of the PR and between 406b4b3 and 69fd8ae.

⛔ Files ignored due to path filters (3)
  • backend/composer.lock is excluded by !**/*.lock
  • frontendv2/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • runner/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (210)
  • .github/README.md
  • .vscode/settings.json
  • CHANGELOG.md
  • app
  • backend/app/App.php
  • backend/app/Chat/Activity.php
  • backend/app/Chat/Allocation.php
  • backend/app/Chat/MailQueue.php
  • backend/app/Chat/Permission.php
  • backend/app/Chat/Role.php
  • backend/app/Chat/Server.php
  • backend/app/Chat/ServerActivity.php
  • backend/app/Chat/Spell.php
  • backend/app/Chat/Ticket.php
  • backend/app/Chat/User.php
  • backend/app/Chat/UserDevice.php
  • backend/app/Cli/Commands/Saas.php
  • backend/app/Cli/Commands/Users.php
  • backend/app/Config/ConfigInterface.php
  • backend/app/Config/PublicConfig.php
  • backend/app/Controllers/Admin/CloudPluginsController.php
  • backend/app/Controllers/Admin/DashboardController.php
  • backend/app/Controllers/Admin/PermissionsController.php
  • backend/app/Controllers/Admin/PterodactylImporterController.php
  • backend/app/Controllers/Admin/RolesController.php
  • backend/app/Controllers/Admin/ServersController.php
  • backend/app/Controllers/Admin/SettingsController.php
  • backend/app/Controllers/Admin/SpellsController.php
  • backend/app/Controllers/Admin/TicketMessagesController.php
  • backend/app/Controllers/Admin/TicketsController.php
  • backend/app/Controllers/Admin/UsersController.php
  • backend/app/Controllers/Admin/VmInstancesController.php
  • backend/app/Controllers/System/PluginSidebarController.php
  • backend/app/Controllers/System/SelfTest.php
  • backend/app/Controllers/User/Auth/DiscordController.php
  • backend/app/Controllers/User/Auth/LoginController.php
  • backend/app/Controllers/User/Auth/RegisterController.php
  • backend/app/Controllers/User/Server/Files/ServerFilesController.php
  • backend/app/Controllers/User/Server/ServerBackupController.php
  • backend/app/Controllers/User/Server/ServerFastDlController.php
  • backend/app/Controllers/User/Server/ServerFirewallController.php
  • backend/app/Controllers/User/Server/ServerImportController.php
  • backend/app/Controllers/User/Server/ServerProxyController.php
  • backend/app/Controllers/User/Server/ServerUserController.php
  • backend/app/Controllers/User/Server/SubuserController.php
  • backend/app/Controllers/User/TicketsController.php
  • backend/app/Controllers/User/User/SessionController.php
  • backend/app/Controllers/User/Vds/VmUserBackupController.php
  • backend/app/Controllers/Wings/Server/WingsServerInfoController.php
  • backend/app/Controllers/Wings/Server/WingsServerInstallController.php
  • backend/app/Controllers/Wings/Server/WingsServerListController.php
  • backend/app/Controllers/Wings/WingsAdminController.php
  • backend/app/Helpers/AppUrlHelper.php
  • backend/app/Helpers/AvatarHelper.php
  • backend/app/Helpers/PhpMyAdmin.php
  • backend/app/Helpers/UserDeviceRegistrationGuard.php
  • backend/app/Helpers/UserDeviceTracker.php
  • backend/app/Helpers/WingsUrlHelper.php
  • backend/app/Mail/templates/TicketAdminAlert.php
  • backend/app/Mail/templates/TicketClosed.php
  • backend/app/Mail/templates/TicketReopened.php
  • backend/app/Mail/templates/TicketReplied.php
  • backend/app/Middleware/AuthMiddleware.php
  • backend/app/Plugins/PluginEntryValidator.php
  • backend/app/Plugins/PluginManager.php
  • backend/app/Services/Proxmox/Proxmox.php
  • backend/app/Services/Servers/ServerTransferInitiator.php
  • backend/app/Services/Servers/TransferAllocationProvisioner.php
  • backend/app/Services/Tickets/TicketAdminNotifier.php
  • backend/app/Services/Tickets/TicketNotificationService.php
  • backend/app/Services/UserDataExport/UserDataExportService.php
  • backend/app/Services/Vm/VmInstanceUtil.php
  • backend/app/Services/Wings/Wings.php
  • backend/app/Services/Wings/WingsConnection.php
  • backend/app/routes/admin/users.php
  • backend/app/routes/user/auth.php
  • backend/app/routes/user/session.php
  • backend/cli
  • backend/public/index.php
  • backend/storage/addons/.gitignore
  • backend/storage/cron/php/AServerScheduleProcessor.php
  • backend/storage/cron/php/UserDataExportProcessor.php
  • backend/storage/cron/php/ZProxmoxConsoleUserCleanup.php
  • backend/storage/migrations/2026-06-07.12.00-add-spell-default-docker-image.sql
  • backend/storage/migrations/2026-06-07.12.00-add-ticket-admin-alert-mail-template.sql
  • backend/storage/migrations/2026-06-07.14.00-add-ticket-email-templates.sql
  • backend/storage/migrations/2026-06-07.14.00-add-user-devices.sql
  • backend/storage/migrations/2026-06-08.12.00-role-custom-badge.sql
  • backend/storage/modules/pma/auth-page.php
  • backend/storage/modules/pma/loading-page.php
  • backend/storage/modules/pma/token-logout.php
  • backend/storage/modules/pma/token.php
  • frontendv2/next.config.ts
  • frontendv2/package.json
  • frontendv2/pnpm-workspace.yaml
  • frontendv2/public/icanhasfeatherpanel/index.html
  • frontendv2/public/icanhasfeatherpanel/widgets/admin-roles-create.html
  • frontendv2/public/icanhasfeatherpanel/widgets/admin-roles-edit.html
  • frontendv2/public/icanhasfeatherpanel/widgets/admin-servers.html
  • frontendv2/public/icanhasfeatherpanel/widgets/index.html
  • frontendv2/public/locales/en.json
  • frontendv2/src/app/(app)/admin/images/page.tsx
  • frontendv2/src/app/(app)/admin/locations/page.tsx
  • frontendv2/src/app/(app)/admin/mail-templates/page.tsx
  • frontendv2/src/app/(app)/admin/mounts/page.tsx
  • frontendv2/src/app/(app)/admin/nodes/[id]/edit/page.tsx
  • frontendv2/src/app/(app)/admin/nodes/page.tsx
  • frontendv2/src/app/(app)/admin/notifications/page.tsx
  • frontendv2/src/app/(app)/admin/plugins/page.tsx
  • frontendv2/src/app/(app)/admin/realms/page.tsx
  • frontendv2/src/app/(app)/admin/roles/[id]/edit/page.tsx
  • frontendv2/src/app/(app)/admin/roles/create/page.tsx
  • frontendv2/src/app/(app)/admin/roles/page.tsx
  • frontendv2/src/app/(app)/admin/servers/[id]/edit/ApplicationTab.tsx
  • frontendv2/src/app/(app)/admin/servers/[id]/edit/DetailsTab.tsx
  • frontendv2/src/app/(app)/admin/servers/[id]/edit/ResourcesTab.tsx
  • frontendv2/src/app/(app)/admin/servers/[id]/edit/StartupTab.tsx
  • frontendv2/src/app/(app)/admin/servers/[id]/edit/page.tsx
  • frontendv2/src/app/(app)/admin/servers/[id]/edit/types.ts
  • frontendv2/src/app/(app)/admin/servers/create/Step3Application.tsx
  • frontendv2/src/app/(app)/admin/servers/create/Step4Resources.tsx
  • frontendv2/src/app/(app)/admin/servers/create/page.tsx
  • frontendv2/src/app/(app)/admin/servers/create/types.ts
  • frontendv2/src/app/(app)/admin/servers/page.tsx
  • frontendv2/src/app/(app)/admin/settings/page.tsx
  • frontendv2/src/app/(app)/admin/spells/[id]/edit/page.tsx
  • frontendv2/src/app/(app)/admin/spells/create/page.tsx
  • frontendv2/src/app/(app)/admin/spells/page.tsx
  • frontendv2/src/app/(app)/admin/subdomains/page.tsx
  • frontendv2/src/app/(app)/admin/tickets/[uuid]/components/TicketSidebar.tsx
  • frontendv2/src/app/(app)/admin/tickets/[uuid]/page.tsx
  • frontendv2/src/app/(app)/admin/tickets/page.tsx
  • frontendv2/src/app/(app)/admin/updates/page.tsx
  • frontendv2/src/app/(app)/admin/users/[uuid]/edit/page.tsx
  • frontendv2/src/app/(app)/admin/users/page.tsx
  • frontendv2/src/app/(app)/admin/vds-nodes/page.tsx
  • frontendv2/src/app/(app)/admin/vm-instances/page.tsx
  • frontendv2/src/app/(app)/auth/login/LoginForm.tsx
  • frontendv2/src/app/(app)/auth/register/RegisterForm.tsx
  • frontendv2/src/app/(app)/dashboard/page.tsx
  • frontendv2/src/app/(app)/dashboard/servers/page.tsx
  • frontendv2/src/app/(app)/dashboard/tickets/[uuid]/page.tsx
  • frontendv2/src/app/(app)/dashboard/tickets/page.tsx
  • frontendv2/src/app/(app)/globals.css
  • frontendv2/src/app/(app)/layout.tsx
  • frontendv2/src/app/(app)/server/[uuidShort]/backups/page.tsx
  • frontendv2/src/app/(app)/server/[uuidShort]/databases/page.tsx
  • frontendv2/src/app/(app)/server/[uuidShort]/files/components/FileActionToolbar.tsx
  • frontendv2/src/app/(app)/server/[uuidShort]/files/components/FileList.tsx
  • frontendv2/src/app/(app)/server/[uuidShort]/files/components/FileRow.tsx
  • frontendv2/src/app/(app)/server/[uuidShort]/files/ide/page.tsx
  • frontendv2/src/app/(app)/server/[uuidShort]/files/page.tsx
  • frontendv2/src/app/(app)/server/[uuidShort]/startup/page.tsx
  • frontendv2/src/app/(app)/vds/[id]/backups/page.tsx
  • frontendv2/src/components/Captcha.tsx
  • frontendv2/src/components/NavbarChromeVariants.tsx
  • frontendv2/src/components/RoleBadge.tsx
  • frontendv2/src/components/Sidebar.tsx
  • frontendv2/src/components/SystemHealthCheck.tsx
  • frontendv2/src/components/account/MailTab.tsx
  • frontendv2/src/components/account/SettingsTab.tsx
  • frontendv2/src/components/admin/DockerImageField.tsx
  • frontendv2/src/components/admin/ModerationStatusCard.tsx
  • frontendv2/src/components/admin/RoleEditor.tsx
  • frontendv2/src/components/admin/TransferServerDialog.tsx
  • frontendv2/src/components/auth/AuthLegalNotice.tsx
  • frontendv2/src/components/branding/ConfiguredLinks.tsx
  • frontendv2/src/components/branding/PanelBrandingFooter.tsx
  • frontendv2/src/components/common/ChunkLoadErrorHandler.tsx
  • frontendv2/src/components/common/PageTransition.tsx
  • frontendv2/src/components/dashboard/AdminOpenTicketsBanner.tsx
  • frontendv2/src/components/dashboard/PluginPage.tsx
  • frontendv2/src/components/featherui/ListPagination.tsx
  • frontendv2/src/components/featherui/ResourceCard.tsx
  • frontendv2/src/components/layout/DashboardShell.tsx
  • frontendv2/src/components/layout/PublicSiteShell.tsx
  • frontendv2/src/components/server/ServerConsolePage.tsx
  • frontendv2/src/components/server/ServerHeader.tsx
  • frontendv2/src/components/server/ServerSwitcher.tsx
  • frontendv2/src/components/server/ServerTerminal.tsx
  • frontendv2/src/components/servers/ServerCard.tsx
  • frontendv2/src/components/servers/StatusBadge.tsx
  • frontendv2/src/components/theme/BackgroundEffectBoundary.tsx
  • frontendv2/src/components/theme/BackgroundWrapper.tsx
  • frontendv2/src/contexts/ServerContext.tsx
  • frontendv2/src/contexts/SessionContext.tsx
  • frontendv2/src/contexts/TranslationContext.tsx
  • frontendv2/src/hooks/useNavigation.ts
  • frontendv2/src/hooks/usePersistedListFilters.ts
  • frontendv2/src/hooks/usePluginRoutes.ts
  • frontendv2/src/hooks/useRoleEditor.ts
  • frontendv2/src/hooks/useServersWebSocket.ts
  • frontendv2/src/hooks/useWingsWebSocket.ts
  • frontendv2/src/lib/api.ts
  • frontendv2/src/lib/clientIdentity.ts
  • frontendv2/src/lib/cloudflare-challenge.ts
  • frontendv2/src/lib/configured-links.ts
  • frontendv2/src/lib/importWithRetry.ts
  • frontendv2/src/lib/loginPageConfig.ts
  • frontendv2/src/lib/pma-auth-context.ts
  • frontendv2/src/lib/role-utils.ts
  • frontendv2/src/lib/server-utils.ts
  • frontendv2/src/lib/servers-api.ts
  • frontendv2/src/lib/spellDockerImages.ts
  • frontendv2/src/lib/wingsRequestQueue.ts
  • frontendv2/src/types/adminServerTypes.ts
  • frontendv2/src/types/server.ts
  • frontendv2/src/types/settings.ts
  • frontendv2/tsconfig.json
  • runner/Cargo.toml

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@NaysKutzu NaysKutzu merged commit e693307 into main Jun 9, 2026
28 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.

2 participants