github.com/kotovmak/go-admin@v1.1.1/plugins/admin/controller/operation.go (about) 1 package controller 2 3 import ( 4 "encoding/json" 5 6 "github.com/kotovmak/go-admin/context" 7 "github.com/kotovmak/go-admin/modules/config" 8 "github.com/kotovmak/go-admin/plugins/admin/models" 9 "github.com/kotovmak/go-admin/plugins/admin/modules/constant" 10 "github.com/kotovmak/go-admin/plugins/admin/modules/response" 11 ) 12 13 func (h *Handler) Operation(ctx *context.Context) { 14 id := ctx.Query("__goadmin_op_id") 15 if !h.OperationHandler(config.Url("/operation/"+id), ctx) { 16 errMsg := "not found" 17 if ctx.Headers(constant.PjaxHeader) == "" && ctx.Method() != "GET" { 18 response.BadRequest(ctx, errMsg) 19 } else { 20 response.Alert(ctx, errMsg, errMsg, errMsg, h.conn, h.navButtons) 21 } 22 return 23 } 24 } 25 26 // RecordOperationLog record all operation logs, store into database. 27 func (h *Handler) RecordOperationLog(ctx *context.Context) { 28 if user, ok := ctx.UserValue["user"].(models.UserModel); ok { 29 var input []byte 30 form := ctx.Request.MultipartForm 31 if form != nil { 32 input, _ = json.Marshal((*form).Value) 33 } 34 f := ctx.Request.PostForm 35 if f != nil { 36 input, _ = json.Marshal(f) 37 } 38 39 models.OperationLog().SetConn(h.conn).New(user.Id, ctx.Path(), ctx.Method(), ctx.LocalIP(), string(input)) 40 } 41 }