fix: allow login during sqlite write pressure

This commit is contained in:
ShukeBta
2026-06-11 20:06:55 +08:00
parent 7274ea19b7
commit 52d75171b2
10 changed files with 225 additions and 16 deletions
+15
View File
@@ -116,6 +116,21 @@ func (h *PermissionHandler) GetMyPermissions(c *gin.Context) {
perms, err := h.svc.Permissions.Effective(c.Request.Context(), currentUserID)
if err != nil {
if service.IsTransientDatabaseLock(err) {
role := middleware.GetUserRole(c)
tier := middleware.GetUserTier(c)
c.JSON(http.StatusOK, gin.H{
"code": 0,
"message": "ok",
"data": gin.H{
"permissions": service.FallbackPermissions(currentUserID, role),
"role": role,
"tier": tier,
"is_super": role == "admin" || tier == "plus",
},
})
return
}
h.log.Error("get my permissions failed", zap.Error(err))
c.JSON(http.StatusInternalServerError, gin.H{"code": 50001, "message": "internal error", "data": nil})
return