Commit Graph

203 Commits

Author SHA1 Message Date
xboard
90cfaf3457 Fix: Handle raw DB expressions in user filter
A TypeError occurred when filtering the user list by the `total_used` computed attribute. The `applyQueryCondition` method expected a string for the field name, but received an `Illuminate\Database\Query\Expression` object from `DB::raw`.

This commit updates the `buildFilterQuery` method to check if the query field is an `Expression` instance. If so, it now uses `whereRaw` to apply the filter, preventing the type error and enabling filtering on computed fields. For standard string fields, it continues to use the original `applyQueryCondition` logic.Fix: Handle raw DB expressions in user filter

A TypeError occurred when filtering the user list by the `total_used` computed attribute. The `applyQueryCondition` method expected a string for the field name, but received an `Illuminate\Database\Query\Expression` object from `DB::raw`.

This commit updates the `buildFilterQuery` method to check if the query field is an `Expression` instance. If so, it now uses `whereRaw` to apply the filter, preventing the type error and enabling filtering on computed fields. For standard string fields, it continues to use the original `applyQueryCondition` logic.Fix: Handle raw DB expressions in user filter

A TypeError occurred when filtering the user list by the `total_used` computed attribute. The `applyQueryCondition` method expected a string for the field name, but received an `Illuminate\Database\Query\Expression` object from `DB::raw`.

This commit updates the `buildFilterQuery` method to check if the query field is an `Expression` instance. If so, it now uses `whereRaw` to apply the filter, preventing the type error and enabling filtering on computed fields. For standard string fields, it continues to use the original `applyQueryCondition` logic.Fix: Handle raw DB expressions in user filter

A TypeError occurred when filtering the user list by the `total_used` computed attribute. The `applyQueryCondition` method expected a string for the field name, but received an `Illuminate\Database\Query\Expression` object from `DB::raw`.

This commit updates the `buildFilterQuery` method to check if the query field is an `Expression` instance. If so, it now uses `whereRaw` to apply the filter, preventing the type error and enabling filtering on computed fields. For standard string fields, it continues to use the original `applyQueryCondition` logic.Fix: Handle raw DB expressions in user filter

A TypeError occurred when filtering the user list by the `total_used` computed attribute. The `applyQueryCondition` method expected a string for the field name, but received an `Illuminate\Database\Query\Expression` object from `DB::raw`.

This commit updates the `buildFilterQuery` method to check if the query field is an `Expression` instance. If so, it now uses `whereRaw` to apply the filter, preventing the type error and enabling filtering on computed fields. For standard string fields, it continues to use the original `applyQueryCondition` logic.Fix: Handle raw DB expressions in user filter

A TypeError occurred when filtering the user list by the `total_used` computed attribute. The `applyQueryCondition` method expected a string for the field name, but received an `Illuminate\Database\Query\Expression` object from `DB::raw`.

This commit updates the `buildFilterQuery` method to check if the query field is an `Expression` instance. If so, it now uses `whereRaw` to apply the filter, preventing the type error and enabling filtering on computed fields. For standard string fields, it continues to use the original `applyQueryCondition` logic.Fix: Handle raw DB expressions in user filter

A TypeError occurred when filtering the user list by the `total_used` computed attribute. The `applyQueryCondition` method expected a string for the field name, but received an `Illuminate\Database\Query\Expression` object from `DB::raw`.

This commit updates the `buildFilterQuery` method to check if the query field is an `Expression` instance. If so, it now uses `whereRaw` to apply the filter, preventing the type error and enabling filtering on computed fields. For standard string fields, it continues to use the original `applyQueryCondition` logic.Fix: Handle raw DB expressions in user filter

A TypeError occurred when filtering the user list by the `total_used` computed attribute. The `applyQueryCondition` method expected a string for the field name, but received an `Illuminate\Database\Query\Expression` object from `DB::raw`.

This commit updates the `buildFilterQuery` method to check if the query field is an `Expression` instance. If so, it now uses `whereRaw` to apply the filter, preventing the type error and enabling filtering on computed fields. For standard string fields, it continues to use the original `applyQueryCondition` logic.Fix: Handle raw DB expressions in user filter

A TypeError occurred when filtering the user list by the `total_used` computed attribute. The `applyQueryCondition` method expected a string for the field name, but received an `Illuminate\Database\Query\Expression` object from `DB::raw`.

