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  }