-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaudit.go
72 lines (59 loc) · 1.23 KB
/
audit.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package audit
import (
"time"
)
var (
_auditer Auditer
)
func init() {
_auditer = newDefaultAudit()
}
const (
FAILED = 0
SUCCESS = 1
)
type Event struct {
Namespace string `db:"namespace"`
TargetID string `db:"target_id"`
Action string `db:"action"`
Actor string `db:"actor"`
Message string `db:"message"`
State int `db:"state"`
ClientIP string `db:"client_ip"`
CreatedAt *time.Time `db:"created_at"`
}
type ReadLogOption struct {
Namespace string
TargetID string
Action string
Actor string
State int
StartTime *time.Time
EndTime *time.Time
Limit int
Offset int
}
type Auditer interface {
Log(event *Event) error
ReadLog(option *ReadLogOption) ([]*Event, error)
TotalCount(option *ReadLogOption) (int, error)
}
type DefaultAudit struct {
}
func newDefaultAudit() *DefaultAudit {
return &DefaultAudit{}
}
func NewReadLogOption() *ReadLogOption {
option := ReadLogOption{}
option.State = -1
return &option
}
func (da *DefaultAudit) Log(event *Event) error {
return nil
}
func (da *DefaultAudit) ReadLog(option *ReadLogOption) ([]*Event, error) {
return nil, nil
}
func (da *DefaultAudit) TotalCount(option *ReadLogOption) (int, error) {
return 0, nil
}