Commit graph

2854 commits

Author SHA1 Message Date
Max
a3e418e326
Merge pull request #1206 from trheyi/main
Update asset modification times and enhance user authentication flow
2025-10-16 10:29:01 +08:00
Max
48f531cf82 Update asset modification times and enhance user authentication flow
- Updated modification times for various asset files in bindata.go to reflect recent changes.
- Enhanced user authentication by adding support for custom claims in the context during authorization, improving flexibility in handling user data.
- Refactored entry verification logic to generate and send OTPs for user registration, streamlining the registration process and improving user experience.
- Introduced new status handling for user accounts, ensuring proper feedback for pending, unverified, and disabled accounts during login attempts.
2025-10-16 10:28:00 +08:00
Max
2f72b19227
Merge pull request #1205 from trheyi/main
Implement deep copy for entry configuration to prevent global config …
2025-10-15 19:33:09 +08:00
Max
481323104a Implement deep copy for entry configuration to prevent global config corruption
- Added a new function, createPublicEntryConfig, to create a deep copy of EntryConfig without sensitive data, ensuring that global configuration remains intact when returning public config.
- Updated entry verification logic to utilize EntryVerificationStatus for clearer status handling during user verification.
- Enhanced tests to verify that the global config is not modified after multiple requests for public entry configuration, addressing a critical bug related to captcha secret exposure.
2025-10-15 19:32:40 +08:00
Max
c0317354d6
Merge pull request #1204 from trheyi/main
Refactor OTP tests and cleanup code
2025-10-15 17:22:15 +08:00
Max
b2dbe7ac51 Refactor OTP tests and cleanup code
- Removed unnecessary blank lines in otp_test.go and otp.go files for improved readability.
- Ensured consistency in test assertions for alphanumeric code generation and default behavior with zero values.
- Streamlined the benchmark test for alphanumeric code generation, enhancing performance measurement clarity.
2025-10-15 17:21:52 +08:00
Max
862e36cd74
Merge pull request #1203 from trheyi/main
Refactor captcha handling in tests and core functionality
2025-10-15 15:43:41 +08:00
Max
c4ecda54e9 Refactor captcha handling in tests and core functionality
- Updated captcha test cases to utilize the new CaptchaGet function for retrieving captcha answers, improving test reliability.
- Refactored CaptchaMake and CaptchaValidate functions to leverage a new utils package for better encapsulation and maintainability.
- Enhanced error handling and logging in captcha-related processes, contributing to a more robust user experience during authentication.
- Streamlined the captcha generation process by integrating with the utils.captcha package, ensuring consistency across the codebase.
2025-10-15 15:43:16 +08:00
Max
a683a11717
Merge pull request #1202 from trheyi/main
Refactor user authentication to unify entry configuration handling
2025-10-15 11:17:18 +08:00
Max
d1a9e5c892 Refactor user authentication to unify entry configuration handling
- Renamed and updated functions and tests to replace 'login' terminology with 'entry', reflecting the unified handling of login and registration processes.
- Removed deprecated login configuration functions and structures, streamlining the codebase.
- Enhanced test coverage for entry configuration retrieval and validation, ensuring comprehensive testing of the new unified approach.
- Improved error handling and logging for entry configuration scenarios, contributing to a better user experience during authentication.
2025-10-15 11:16:54 +08:00
Max
e690ac95ca
Merge pull request #1201 from trheyi/main
Refactor user configuration to unify login and registration handling
2025-10-15 09:59:09 +08:00
Max
b43a38b387 Refactor user configuration to unify login and registration handling
- Replaced separate register configurations with a unified entry configuration that combines login and registration settings.
- Updated related functions and structures to support the new entry configuration, enhancing the user authentication process.
- Removed deprecated register configuration handling and endpoints, streamlining the codebase.
- Improved error handling for missing entry configurations, ensuring better user experience during authentication.
2025-10-15 09:58:37 +08:00
Max
4bf2c6b998
Merge pull request #1200 from trheyi/main
Enhance user registration and configuration handling
2025-10-14 19:13:17 +08:00
Max
484ed8d899 Enhance user registration and configuration handling
- Added support for processing environment variables in both register and form configurations, improving flexibility and configurability.
- Introduced a new MessengerConfig structure for handling messenger-related settings in the register configuration.
- Updated the RegisterConfig structure to include ThirdParty and InviteRequired fields, enhancing user registration options.
- Refactored the registration endpoint to retrieve configuration details, ensuring a more robust registration process.
- Implemented logging for missing environment variables to aid in configuration troubleshooting.
2025-10-14 19:12:44 +08:00
Max
8ba7730fb1
Merge pull request #1199 from trheyi/main
Update AcceptInvitation method to support optional user ID parameter
2025-10-14 14:16:07 +08:00
Max
168313c757 Update AcceptInvitation method to support optional user ID parameter
- Modified the AcceptInvitation method to accept an optional user ID parameter, allowing for updates to the user ID when accepting invitations without an existing user ID.
- Adjusted related tests to include the new user ID parameter, ensuring comprehensive coverage of invitation acceptance scenarios.
- Updated the team invitation acceptance logic to utilize the new parameter, enhancing the invitation flow and user management capabilities.
2025-10-14 14:15:41 +08:00
Max
5e6f576ff7
Merge pull request #1198 from trheyi/main
Enhance invitation acceptance flow with invitation ID support
2025-10-14 11:58:43 +08:00
Max
721f47c345 Enhance invitation acceptance flow with invitation ID support
- Updated the AcceptInvitation method to require both invitation ID and token, improving the invitation acceptance process.
- Modified related tests to accommodate the new invitation ID parameter, ensuring comprehensive coverage of acceptance scenarios.
- Enhanced the invitation acceptance endpoint to validate invitation ID, providing clearer error handling for invalid or expired invitations.
- Refactored tests to include detailed scenarios for accepting invitations, including success and failure cases, ensuring robust testing of the invitation flow.
2025-10-14 11:58:20 +08:00
Max
f86b72108f
Merge pull request #1197 from trheyi/main
Add Yao user ID support in OIDC and token generation
2025-10-14 09:57:15 +08:00
Max
0d83faeeca Add Yao user ID support in OIDC and token generation
- Enhanced the SignIDToken method to include the original Yao user ID in the token claims, improving user identification.
- Updated the MakeOIDCUserInfo function to extract and set the Yao user ID from the user map, ensuring consistency in user information.
- Modified the OIDCUserInfo structure to include a field for Yao user ID, facilitating better integration with Yao-specific features.
- Adjusted the team invitation response to include the inviter's user ID, enhancing the invitation context.
2025-10-14 09:56:29 +08:00
Max
51f3ed70e6
Merge pull request #1196 from trheyi/main
Add Yao type information to user and token claims
2025-10-13 18:27:46 +08:00
Max
5e67a9e5c0 Add Yao type information to user and token claims
- Enhanced the OIDCUserInfo structure to include YaoTypeID and YaoType fields for better user type management.
- Updated SignIDToken method to incorporate YaoTypeID and YaoType claims, ensuring comprehensive user type information in ID tokens.
- Modified team creation logic to set default type_id based on team configuration, improving team management capabilities.
- Refactored token generation methods to support additional type information in access and refresh tokens, enhancing overall token customization.
2025-10-13 18:26:52 +08:00
Max
910770263d
Merge pull request #1195 from trheyi/main
Add register configuration support for user management
2025-10-13 16:44:56 +08:00
Max
a4c628f3c2 Add register configuration support for user management
- Introduced register configuration loading from the openapi/user/register directory, enhancing user management capabilities.
- Updated LoginThirdParty function to utilize locale-specific register configurations, improving localization support.
- Refactored RegisterConfig structure to include additional fields for better configuration management.
- Enhanced GetRegisterConfig function to provide fallback options for missing locale configurations, ensuring robustness in user registration processes.
2025-10-13 16:44:17 +08:00
Max
8bc147499b
Merge pull request #1194 from trheyi/main
Enhance user type management with locale support
2025-10-13 16:17:05 +08:00
Max
87465379be Enhance user type management with locale support
- Added 'locale' field to user type structure for language localization.
- Updated API methods to include locale in pricing and published types retrieval.
- Enhanced tests to validate locale handling in user type operations, ensuring robust support for multiple languages.
2025-10-13 16:16:40 +08:00
Max
6f85e78a57
Merge pull request #1193 from trheyi/main
Enhance user type management with pricing and status fields
2025-10-13 15:56:07 +08:00
Max
15f0750253 Enhance user type management with pricing and status fields
- Updated user type structure to include new fields for pricing: price_daily, price_monthly, price_yearly, and credits_monthly.
- Added status field to manage publishing states (draft, published, archived) for user types.
- Enhanced the user type API to support pricing operations, including retrieval and updates for pricing information.
- Refactored tests to cover new pricing functionalities and ensure robust handling of user type statuses.
2025-10-13 15:55:41 +08:00
Max
b3a365b53b
Merge pull request #1192 from trheyi/main
Update UpdateUserLastLogin method to require loginCtx
2025-10-13 14:11:54 +08:00
Max
ba296c3b48 Update UpdateUserLastLogin method to require loginCtx
- Modified the UpdateUserLastLogin method to validate that loginCtx is not nil, returning an error if it is.
- Updated the corresponding test to reflect this change, ensuring that an error is asserted when loginCtx is nil, improving error handling and robustness of user login tracking.
2025-10-13 14:11:28 +08:00
Max
597c6a58a5
Merge pull request #1191 from trheyi/main
Add Yao custom fields to ID token claims
2025-10-13 11:30:09 +08:00
Max
0a353e6e41 Add Yao custom fields to ID token claims
- Enhanced the SignIDToken method to include additional Yao-specific fields such as tenant_id, team_id, is_owner, and team details in the token claims.
- Improved the structure of claims to support team information, ensuring comprehensive metadata is included in the generated tokens.
2025-10-13 11:29:45 +08:00
Max
fa7dbc6e4a
Merge pull request #1190 from trheyi/main
Enhance user login functionality with detailed context tracking
2025-10-13 09:59:01 +08:00
Max
1af0a20015 Enhance user login functionality with detailed context tracking
- Updated the UpdateUserLastLogin method to accept a LoginContext, allowing for tracking of last login IP, user agent, device, and platform.
- Modified the LoginThirdParty and LoginByUserID functions to utilize the new LoginContext, improving the accuracy of login tracking.
- Enhanced the user model to include fields for last login details, ensuring comprehensive user activity logging.
- Refactored tests to validate the new login context handling, ensuring robust coverage of the updated functionality.
2025-10-13 09:58:16 +08:00
Max
6a69f486e5
Merge pull request #1189 from trheyi/main
Enhance token generation and storage to support optional extra claims
2025-10-11 19:58:20 +08:00
Max
d78ed77b9e Enhance token generation and storage to support optional extra claims
- Updated methods related to refresh token generation and storage to accept optional extra claims, allowing for additional metadata such as team_id and tenant_id.
- Refactored tests to utilize the new method signatures, ensuring comprehensive coverage of the updated functionality.
- Introduced a new endpoint for team selection that issues tokens with team-specific claims, improving user experience in multi-team scenarios.
2025-10-11 19:56:29 +08:00
Max
aae3447575 Refactor token claims structure for improved readability
- Removed unnecessary blank lines in the TokenClaims, AuthorizedInfo, and JWTClaims structs to enhance code clarity and maintainability.
- Ensured consistent formatting across the claims structures for better organization.
2025-10-11 19:04:39 +08:00
Max
a13061a415
Merge pull request #1188 from trheyi/main
Refactor token handling to support optional extra claims in access to…
2025-10-11 19:00:30 +08:00
Max
07cc11b363 Refactor token handling to support optional extra claims in access token generation
- Updated storeAccessToken and related methods to accept an optional extraClaims parameter for additional flexibility.
- Modified MakeAccessToken and generateAccessTokenWithScope functions to incorporate extra claims, enhancing token customization.
- Adjusted tests to utilize the new extraClaims parameter, ensuring comprehensive coverage of the updated functionality.
2025-10-11 18:59:45 +08:00
Max
59d0e56982
Merge pull request #1187 from trheyi/main
Enhance login process to support team selection and improve token han…
2025-10-11 18:25:18 +08:00
Max
60c830099e Enhance login process to support team selection and improve token handling
- Added ScopeTeamSelection constant for temporary access token.
- Updated LoginByUserID function to include team selection logic based on user team count.
- Modified access token generation to use user subject for both MFA and team selection scenarios.
- Enhanced LoginResponse structure to include TokenType and Scope fields for clarity.
2025-10-11 18:23:09 +08:00
Max
faae63d4d5
Merge pull request #1186 from trheyi/main
Enhance team retrieval functionality and improve user team handling
2025-10-11 10:55:56 +08:00
Max
afa5b2d3f2 Enhance team retrieval functionality and improve user team handling
- Updated GetTeamsByMember method to include role information and owner status for each team member.
- Refactored GinTeamList to utilize the new getUserTeams function, simplifying team retrieval logic and removing pagination.
- Introduced getUserTeams and getUserTeamsCount functions to encapsulate team membership logic, improving code organization and clarity.
- Removed deprecated team retrieval logic from user/team.go, streamlining the codebase.
2025-10-11 10:54:51 +08:00
Max
259b5f5aec
Merge pull request #1185 from trheyi/main
Refactor MFA handling in login process
2025-10-10 14:52:26 +08:00
Max
6abcf79dd7 Refactor MFA handling in login process
- Updated LoginResponse structure to replace MFAToken and MFATokenExpiresIn with AccessToken and ExpiresIn for improved clarity.
- Adjusted LoginByUserID and SendLoginCookies functions to utilize the new access token fields.
- Modified authback function to respond with the updated login response structure, enhancing the MFA flow.
2025-10-10 14:51:01 +08:00
Max
8fb0399641
Merge pull request #1184 from trheyi/main
Implement MFA token generation and update login response handling
2025-10-10 14:25:50 +08:00
Max
4a93b3580c Implement MFA token generation and update login response handling
- Removed the previous MFA check from the LoginThirdParty function and integrated MFA token generation within the LoginByUserID function.
- Enhanced the LoginResponse structure to include MFAToken and MFATokenExpiresIn fields for better MFA handling.
- Updated the SendLoginCookies function to manage MFA token cookies appropriately.
- Adjusted the authback function to respond with MFA status and token when MFA is required, improving the login flow for users with MFA enabled.
2025-10-10 14:25:18 +08:00
Max
8d146bb355
Merge pull request #1183 from trheyi/main
Add MFA required error handling and update login response structure
2025-10-10 11:58:44 +08:00
Max
5e5b633fba Add team retrieval and counting methods for user membership
- Introduced GetTeamsByMember and CountTeamsByMember methods in the DefaultUser struct to retrieve teams associated with a specific member and count the total number of teams, respectively.
- Updated the UserProvider interface to include these new methods.
- Enhanced the login response structure to include a status indicating whether team selection is required based on the user's team membership.
- Added error handling for team retrieval in the authentication process.
2025-10-10 11:57:47 +08:00
Max
4a94460377 Add MFA required error handling and update login response structure 2025-10-10 11:14:52 +08:00