add event log retrieval
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-01-17 12:20:01 +11:00
parent 5f63ee235b
commit f68bd9637d
8 changed files with 75 additions and 12 deletions

View File

@@ -14,8 +14,8 @@ type Audit struct {
EventTime time.Time `db:"EventTime" json:"eventTime"`
}
// AuditAdd adds a new audit record to the database
func (a *Audit) AuditAdd() (*Audit, error) {
// AutidLogAdd adds a new audit record to the database
func (a *Audit) AutidLogAdd() (*Audit, error) {
var err error
// Populate timestamp field if not already set
@@ -26,14 +26,42 @@ func (a *Audit) AuditAdd() (*Audit, error) {
result, err := db.NamedExec(("INSERT INTO audit (UserId, SecretId, EventText, EventTime) VALUES (:UserId, :SecretId, :EventText, :EventTime);"), a)
if err != nil {
log.Printf("AuditAdd error executing sql record : '%s'\n", err)
log.Printf("AutidLogAdd error executing sql record : '%s'\n", err)
return &Audit{}, err
} else {
affected, _ := result.RowsAffected()
id, _ := result.LastInsertId()
a.AuditId = int(id)
log.Printf("AuditAdd insert returned result id '%d' affecting %d row(s).\n", id, affected)
log.Printf("AutidLogAdd insert returned result id '%d' affecting %d row(s).\n", id, affected)
}
return a, nil
}
// AuditList returns a list of all audit logs in database
func AuditLogList() ([]Audit, error) {
var results []Audit
// Query database for groups
rows, err := db.Queryx("SELECT * FROM audit")
if err != nil {
log.Printf("AuditLogList error executing sql record : '%s'\n", err)
return results, err
} else {
// parse all the results into a slice
for rows.Next() {
var a Audit
err = rows.StructScan(&a)
if err != nil {
log.Printf("AuditLogList error parsing sql record : '%s'\n", err)
return results, err
}
results = append(results, a)
}
log.Printf("AuditLogList retrieved '%d' results\n", len(results))
}
return results, nil
}

View File

@@ -261,6 +261,10 @@ func UserLdapNewLoginCheck(username string, password string) (User, error) {
matchFound := false
for _, group := range groupList {
// Skip any groups that aren't LDAP groups
if len(group.LdapDn) == 0 {
continue
}
for _, lg := range ldapGroups {
if group.LdapDn == lg {
log.Printf("Found match with groupname '%s' and LDAP group DN '%s', user is a member of group ID '%d'\n", group.GroupName, group.LdapDn, group.GroupId)