本文整理匯總了Golang中github.com/eirka/eirka-libs/audit.Audit.Submit方法的典型用法代碼示例。如果您正苦於以下問題:Golang Audit.Submit方法的具體用法?Golang Audit.Submit怎麽用?Golang Audit.Submit使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/eirka/eirka-libs/audit.Audit
的用法示例。
在下文中一共展示了Audit.Submit方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: CloseThreadController
// CloseThreadController will toggle a threads close bool
func CloseThreadController(c *gin.Context) {
// Get parameters from validate middleware
params := c.MustGet("params").([]uint)
// get userdata from user middleware
userdata := c.MustGet("userdata").(user.User)
if !c.MustGet("protected").(bool) {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(e.ErrInternalError).SetMeta("CloseThreadController.protected")
return
}
// Initialize model struct
m := &models.CloseModel{
Ib: params[0],
ID: params[1],
}
// Check the record id and get further info
err := m.Status()
if err == e.ErrNotFound {
c.JSON(e.ErrorMessage(e.ErrNotFound))
c.Error(err).SetMeta("CloseThreadController.Status")
return
} else if err != nil {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(err).SetMeta("CloseThreadController.Status")
return
}
// toggle status
err = m.Toggle()
if err != nil {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(err).SetMeta("CloseThreadController.Toggle")
return
}
// Delete redis stuff
indexKey := fmt.Sprintf("%s:%d", "index", m.Ib)
directoryKey := fmt.Sprintf("%s:%d", "directory", m.Ib)
threadKey := fmt.Sprintf("%s:%d:%d", "thread", m.Ib, m.ID)
err = redis.Cache.Delete(indexKey, directoryKey, threadKey)
if err != nil {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(err).SetMeta("CloseThreadController.redis.Cache.Delete")
return
}
var successMessage string
// change response message depending on bool state
if m.Closed {
successMessage = audit.AuditOpenThread
} else {
successMessage = audit.AuditCloseThread
}
// response message
c.JSON(http.StatusOK, gin.H{"success_message": successMessage})
// audit log
audit := audit.Audit{
User: userdata.ID,
Ib: m.Ib,
Type: audit.ModLog,
IP: c.ClientIP(),
Action: successMessage,
Info: fmt.Sprintf("%s", m.Name),
}
// submit audit
err = audit.Submit()
if err != nil {
c.Error(err).SetMeta("CloseThreadController.audit.Submit")
}
return
}
示例2: DeleteTagController
// DeleteTagController will delete a tag
func DeleteTagController(c *gin.Context) {
// Get parameters from validate middleware
params := c.MustGet("params").([]uint)
// get userdata from user middleware
userdata := c.MustGet("userdata").(user.User)
if !c.MustGet("protected").(bool) {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(e.ErrInternalError).SetMeta("DeleteTagController.protected")
return
}
// Initialize model struct
m := &models.DeleteTagModel{
Ib: params[0],
ID: params[1],
}
// Check the record id and get further info
err := m.Status()
if err == e.ErrNotFound {
c.JSON(e.ErrorMessage(e.ErrNotFound))
c.Error(err).SetMeta("DeleteTagController.Status")
return
} else if err != nil {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(err).SetMeta("DeleteTagController.Status")
return
}
// Delete data
err = m.Delete()
if err != nil {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(err).SetMeta("DeleteTagController.Delete")
return
}
// Delete redis stuff
tagsKey := fmt.Sprintf("%s:%d", "tags", m.Ib)
tagKey := fmt.Sprintf("%s:%d:%d", "tag", m.Ib, m.ID)
imageKey := fmt.Sprintf("%s:%d", "image", m.Ib)
err = redis.Cache.Delete(tagsKey, tagKey, imageKey)
if err != nil {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(err).SetMeta("DeleteTagController.redis.Cache.Delete")
return
}
// response message
c.JSON(http.StatusOK, gin.H{"success_message": audit.AuditDeleteTag})
// audit log
audit := audit.Audit{
User: userdata.ID,
Ib: m.Ib,
Type: audit.ModLog,
IP: c.ClientIP(),
Action: audit.AuditDeleteTag,
Info: fmt.Sprintf("%s", m.Name),
}
// submit audit
err = audit.Submit()
if err != nil {
c.Error(err).SetMeta("DeleteTagController.audit.Submit")
}
return
}
示例3: BanIPController
// BanIPController will ban an ip
func BanIPController(c *gin.Context) {
var err error
var bif banIPForm
// Get parameters from validate middleware
params := c.MustGet("params").([]uint)
// get userdata from user middleware
userdata := c.MustGet("userdata").(user.User)
if !c.MustGet("protected").(bool) {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(e.ErrInternalError).SetMeta("BanIpController.protected")
return
}
err = c.Bind(&bif)
if err != nil {
c.JSON(e.ErrorMessage(e.ErrInvalidParam))
c.Error(err).SetMeta("BanIpController.Bind")
return
}
// Initialize model struct
m := &models.BanIPModel{
Ib: params[0],
Thread: params[1],
ID: params[2],
User: userdata.ID,
Reason: bif.Reason,
}
// Check the record id and get further info
err = m.Status()
if err == e.ErrNotFound {
c.JSON(e.ErrorMessage(e.ErrNotFound))
c.Error(err).SetMeta("BanIpController.Status")
return
} else if err != nil {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(err).SetMeta("BanIpController.Status")
return
}
// add ban to database
err = m.Post()
if err != nil {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(err).SetMeta("BanIpController.Post")
return
}
// ban the ip in cloudflare
go u.CloudFlareBanIP(m.IP, m.Reason)
// response message
c.JSON(http.StatusOK, gin.H{"success_message": audit.AuditBanIP})
// audit log
audit := audit.Audit{
User: userdata.ID,
Ib: m.Ib,
Type: audit.ModLog,
IP: c.ClientIP(),
Action: audit.AuditBanIP,
Info: fmt.Sprintf("%s", m.Reason),
}
// submit audit
err = audit.Submit()
if err != nil {
c.Error(err).SetMeta("BanIpController.audit.Submit")
}
return
}
示例4: ResetPasswordController
// ResetPasswordController will reset an ip
func ResetPasswordController(c *gin.Context) {
var err error
var rpf resetPasswordForm
// Get parameters from validate middleware
params := c.MustGet("params").([]uint)
// get userdata from user middleware
userdata := c.MustGet("userdata").(user.User)
if !c.MustGet("protected").(bool) {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(e.ErrInternalError).SetMeta("ResetPasswordController.protected")
return
}
err = c.Bind(&rpf)
if err != nil {
c.JSON(e.ErrorMessage(e.ErrInvalidParam))
c.Error(err).SetMeta("ResetPasswordController.Bind")
return
}
// generate a random password
password, hash, err := user.RandomPassword()
if err != nil {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(err).SetMeta("ResetPasswordController.RandomPassword")
return
}
// update the password in the database
err = user.UpdatePassword(hash, rpf.UID)
if err != nil {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(err).SetMeta("ResetPasswordController.UpdatePassword")
return
}
// response message
c.JSON(http.StatusOK, gin.H{"success_message": audit.AuditResetPassword, "password": password})
// audit log
audit := audit.Audit{
User: userdata.ID,
Ib: params[0],
Type: audit.UserLog,
IP: c.ClientIP(),
Action: audit.AuditResetPassword,
Info: fmt.Sprintf("%d", rpf.UID),
}
// submit audit
err = audit.Submit()
if err != nil {
c.Error(err).SetMeta("ResetPasswordController.audit.Submit")
}
return
}
示例5: UpdateTagController
// UpdateTagController will update a tags properties
func UpdateTagController(c *gin.Context) {
var err error
var utf updateTagForm
// Get parameters from validate middleware
params := c.MustGet("params").([]uint)
// get userdata from user middleware
userdata := c.MustGet("userdata").(user.User)
if !c.MustGet("protected").(bool) {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(e.ErrInternalError).SetMeta("UpdateTagController.protected")
return
}
err = c.Bind(&utf)
if err != nil {
c.JSON(e.ErrorMessage(e.ErrInvalidParam))
c.Error(err).SetMeta("UpdateTagController.Bind")
return
}
// Set parameters to UpdateTagModel
m := models.UpdateTagModel{
Ib: params[0],
ID: utf.ID,
Tag: utf.Tag,
TagType: utf.Type,
}
// Validate input parameters
err = m.ValidateInput()
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error_message": err.Error()})
c.Error(err).SetMeta("UpdateTagController.ValidateInput")
return
}
// Check tag for duplicate
err = m.Status()
if err == e.ErrDuplicateTag {
c.JSON(http.StatusBadRequest, gin.H{"error_message": err.Error()})
c.Error(err).SetMeta("UpdateTagController.Status")
return
} else if err != nil {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(err).SetMeta("UpdateTagController.Status")
return
}
// Update data
err = m.Update()
if err != nil {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(err).SetMeta("UpdateTagController.Update")
return
}
// Delete redis stuff
tagsKey := fmt.Sprintf("%s:%d", "tags", m.Ib)
tagKey := fmt.Sprintf("%s:%d:%d", "tag", m.Ib, m.ID)
imageKey := fmt.Sprintf("%s:%d", "image", m.Ib)
err = redis.Cache.Delete(tagsKey, tagKey, imageKey)
if err != nil {
c.JSON(e.ErrorMessage(e.ErrInternalError))
c.Error(err).SetMeta("UpdateTagController.redis.Cache.Delete")
return
}
// response message
c.JSON(http.StatusOK, gin.H{"success_message": audit.AuditUpdateTag})
// audit log
audit := audit.Audit{
User: userdata.ID,
Ib: m.Ib,
Type: audit.ModLog,
IP: c.ClientIP(),
Action: audit.AuditUpdateTag,
Info: fmt.Sprintf("%s", m.Tag),
}
// submit audit
err = audit.Submit()
if err != nil {
c.Error(err).SetMeta("UpdateTagController.audit.Submit")
}
return
}