Skip to content

Commit add68d8

Browse files
committed
feat(serverHandler): add auth username into mutate log
1 parent 8d69293 commit add68d8

File tree

4 files changed

+33
-6
lines changed

4 files changed

+33
-6
lines changed

src/serverHandler/delete.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ package serverHandler
22

33
import (
44
"errors"
5+
"net/http"
56
"os"
67
)
78

8-
func (h *handler) deleteItems(fsPrefix string, files []string, aliasSubItems []os.FileInfo) bool {
9+
func (h *handler) deleteItems(authUserName, fsPrefix string, files []string, aliasSubItems []os.FileInfo, r *http.Request) bool {
910
errs := []error{}
1011

1112
for _, inputFilename := range files {
@@ -22,7 +23,9 @@ func (h *handler) deleteItems(fsPrefix string, files []string, aliasSubItems []o
2223
if containsItem(aliasSubItems, filename) {
2324
continue
2425
}
25-
err := os.RemoveAll(fsPrefix + "/" + filename)
26+
fsPath := fsPrefix + "/" + filename
27+
h.logMutate(authUserName, "delete", fsPath, r)
28+
err := os.RemoveAll(fsPath)
2629
if err != nil {
2730
errs = append(errs, err)
2831
}

src/serverHandler/log.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,27 @@ func (h *handler) logRequest(r *http.Request) {
1717
h.logger.LogAccess(payload)
1818
}
1919

20+
func (h *handler) logMutate(username, action, detail string, r *http.Request) {
21+
if !h.logger.CanLogAccess() {
22+
return
23+
}
24+
25+
buffer := bytes.NewBuffer(make([]byte, 0, LOG_BUF_SIZE))
26+
27+
buffer.WriteString(r.RemoteAddr)
28+
if len(username) > 0 {
29+
buffer.WriteString(" (")
30+
buffer.WriteString(username)
31+
buffer.WriteByte(')')
32+
}
33+
buffer.WriteByte(' ')
34+
buffer.WriteString(action)
35+
buffer.WriteString(": ")
36+
buffer.WriteString(detail)
37+
38+
h.logger.LogAccess(buffer.Bytes())
39+
}
40+
2041
func (h *handler) logUpload(username, filename, fsPath string, r *http.Request) {
2142
if !h.logger.CanLogAccess() {
2243
return

src/serverHandler/mkdir.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ package serverHandler
22

33
import (
44
"errors"
5+
"net/http"
56
"os"
67
"strings"
78
)
89

9-
func (h *handler) mkdirs(fsPrefix string, files []string, aliasSubItems []os.FileInfo) bool {
10+
func (h *handler) mkdirs(authUserName, fsPrefix string, files []string, aliasSubItems []os.FileInfo, r *http.Request) bool {
1011
errs := []error{}
1112

1213
for _, inputFilename := range files {
@@ -29,7 +30,9 @@ func (h *handler) mkdirs(fsPrefix string, files []string, aliasSubItems []os.Fil
2930
errs = append(errs, errors.New("mkdir: ignore path shadowed by alias "+filename))
3031
continue
3132
}
32-
err := os.MkdirAll(fsPrefix+"/"+filename, 0755)
33+
fsPath := fsPrefix + "/" + filename
34+
h.logMutate(authUserName, "mkdir", fsPath, r)
35+
err := os.MkdirAll(fsPath, 0755)
3336
if err != nil {
3437
errs = append(errs, err)
3538
}

src/serverHandler/mutate.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ func (h *handler) mutate(w http.ResponseWriter, r *http.Request, data *responseD
1515
}
1616
case data.IsMkdir:
1717
if data.CanMkdir && !h.errHandler.LogError(r.ParseForm()) {
18-
success = h.mkdirs(h.root+data.handlerReqPath, r.Form["name"], data.AliasSubItems)
18+
success = h.mkdirs(data.AuthUserName, h.root+data.handlerReqPath, r.Form["name"], data.AliasSubItems, r)
1919
}
2020
case data.IsDelete:
2121
if data.CanDelete && !h.errHandler.LogError(r.ParseForm()) {
22-
success = h.deleteItems(h.root+data.handlerReqPath, r.Form["name"], data.AliasSubItems)
22+
success = h.deleteItems(data.AuthUserName, h.root+data.handlerReqPath, r.Form["name"], data.AliasSubItems, r)
2323
}
2424
}
2525

0 commit comments

Comments
 (0)