From e3ab241d7f34dc71a6b645b3abed3305da795b7f Mon Sep 17 00:00:00 2001 From: DaneEveritt Date: Sun, 24 Jul 2022 17:12:47 -0400 Subject: [PATCH] Track file upload activity --- router/router_server_files.go | 7 ++++++- router/tokens/upload.go | 1 + server/activity.go | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/router/router_server_files.go b/router/router_server_files.go index 6531931..52d125d 100644 --- a/router/router_server_files.go +++ b/router/router_server_files.go @@ -3,6 +3,7 @@ package router import ( "bufio" "context" + "github.com/pterodactyl/wings/internal/models" "io" "mime/multipart" "net/http" @@ -600,6 +601,11 @@ func postServerUploadFiles(c *gin.Context) { if err := handleFileUpload(p, s, header); err != nil { NewServerError(err, s).Abort(c) return + } else { + s.SaveActivity(s.NewRequestActivity(token.UserUuid, c.Request.RemoteAddr), server.ActivityFileUploaded, models.ActivityMeta{ + "file": header.Filename, + "directory": filepath.Clean(directory), + }) } } } @@ -617,6 +623,5 @@ func handleFileUpload(p string, s *server.Server, header *multipart.FileHeader) if err := s.Filesystem().Writefile(p, file); err != nil { return err } - return nil } diff --git a/router/tokens/upload.go b/router/tokens/upload.go index 5321fea..4fb3b1c 100644 --- a/router/tokens/upload.go +++ b/router/tokens/upload.go @@ -8,6 +8,7 @@ type UploadPayload struct { jwt.Payload ServerUuid string `json:"server_uuid"` + UserUuid string `json:"user_uuid"` UniqueId string `json:"unique_id"` } diff --git a/server/activity.go b/server/activity.go index 0c9ddbc..fffb38e 100644 --- a/server/activity.go +++ b/server/activity.go @@ -17,6 +17,7 @@ const ( ActivitySftpCreateDirectory = models.Event("server:sftp.create-directory") ActivitySftpRename = models.Event("server:sftp.rename") ActivitySftpDelete = models.Event("server:sftp.delete") + ActivityFileUploaded = models.Event("server:file.uploaded") ) // RequestActivity is a wrapper around a LoggedEvent that is able to track additional request