fix: opslog might log event with empty usercred

This commit is contained in:
Qiu Jian
2021-12-06 22:14:45 +08:00
parent ad9575a757
commit 1c9a4d208c
+23 -11
View File
@@ -166,17 +166,29 @@ func (manager *SOpsLogManager) LogEvent(model IModel, action string, notes inter
ObjName: objName,
Action: action,
Notes: stringutils.Interface2String(notes),
ProjectId: userCred.GetProjectId(),
Project: userCred.GetProjectName(),
ProjectDomainId: userCred.GetProjectDomainId(),
ProjectDomain: userCred.GetProjectDomain(),
UserId: userCred.GetUserId(),
User: userCred.GetUserName(),
DomainId: userCred.GetDomainId(),
Domain: userCred.GetDomainName(),
Roles: strings.Join(userCred.GetRoles(), ","),
}
if userCred == nil {
log.Warningf("Log event with empty userCred: objType=%s objId=%s objName=%s action=%s", model.Keyword(), objId, objName, action)
const unknown = "unknown"
opslog.ProjectId = unknown
opslog.Project = unknown
opslog.ProjectDomainId = unknown
opslog.ProjectDomain = unknown
opslog.UserId = unknown
opslog.User = unknown
opslog.DomainId = unknown
opslog.Domain = unknown
opslog.Roles = unknown
} else {
opslog.ProjectId = userCred.GetProjectId()
opslog.Project = userCred.GetProjectName()
opslog.ProjectDomainId = userCred.GetProjectDomainId()
opslog.ProjectDomain = userCred.GetProjectDomain()
opslog.UserId = userCred.GetUserId()
opslog.User = userCred.GetUserName()
opslog.DomainId = userCred.GetDomainId()
opslog.Domain = userCred.GetDomainName()
opslog.Roles = strings.Join(userCred.GetRoles(), ",")
}
opslog.SetModelManager(OpsLog, opslog)