move audit reference info from a database table to an embedded YAML file
This commit is contained in:
+42
-1
@@ -11,13 +11,53 @@ package database
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
_ "embed"
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.erbosoft.com/amy/amsterdam/config"
|
"git.erbosoft.com/amy/amsterdam/config"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
|
"gopkg.in/yaml.v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// AuditRefRecord stores the reference data for an audit message.
|
||||||
|
type AuditRefRecord struct {
|
||||||
|
Code int `yaml:"code"`
|
||||||
|
Text string `yaml:"text"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// AuditReference stores the audit reference data.
|
||||||
|
type AuditReference struct {
|
||||||
|
Ref []AuditRefRecord `yaml:"auditReference"`
|
||||||
|
table map[int]*AuditRefRecord
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:embed auditref.yaml
|
||||||
|
var initAuditData []byte
|
||||||
|
|
||||||
|
// auditref is the master audit data reference.
|
||||||
|
var auditRef AuditReference
|
||||||
|
|
||||||
|
// init loads the audit data.
|
||||||
|
func init() {
|
||||||
|
if err := yaml.Unmarshal(initAuditData, &auditRef); err != nil {
|
||||||
|
panic(err) // can't happen
|
||||||
|
}
|
||||||
|
auditRef.table = make(map[int]*AuditRefRecord)
|
||||||
|
for i := range auditRef.Ref {
|
||||||
|
auditRef.table[auditRef.Ref[i].Code] = &(auditRef.Ref[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// AmAuditText gets the text of an audit from its code.
|
||||||
|
func AmAuditText(code int) string {
|
||||||
|
rec, ok := auditRef.table[code]
|
||||||
|
if ok {
|
||||||
|
return rec.Text
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("[audit code:%d]", code)
|
||||||
|
}
|
||||||
|
|
||||||
// AuditRecord holds an audit record instance.
|
// AuditRecord holds an audit record instance.
|
||||||
type AuditRecord struct {
|
type AuditRecord struct {
|
||||||
Record int64 `db:"record"` // audit record ID
|
Record int64 `db:"record"` // audit record ID
|
||||||
@@ -32,7 +72,8 @@ type AuditRecord struct {
|
|||||||
Data4 *string `db:"data4"` // fourth data parameter
|
Data4 *string `db:"data4"` // fourth data parameter
|
||||||
}
|
}
|
||||||
|
|
||||||
// These are the audit record types.
|
// These are the audit record types. N.B.: Keep these synchronized with the definitions in database/auditref.yaml
|
||||||
|
// at all times!
|
||||||
const (
|
const (
|
||||||
AuditPublishToFrontPage = 1
|
AuditPublishToFrontPage = 1
|
||||||
AuditLoginOK = 101
|
AuditLoginOK = 101
|
||||||
|
|||||||
@@ -0,0 +1,100 @@
|
|||||||
|
#
|
||||||
|
# Amsterdam Web Communities System
|
||||||
|
# Copyright (c) 2025-2026 Erbosoft Metaverse Design Solutions, All Rights Reserved
|
||||||
|
#
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||||
|
#
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# N.B.: Keep this synchronized with the constant definitions in
|
||||||
|
# database/audit.go at all times!
|
||||||
|
auditReference:
|
||||||
|
- code: 1
|
||||||
|
text: "Publish Message to Front Page"
|
||||||
|
- code: 101
|
||||||
|
text: "Login OK"
|
||||||
|
- code: 102
|
||||||
|
text: "Login Failure"
|
||||||
|
- code: 103
|
||||||
|
text: "Account Created"
|
||||||
|
- code: 104
|
||||||
|
text: "Verify Email OK"
|
||||||
|
- code: 105
|
||||||
|
text: "Verify Email Failure"
|
||||||
|
- code: 106
|
||||||
|
text: "Set User Contact Info"
|
||||||
|
- code: 107
|
||||||
|
text: "Resend Email Confirmation"
|
||||||
|
- code: 108
|
||||||
|
text: "Password Change"
|
||||||
|
- code: 109
|
||||||
|
text: "Admin Set User Contact Info"
|
||||||
|
- code: 110
|
||||||
|
text: "Admin Change User Password"
|
||||||
|
- code: 111
|
||||||
|
text: "Admin Change User Account"
|
||||||
|
- code: 112
|
||||||
|
text: "Admin Set Account Security"
|
||||||
|
- code: 113
|
||||||
|
text: "Admin Lock/Unlock Account"
|
||||||
|
- code: 201
|
||||||
|
text: "Create New Community"
|
||||||
|
- code: 202
|
||||||
|
text: "Set Community Membership"
|
||||||
|
- code: 203
|
||||||
|
text: "Set Community Contact Info"
|
||||||
|
- code: 204
|
||||||
|
text: "Set Community Services"
|
||||||
|
- code: 205
|
||||||
|
text: "Set Community Name"
|
||||||
|
- code: 206
|
||||||
|
text: "Set Community Alias"
|
||||||
|
- code: 207
|
||||||
|
text: "Set Community Category"
|
||||||
|
- code: 208
|
||||||
|
text: "Set Community Hiding Information"
|
||||||
|
- code: 209
|
||||||
|
text: "Set Community Members-Only Flag"
|
||||||
|
- code: 210
|
||||||
|
text: "Set Community Join Key"
|
||||||
|
- code: 211
|
||||||
|
text: "Set Community Security Levels"
|
||||||
|
- code: 212
|
||||||
|
text: "Delete Community"
|
||||||
|
- code: 301
|
||||||
|
text: "Create New Conference"
|
||||||
|
- code: 302
|
||||||
|
text: "Set Conference Security Levels"
|
||||||
|
- code: 303
|
||||||
|
text: "Set Conference Name"
|
||||||
|
- code: 304
|
||||||
|
text: "Change Conference Aliases"
|
||||||
|
- code: 305
|
||||||
|
text: "Change Conference Membership"
|
||||||
|
- code: 306
|
||||||
|
text: "Create New Topic"
|
||||||
|
- code: 307
|
||||||
|
text: "Delete Topic"
|
||||||
|
- code: 308
|
||||||
|
text: "Set Topic Frozen"
|
||||||
|
- code: 309
|
||||||
|
text: "Set Topic Archive"
|
||||||
|
- code: 310
|
||||||
|
text: "Post Message"
|
||||||
|
- code: 311
|
||||||
|
text: "Hide Message"
|
||||||
|
- code: 312
|
||||||
|
text: "Scribble Message"
|
||||||
|
- code: 313
|
||||||
|
text: "Nuke Message"
|
||||||
|
- code: 314
|
||||||
|
text: "Upload Message Attachment"
|
||||||
|
- code: 315
|
||||||
|
text: "Delete Conference"
|
||||||
|
- code: 316
|
||||||
|
text: "Move Message"
|
||||||
|
- code: 317
|
||||||
|
text: "Set Topic Sticky"
|
||||||
|
- code: 318
|
||||||
|
text: "Prune Message Attachment"
|
||||||
@@ -58,12 +58,6 @@ CREATE TABLE audit (
|
|||||||
INDEX comm_view (commid, on_date)
|
INDEX comm_view (commid, on_date)
|
||||||
);
|
);
|
||||||
|
|
||||||
# A mapping from audit type codes to descriptions.
|
|
||||||
CREATE TABLE refaudit (
|
|
||||||
type INT NOT NULL PRIMARY KEY,
|
|
||||||
descr VARCHAR(255)
|
|
||||||
);
|
|
||||||
|
|
||||||
# The user information table.
|
# The user information table.
|
||||||
CREATE TABLE users (
|
CREATE TABLE users (
|
||||||
uid INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
uid INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
||||||
@@ -452,54 +446,6 @@ GRANT INSERT, DELETE, UPDATE, SELECT, LOCK TABLES ON amsterdam.*
|
|||||||
# Constant Data Population
|
# Constant Data Population
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
# Types of audit records. This MUST be kept in sync with the constant definitions in
|
|
||||||
# com.silverwrist.venice.security.Audit!!!!
|
|
||||||
INSERT INTO refaudit (type, descr) VALUES
|
|
||||||
(1, 'Publish Message to Front Page'),
|
|
||||||
(101, 'Login OK'),
|
|
||||||
(102, 'Login Failure'),
|
|
||||||
(103, 'Account Created'),
|
|
||||||
(104, 'Verify Email OK'),
|
|
||||||
(105, 'Verify Email Failure'),
|
|
||||||
(106, 'Set User Contact Info'),
|
|
||||||
(107, 'Resend Email Confirmation'),
|
|
||||||
(108, 'Password Change'),
|
|
||||||
(109, 'Admin Set User Contact Info'),
|
|
||||||
(110, 'Admin Change User Password'),
|
|
||||||
(111, 'Admin Change User Account'),
|
|
||||||
(112, 'Admin Set Account Security'),
|
|
||||||
(113, 'Admin Lock/Unlock Account'),
|
|
||||||
(201, 'Create New Community'),
|
|
||||||
(202, 'Set Community Membership'),
|
|
||||||
(203, 'Set Community Contact Info'),
|
|
||||||
(204, 'Set Community Services'),
|
|
||||||
(205, 'Set Community Name'),
|
|
||||||
(206, 'Set Community Alias'),
|
|
||||||
(207, 'Set Community Category'),
|
|
||||||
(208, 'Set Community Hiding Information'),
|
|
||||||
(209, 'Set Community Members-Only Flag'),
|
|
||||||
(210, 'Set Community Join Key'),
|
|
||||||
(211, 'Set Community Security Levels'),
|
|
||||||
(212, 'Delete Community'),
|
|
||||||
(301, 'Create New Conference'),
|
|
||||||
(302, 'Set Conference Security Levels'),
|
|
||||||
(303, 'Set Conference Name'),
|
|
||||||
(304, 'Change Conference Aliases'),
|
|
||||||
(305, 'Change Conference Membership'),
|
|
||||||
(306, 'Create New Topic'),
|
|
||||||
(307, 'Delete Topic'),
|
|
||||||
(308, 'Set Topic Frozen'),
|
|
||||||
(309, 'Set Topic Archive'),
|
|
||||||
(310, 'Post Message'),
|
|
||||||
(311, 'Hide Message'),
|
|
||||||
(312, 'Scribble Message'),
|
|
||||||
(313, 'Nuke Message'),
|
|
||||||
(314, 'Upload Message Attachment'),
|
|
||||||
(315, 'Delete Conference'),
|
|
||||||
(316, 'Move Message'),
|
|
||||||
(317, 'Set Topic Sticky'),
|
|
||||||
(9999999, 'DUMMY');
|
|
||||||
|
|
||||||
# Populate the Category table.
|
# Populate the Category table.
|
||||||
# Source: Mozilla Open Directory Project categorization system <http://dmoz.org>;
|
# Source: Mozilla Open Directory Project categorization system <http://dmoz.org>;
|
||||||
# additional categorization from WebbMe categories
|
# additional categorization from WebbMe categories
|
||||||
|
|||||||
Reference in New Issue
Block a user