JobTitleController now uses pre-authenticated session from OTKPreAuthFilter to prevent 401 errors
SecurityRoleController now uses pre-authenticated session from OTKPreAuthFilter to prevent 401 errors
DomainController now uses pre-authenticated session from OTKPreAuthFilter to prevent 401 errors
查询所有用户的外观以获取真正的实体而不是代理
- 从avatar获取用户ID,然后查询找到ByUserId(返回真实实体) - 从列表中查找匹配的外观并检查实例 - 这避免了代理问题 阻止实例工作
使用 Hibernate Lazy Initializer 来从代理获取实际实体类
- 进入HibernateProxy的懒惰化器,以获得持久的阶级 - 检查是否是AvatarPhoto 或 Avatar 创建者 - 使用QQ强制初始化 - 这应该正确识别Avatar类型 即使它是一个代理
使用直接投影来确定外观类型而不是反射
- 试铸给AvatarPhoto先强制代理初始化 - 直接在投影后访问获取FileExtension() - 回到阿凡达阿凡达 造物主的铸造,如果相片铸造失败 - 更好的类型检测错误处理
通过抓取调用目标来改进代理类型检测
- 在代理上援引方法确定实际类型时处理分类例外 - 尝试先获取FileExtension(相片),再获取Style(阿凡达创建器) - 更好的Hibernate代理类型检测错误处理
改进模拟类型检测的 Hibernate 代理处理
- 搜索等级和接口以获取FileExtension方法 - 使用反射来检测 AvatarPhoto 与 AvatarAvatar 创建者在失败时 - 在类名检查中添加倒数 - 解决将相片造型人错误地当作"神通造型人"的问题
从寄存器重新装入相机以解决 Hibernate 代理实例
- 从关系中装入的神通实体可能是未成功检查的Hibernate代理 - 从寄存器重新装入相机以获得实际实体类型(相机或相机) - 如果重新装入失败, 使用反射法添加倒置逻辑 - 修正“ 未知的可视化类型” 错误, 导致无效可视化 URL
保证在 HexheadGroup 中缺失时总是创建首字母 SVG
- 如果avatar抓取失败, 添加错误处理回落以创建缩写 SVG - 合并缩写 SVG 创建逻辑 - 确保AvatarSrc永远不会是空字符串
在设置为活动后刷新相机列表
- 在将相片设定为活动后, 刷新完整相片列表以获取更新的等效旗 - 从已刷新的列表中查找并设置活动相机 - 确保更改正确持续,并更新页面
Determine active avatar by checking user.getAvatar() instead of RecordState
- Backend now correctly marks which avatar is active by comparing to user.getAvatar() - This ensures the isActive flag in the API response reflects the actual a...
Load active avatar from avatars list on Profile page
- Fetch avatars list and find the one marked as active - Set activeAvatar from the full avatar object in the list (has all details and URL) - Remove redundant a...
Detect member avatar override on page load even if returned as 'avatar'
- Add logging to see what API returns on initial load - Check if member has avatarId/memberAvatarId set to detect member override - If avatar ID matches memberA...
Ensure avatarId is always sent when activeAvatar exists
- Use corrected useDefaultUserAvatar value directly in save logic - If activeAvatar exists, always send avatarId (member override) regardless of flag - Improved...
Preserve avatar URL when saving and add defensive check
- Preserve profilePicture from activeAvatar when updating profileData after save - Add warning if activeAvatar exists but useDefaultUserAvatar is incorrectly tr...
Preserve avatar state after save to prevent revert
- Fixed save logic to properly send avatarId when avatar is selected - Preserve current activeAvatar and useDefaultUserAvatar state before refresh - If refresh ...
Update avatar state after saving profile to prevent revert
- After saving profile, refresh and update activeAvatar state from API response - Update useDefaultUserAvatar flag to match saved state - Ensures avatar remains...
Prevent avatar from switching to empty avatar when selecting
- Immediately set selected avatar in UI for instant feedback - Only update with refreshed data if it has a URL and is the same avatar - Prevents overwriting sel...
Keep avatar manager dialog open and fix profile avatar display
- Removed handleClose() calls when selecting, creating, or uploading avatars - Dialog now stays open so users can continue selecting/managing avatars - After cr...
Ensure avatar URL is properly preserved and displayed from database
- Changed URL handling to preserve empty strings (use ?? instead of ||) - Updated MemberHeader props to prioritize profileData.profilePicture which contains the...
Ensure avatar is properly set from database on profile tab load
- Fixed URL handling to use original API response URL instead of potentially null transformed value - Added synchronization between activeAvatar and userAvatars...
Resolve avatar display and persistence issues in profile tab
- Fix initial avatar display to show correct primary avatar instead of default initials - Fix avatar selection from list to properly update member avatar and pe...
Correctly construct security provider logo URL using domain parsing
Correct Next.js 15 route handler params type and remove .js extension from dynamic imports
使用 GitHub 动作直接代替代码. forgejo.org 来避免503 错误
- 已更改动作/ 检查出错@ v4 至 QQ - 已更改 docker/login- action@v3 到 QQ - 已更改的 docker/ building- push- action@v5 到 QQ - 这避免了对代码的依赖.forgejo.org 有临时的503错误
直接通过ID而不是网络阵列获取安全提供者组织
- 通过ID端点为代理安全服务组织创建了新的API路由 /api/security/org/[id] - 更新设置View,以直接通过ID获取安全提供者或g,而不是搜索网络阵列 - 安全提供商Org不在网络阵列中(用户不是成员),所以我们需要单独获取它 - 这应当修正不显示的配置标签标识
对安全提供商标识使用与当前 org 标识相同的 URL 模式
- 将当前 org 标志 URL 路径中的第一个文件夹替换为安全提供者域 - 将文件夹名称的安全提供者域中的点替换为破折号 - 实例: ...
简化标志 URL 生成以匹配主题Logo和网络页面模式
- 对于当前 org( 成员和权限): 直接像主题Logo 那样使用 GetThemePath( ) - 对于安全提供商(Profile):使用带有安全提供商域的GetThemePathForDomain(),就像网络页面一样 - 取消了不必要的复杂度, API 调用当前 org 标志 - 与编码库其他地方所用的完全相...
Improve logo display in tabs - use icon prop with Box wrapper and add fallback logic
- Switched back to using Tab icon prop with Box wrapper for better MUI compatibility - Added fallback to use domains[0] if domain field is not available - Added...
Fix logo display in tab labels - use img tag in label instead of icon prop
- Changed from using Tab icon prop to embedding logo directly in label using Box with img tag - Added console logging to debug logo fetching and URL generation ...
Increase kubectl rollout timeout from 300s to 900s
- Increased kubectl rollout status timeout to 900 seconds (15 minutes) for both k1m1 and k2m1 deployments - This matches the increased progressDeadlineSeconds o...
Increase deployment progressDeadlineSeconds from 60s to 600s
- Increased progressDeadlineSeconds to 600 seconds (10 minutes) to allow Next.js app sufficient time to build and start - Previous 60 second timeout was too sho...
Handle ISO date format and improve avatarId type parsing
- Added support for ISO date format (YYYY-MM-DD) in addition to M/d/yyyy - Improved avatarId parsing to handle Number types (Double, BigDecimal, etc.) from JSON...
Add better error handling and logging for user/member save operations
- Added try-catch around user save operation with detailed error logging - Added try-catch around member save operation with detailed error logging - Improved d...
Improve avatarId parsing to handle string, integer, and long types
- Added support for parsing avatarId from String type - Better error handling for invalid avatarId formats - Added logging for avatar assignment and errors
Improve error handling and logging for member profile updates
- Added detailed logging to API route for PUT requests - Improved error response handling to include actual error messages - Fixed avatarId type conversion (str...
Add detailed logging to updateMemberProfile for debugging
- Added logging at start of updateMemberProfile method - Added logging before and after saving user and member - Improved error response to include error detail...
Improve error handling and refresh profile data after save
- Added detailed error messages when profile save fails - Profile data is now refreshed from server after successful save - Better error logging for debugging
Add support for updating user name fields and dateOfBirth in member profile
- Added UserRepository to MemberController - Updated updateMemberProfile to handle namePrefix, nameFirst, nameMiddle, nameLast, nameSuffix, nameFirstAKA, nameLa...
Remove URL input for backgrounds, improve upload error handling, fix avatar persistence
- Removed URL input field for backgrounds - only uploads via popup are allowed - Improved error handling for background uploads with detailed error messages - F...
Resolve lint errors in ProfileTab and MemberHeader
- Added Button import to MemberHeader - Fixed newAvatar scope issue in handleUploadPhoto and handleCreateAvatar Creator - Stored avatarIdToRefresh in outer scop...
Refresh profile data after setting avatar and ensure proper activation
- handleSelectAvatar now sets avatar as active via API and refreshes profile data - handleUploadPhoto and handleCreateAvatar Creator now update member and refre...