This commit updates the `buildFilterQuery` method to check if the query field is an `Expression` instance. If so, it now uses `whereRaw` to apply the filter, preventing the type error and enabling filtering on computed fields. For standard string fields, it continues to use the original `applyQueryCondition` logic.
2025-07-05 12:35:12 +08:00
xboard
2d1d8e1916 fix(setting): Resolve admin_setting helper incompatibility with Octane
Updated the `admin_setting` and `admin_settings_batch` helpers to retrieve the `Setting` instance from the service container. This fixes a fatal error and ensures correct behavior in a Laravel Octane environment by preventing the use of stale, shared static instances.
2025-07-04 22:16:19 +08:00
xboard
03a55bdd77 feat: add tags to plans, refactor order service, adn fix ticket lock 2025-07-01 11:14:18 +08:00
xboard
0863277424 feat: add PostgreSQL support and refactor database configuration in install command 2025-07-01 03:09:53 +08:00
xboard
40290b6496 feat: add socks protocol support for shadowrocket client 2025-07-01 00:49:55 +08:00
xboard
aebd746060 feat: plugin controller config system with guest_comm_config hook integration
- Add HasPluginConfig trait and PluginController base class
- Integrate guest_comm_config hook in CommController for plugin frontend config injection
- Add user creation functionality to UserService and fix null value handling
- Enhance AbstractPlugin.getConfig() with key parameter support
- Multiple service layer optimizations and architecture improvements
2025-06-29 01:42:48 +08:00
xboard
669eef6569 eat: add reCAPTCHA v3 and Cloudflare Turnstile verification support
- Implement reCAPTCHA v3 with score-based validation
- Add Cloudflare Turnstile as captcha alternative
- Create reusable CaptchaService for unified validation
- Support switching between recaptcha, recaptcha-v3, and turnstile
- Maintain backward compatibility with existing configurations
2025-06-28 18:01:59 +08:00
xboard
bd118bb526 fix: admin export subscription link issue 2025-06-24 22:55:34 +08:00
xboard
f7c373bae7 remove: disable traffic package stacking feature 2025-06-24 02:00:12 +08:00
xboard
c7ea9f6809 feat(admin): enhance i18n support
Fix system monitor button i18n syntax, complete coupon form i18n
2025-06-23 11:55:17 +08:00
xboard
449c30d64e fix: resolve known issues and improve code standards
- Fix known bugs in user, plan, and server modules
- Standardize code formatting and structure
- Optimize database queries and model relationships
- Improve request validation and error handling
- Update admin controllers for better consistency
2025-06-22 17:38:17 +08:00
xboard
8f07e03b6e feat: enhance plan validation, traffic system and email verification
- feat: add plan price validation
- feat: make traffic packages stackable
- feat: add commission and invite info to admin order details
- feat: apply email whitelist to verification code API
- fix: subscription link copy compatibility for non-HTTPS
- fix: resolve route editing 500 error in certain cases
- refactor: restructure traffic reset logic
2025-06-22 01:18:38 +08:00
xboard
dd098c2c78 fix: getSystemStatus api 2025-06-21 16:01:51 +08:00
xboard
ad6e51c6ed feat: enhance plan user statistics with active user count display 2025-06-21 13:20:57 +08:00
xboard
06d0f80960 feat: optimize settings management and admin functionality
- Add system log cleanup functionality with batch processing
- Optimize v2_settings table performance by unifying value storage
- Add comprehensive client support list for one-click subscription
- Fix QR code subscription links for specific node types
- Fix route addition issues in admin management panel
- Enhance admin system controller with log management APIs
2025-06-21 12:11:27 +08:00
xboard
f9600d5412 fix(clash-meta): support custom SNI configuration for anytls protocol 2025-05-25 00:20:13 +08:00
xboard
49bcc9696b refactor: comment out update-check routes and refactor findUserByBearerToken, calcResetDayByMonthFirstDay, calcResetDayByExpireDay 2025-05-24 20:47:27 +08:00
xboard
c94a3d0500 fix: add missing files from previous commit 2025-05-24 20:19:54 +08:00
xboard
8880fd468d refactor: optimize mail reminder system - fix memory overflow, improve performance 20-30x, streamline code 2025-05-24 20:08:21 +08:00
xboard
0f657ad67e fix: restrict anytls delivery to compatible stash client versions 2025-05-24 14:13:44 +08:00
xboard
66f9b58393 refactor: use request attributes instead of merge for middleware data transfer
- Replace request->merge() with request->attributes->set() in Server middleware to avoid polluting user input
- Add getNodeInfo() helper method in UniProxyController for cleaner node info access
- Update all node_info references to use the new attribute-based approach
2025-05-24 13:54:57 +08:00
xboard
b271238094 fix: improve node filtering by client base_version, set subscription content-type, and add hop_interval support for hysteria2
- Refactor node filtering logic to correctly handle client base_version requirements.
- Set appropriate Content-Type header for subscription responses.
- Add support for hop_interval configuration in hysteria2 node delivery.
2025-05-24 13:45:32 +08:00
xboard
64e68d7d65 feat: Add node load submission and display functionality
- Implemented node load status submission in UniProxyController with dynamic cache expiration based on server push interval.
- Added log filtering capability in the admin panel for better log management and analysis.
2025-05-24 12:31:18 +08:00
xboard
819d57dfe6 fix: resolve AnyTLS padding scheme modification issue 2025-05-23 20:47:17 +08:00
xboard
af420ea83a feat: add AnyTLS support and improve system functionality
- Add AnyTLS protocol support
- Add system logs viewing in admin panel
- Refactor client subscription delivery code
- Refactor hook mechanism
- Add plugin support for Shadowsocks protocol
- Add CSV export option for batch user creation
- Fix mobile admin login page width display issue
2025-05-22 17:58:22 +08:00
Fearless
0f672571b7 add anytls support 2025-05-19 09:25:52 +08:00
xboard
497fe59986 fix: correct obfs host parameter in subscription delivery for clash/clash-meta/shadowsocks/stash 2025-05-18 03:58:14 +08:00
xboard
4811b38eb3 fix: add missing i18n fields in admin and fix Surge template issue 2025-05-16 23:18:30 +08:00
xboard
16cca9c12d feat(protocols): add support for ss obfs, ss2022, and vless reality
- Clash and Clash Meta: Added support for Shadowsocks (SS) with obfs.
- Loon: Added support for SS2022 and obfs.
- Stash: Added support for SS2022, obfs, and VLESS Reality.
2025-05-16 06:43:58 +08:00
xboard
5b02d3d155 fix(admin): remove one-click update feature and fix fuzzy order search in user management
- Removed the one-click update functionality from the admin panel.
- Fixed the issue where order search in user management used fuzzy matching; now uses precise matching.
2025-05-16 05:48:37 +08:00
xboard
75c6d854b4 feat(admin): optimize subscription template configuration and add Surfboard subscription template
- Improved the code structure for subscription template configuration.
- Added a new feature in the admin panel to configure Surfboard subscription templates.
2025-05-16 05:13:49 +08:00
Xboard
328ed66a6a Merge pull request #497 from ztbh/master
Fix the bug of sub-node ss password mismatch
2025-05-16 00:18:00 +08:00
xboard
708674d56e fix(admin): correct language pack errors in admin panel 2025-05-15 22:19:25 +08:00
ztb
66c5c03203 Fix the bug of sub-node ss password mismatch 2025-05-13 21:55:18 +08:00
xboard
42f9eda8aa fix(admin): correct ticket message bubble alignment in admin panel 2025-05-11 17:44:18 +08:00
xboard
3cb4bcf64a fix(singbox): resolve port type casting and add port hopping support 2025-05-10 17:10:41 +08:00
xboard
53e09f98d7 fix(node): resolve port type validation error 2025-05-09 19:53:59 +08:00
xboard
7b45351f99 fix(admin): Fix order assignment issue in admin panel 2025-05-08 22:14:56 +08:00
xboard
61d8c0ed66 fix(stash): resolve incorrect ports deployment 2025-05-08 21:30:47 +08:00
xboard
4845ff0739 fix: resolve PHPStan static analysis warnings 2025-05-07 19:48:19 +08:00
xboard
ea424ad0a8 Revert "fix: resolve PHPStan static analysis warnings"
This reverts commit b885e644a8.
2025-04-14 21:23:08 +08:00
xboard
b885e644a8 fix: resolve PHPStan static analysis warnings 2025-04-14 02:12:42 +08:00
NekoCareLab
e2bb019551 Fixed: IPv6 is not properly processed 2025-03-16 14:23:58 +08:00
NekoCareLab
3ec93f9971 Fixed: Vless GRPC subscription 2025-03-01 19:29:21 +08:00
xboard
7d5ef44e9f Fix: Handle null content in PlanResource::formatContent method
- Fix deprecated warning when passing null to str_replace() function\n- Use null coalescing operator to provide empty string as default value\n- Comply with PHP 8.2+ type requirements
2025-02-25 19:14:19 +08:00
xboard
b910235eb7 fix: ensure string type safety in Helper::getSubscribeUrl 2025-02-23 16:27:03 +08:00
xboard
86295d229b fix: Remove forced direct IP rule for nodes 2025-02-23 00:33:03 +08:00
xboard
2da7cfcfd7 fix: Correct email dispatching in user management 2025-02-23 00:27:22 +08:00
xboard
e52895d2aa feat: Add TUIC protocol support and fix user filtering/export issues 2025-02-23 00:13:04 +08:00
xboard
c3bfe62ca9 fix(subscribe): correct vmess websocket cofiguration for Surge compatibility 2025-02-22 21:37:38 +08:00