This commit is contained in:
2026-02-11 17:46:22 +03:00
commit eacfacb13b
266 changed files with 51337 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
package routes
import (
"bssapp-backend/auth"
"bssapp-backend/ctxkeys"
"bssapp-backend/internal/auditlog"
"bssapp-backend/permissions"
"bssapp-backend/repository"
"database/sql"
"encoding/json"
)
// auditLogFromRequest
// routes içinden çağrılır
// auditLogFromRequest
// routes içinden çağrılır
func auditLogFromRequest(
ctx any,
db *sql.DB,
actionType string,
meta map[string]any,
) {
al := auditlog.ActivityLog{
ActionType: actionType,
ActionCategory: "ADMIN",
IsSuccess: true,
}
// JWT → identity
if c, ok := ctx.(interface {
Value(any) any
}); ok {
if claims, ok := c.Value(ctxkeys.UserContextKey).(*auth.Claims); ok && claims != nil {
// ✅ TEK KİMLİK
al.DfUsrID = claims.ID
al.Username = claims.Username
al.RoleCode = claims.RoleCode
// 🔗 MULTI ROLE → ADMIN CHECK
roles, err := repository.GetUserRolesByUserID(db, claims.ID)
if err == nil {
_, isAdmin := permissions.ResolveEffectiveRoles(roles)
if isAdmin {
al.RoleCode = "admin"
}
}
}
}
// meta → description
if meta != nil {
if b, err := json.Marshal(meta); err == nil {
al.Description = string(b)
}
}
auditlog.Write(al)
}