more audit logs
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-01-22 19:05:26 +11:00
parent 9f0dafd4fd
commit b5c9b5ce19
3 changed files with 65 additions and 1 deletions

View File

@@ -183,7 +183,7 @@ func AddUser(c *gin.Context) {
a := models.Audit{
UserId: RequestingUserId,
IpAddress: c.ClientIP(),
EventText: fmt.Sprintf("Created User Id %d", u.UserId),
EventText: fmt.Sprintf("Created User '%s' with id %d", u.UserName, u.UserId),
}
a.AuditLogAdd()

View File

@@ -34,6 +34,7 @@ func GetGroupsHandler(c *gin.Context) {
func AddGroupHandler(c *gin.Context) {
var input GroupInput
var RequestingUserId int
if err := c.ShouldBindJSON(&input); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
@@ -50,6 +51,13 @@ func AddGroupHandler(c *gin.Context) {
return
}
if val, ok := c.Get("user-id"); !ok {
c.JSON(http.StatusBadRequest, gin.H{"error": "error determining user"})
return
} else {
RequestingUserId = val.(int)
}
g := models.Group{}
g.GroupName = input.GroupName
g.LdapGroup = input.LdapGroup
@@ -90,6 +98,14 @@ func AddGroupHandler(c *gin.Context) {
// Verification checks passed, return group
group, err := g.GroupAdd()
// Create audit record
a := models.Audit{
UserId: RequestingUserId,
IpAddress: c.ClientIP(),
EventText: fmt.Sprintf("Created Group '%s' with id %d", g.GroupName, g.GroupId),
}
a.AuditLogAdd()
if err != nil {
errString := fmt.Sprintf("error creating group : '%s'", err)
log.Printf("AddGroupHandler %s\n", errString)
@@ -102,6 +118,7 @@ func AddGroupHandler(c *gin.Context) {
func DeleteGroupHandler(c *gin.Context) {
var input GroupInput
var RequestingUserId int
if err := c.ShouldBindJSON(&input); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
@@ -114,6 +131,13 @@ func DeleteGroupHandler(c *gin.Context) {
return
}
if val, ok := c.Get("user-id"); !ok {
c.JSON(http.StatusBadRequest, gin.H{"error": "error determining user"})
return
} else {
RequestingUserId = val.(int)
}
g := models.Group{}
g.GroupId = input.GroupId
g.GroupName = input.GroupName
@@ -152,6 +176,14 @@ func DeleteGroupHandler(c *gin.Context) {
err := g.GroupDelete()
// Create audit record
a := models.Audit{
UserId: RequestingUserId,
IpAddress: c.ClientIP(),
EventText: fmt.Sprintf("Deleted Group '%s' with id %d", g.GroupName, g.GroupId),
}
a.AuditLogAdd()
if err != nil {
errString := fmt.Sprintf("error deleting group : '%s'", err)
log.Printf("DeleteGroupHandler %s\n", errString)

View File

@@ -35,6 +35,7 @@ func GetPermissionsHandler(c *gin.Context) {
func AddPermissionHandler(c *gin.Context) {
var input PermissionInput
var RequestingUserId int
if err := c.ShouldBindJSON(&input); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
@@ -55,6 +56,13 @@ func AddPermissionHandler(c *gin.Context) {
return
}
if val, ok := c.Get("user-id"); !ok {
c.JSON(http.StatusBadRequest, gin.H{"error": "error determining user"})
return
} else {
RequestingUserId = val.(int)
}
p := models.Permission{
PermissionId: input.PermissionId,
Description: input.Description,
@@ -82,6 +90,14 @@ func AddPermissionHandler(c *gin.Context) {
_, err := p.PermissionAdd()
// Create audit record
a := models.Audit{
UserId: RequestingUserId,
IpAddress: c.ClientIP(),
EventText: fmt.Sprintf("Created Permission '%s' with id %d on safe id %d for group id %d or user id %d", p.Description, p.PermissionId, p.SafeId, p.GroupId, p.UserId),
}
a.AuditLogAdd()
if err != nil {
errString := fmt.Sprintf("error creating permission : '%s'", err)
log.Printf("AddPermissionHandler %s\n", errString)
@@ -94,6 +110,7 @@ func AddPermissionHandler(c *gin.Context) {
func DeletePermissionHandler(c *gin.Context) {
var input PermissionInput
var RequestingUserId int
if err := c.ShouldBindJSON(&input); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
@@ -108,6 +125,13 @@ func DeletePermissionHandler(c *gin.Context) {
return
}
if val, ok := c.Get("user-id"); !ok {
c.JSON(http.StatusBadRequest, gin.H{"error": "error determining user"})
return
} else {
RequestingUserId = val.(int)
}
p := models.Permission{
PermissionId: input.PermissionId,
Description: input.Description,
@@ -131,6 +155,14 @@ func DeletePermissionHandler(c *gin.Context) {
} else {
err := p.PermissionDelete()
// Create audit record
a := models.Audit{
UserId: RequestingUserId,
IpAddress: c.ClientIP(),
EventText: fmt.Sprintf("Deleted Permission '%s' with id %d", p.Description, p.PermissionId),
}
a.AuditLogAdd()
if err != nil {
errString := fmt.Sprintf("error deleting permission : '%s'", err)
log.Printf("DeletePermissionHandler %s\n", errString)