♻️ Refactored event audit system
This commit is contained in:
@ -170,7 +170,7 @@ func updateUserinfo(c *fiber.Ctx) error {
|
||||
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
||||
}
|
||||
|
||||
services.AddEvent(user.ID, "profile.edit", strconv.Itoa(int(user.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "profile.edit", nil, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.InvalidAuthCacheWithUser(account.ID)
|
||||
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
@ -195,7 +195,7 @@ func updateAccountLanguage(c *fiber.Ctx) error {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
}
|
||||
|
||||
services.AddEvent(user.ID, "profile.edit.language", strconv.Itoa(int(user.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "profile.edit.language", nil, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.InvalidAuthCacheWithUser(user.ID)
|
||||
|
||||
user.Language = data.Language
|
||||
|
@ -1,8 +1,6 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
|
||||
"git.solsynth.dev/hypernet/paperclip/pkg/filekit"
|
||||
"git.solsynth.dev/hypernet/paperclip/pkg/proto"
|
||||
"git.solsynth.dev/hypernet/passport/pkg/authkit/models"
|
||||
@ -33,7 +31,7 @@ func setAvatar(c *fiber.Ctx) error {
|
||||
if err := database.C.Save(&user).Error; err != nil {
|
||||
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "profile.edit.avatar", strconv.Itoa(int(user.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "profile.edit.avatar", nil, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.InvalidAuthCacheWithUser(user.ID)
|
||||
}
|
||||
|
||||
@ -71,7 +69,7 @@ func setBanner(c *fiber.Ctx) error {
|
||||
if err := database.C.Save(&user).Error; err != nil {
|
||||
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "profile.edit.banner", strconv.Itoa(int(user.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "profile.edit.banner", nil, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.InvalidAuthCacheWithUser(user.ID)
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,6 @@ import (
|
||||
"git.solsynth.dev/hypernet/passport/pkg/internal/services"
|
||||
"git.solsynth.dev/hypernet/passport/pkg/internal/web/exts"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func listCheckInRecord(c *fiber.Ctx) error {
|
||||
@ -99,7 +98,9 @@ func doCheckIn(c *fiber.Ctx) error {
|
||||
if record, err := services.CheckIn(user); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "checkIn", strconv.Itoa(int(record.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "checkIn", map[string]any{
|
||||
"check_in_record": record,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.JSON(record)
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"git.solsynth.dev/hypernet/passport/pkg/authkit/models"
|
||||
@ -87,7 +86,9 @@ func markNotificationRead(c *fiber.Ctx) error {
|
||||
if err := database.C.Save(¬ify).Error; err != nil {
|
||||
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "notifications.mark.read", strconv.Itoa(int(notify.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "notifications.mark.read", map[string]any{
|
||||
"notification_id": notify.ID,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
}
|
||||
}
|
||||
@ -111,7 +112,9 @@ func markNotificationReadBatch(c *fiber.Ctx) error {
|
||||
Updates(&models.Notification{ReadAt: lo.ToPtr(time.Now())}).Error; err != nil {
|
||||
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "notifications.markBatch.read", strconv.Itoa(int(user.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "notifications.markBatch.read", map[string]any{
|
||||
"notification_id": data.MessageIDs,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
}
|
||||
}
|
||||
@ -127,7 +130,9 @@ func markNotificationAllRead(c *fiber.Ctx) error {
|
||||
Updates(&models.Notification{ReadAt: lo.ToPtr(time.Now())}); tx.Error != nil {
|
||||
return fiber.NewError(fiber.StatusInternalServerError, tx.Error.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "notifications.markAll.read", strconv.Itoa(int(user.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "notifications.markAll.read", map[string]any{
|
||||
"count": tx.RowsAffected,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.JSON(fiber.Map{
|
||||
"count": tx.RowsAffected,
|
||||
})
|
||||
@ -186,7 +191,9 @@ func addNotifySubscriber(c *fiber.Ctx) error {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
}
|
||||
|
||||
services.AddEvent(user.ID, "notifications.subscribe.push", data.DeviceID, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "notifications.subscribe.push", map[string]any{
|
||||
"device_id": data.DeviceID,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.JSON(subscriber)
|
||||
}
|
||||
|
||||
@ -205,6 +212,8 @@ func removeNotifySubscriber(c *fiber.Ctx) error {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
}
|
||||
|
||||
services.AddEvent(user.ID, "notifications.unsubscribe.push", device, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "notifications.unsubscribe.push", map[string]any{
|
||||
"device_id": device,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
}
|
||||
|
@ -95,7 +95,9 @@ func authorizeThirdClient(c *fiber.Ctx) error {
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "oauth.connect", client.Alias, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "oauth.connect", map[string]any{
|
||||
"client": client,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.JSON(fiber.Map{
|
||||
"ticket": ticket,
|
||||
"redirect_uri": redirect,
|
||||
@ -118,7 +120,9 @@ func authorizeThirdClient(c *fiber.Ctx) error {
|
||||
} else if access, refresh, err := services.GetToken(ticket); err != nil {
|
||||
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "oauth.connect", client.Alias, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "oauth.connect", map[string]any{
|
||||
"client": client,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.JSON(fiber.Map{
|
||||
"access_token": access,
|
||||
"refresh_token": refresh,
|
||||
|
@ -36,7 +36,10 @@ func updateAuthPreference(c *fiber.Ctx) error {
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "preferences.edit", "auth", c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "preferences.edit", map[string]any{
|
||||
"type": "auth",
|
||||
"preferences": data,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
}
|
||||
|
||||
return c.JSON(cfg.Config.Data())
|
||||
@ -73,7 +76,10 @@ func updateNotificationPreference(c *fiber.Ctx) error {
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "preferences.edit", "notifications", c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "preferences.edit", map[string]any{
|
||||
"type": "notify",
|
||||
"preferences": data,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
}
|
||||
|
||||
return c.JSON(notification)
|
||||
|
@ -1,8 +1,6 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
|
||||
"git.solsynth.dev/hypernet/passport/pkg/authkit/models"
|
||||
"git.solsynth.dev/hypernet/passport/pkg/internal/database"
|
||||
"git.solsynth.dev/hypernet/passport/pkg/internal/services"
|
||||
@ -88,7 +86,9 @@ func createRealm(c *fiber.Ctx) error {
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "realms.new", strconv.Itoa(int(realm.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "realms.new", map[string]any{
|
||||
"realm": realm,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
}
|
||||
|
||||
return c.JSON(realm)
|
||||
@ -138,7 +138,9 @@ func editRealm(c *fiber.Ctx) error {
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "realms.edit", strconv.Itoa(int(realm.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "realms.edit", map[string]any{
|
||||
"realm": realm,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
}
|
||||
|
||||
return c.JSON(realm)
|
||||
@ -162,7 +164,9 @@ func deleteRealm(c *fiber.Ctx) error {
|
||||
if err := services.DeleteRealm(realm); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "realms.delete", strconv.Itoa(int(realm.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "realms.delete", map[string]any{
|
||||
"realm": realm,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
}
|
||||
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
|
@ -87,7 +87,9 @@ func editRelationship(c *fiber.Ctx) error {
|
||||
if friendship, err := services.EditRelationship(relationship); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "relationships.edit", strconv.Itoa(int(relationship.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "relationships.edit", map[string]any{
|
||||
"relationship": relationship,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.JSON(friendship)
|
||||
}
|
||||
}
|
||||
@ -111,7 +113,9 @@ func deleteRelationship(c *fiber.Ctx) error {
|
||||
if err := services.DeleteRelationship(relationship); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "relationships.delete", strconv.Itoa(int(relationship.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "relationships.delete", map[string]any{
|
||||
"relationship": relationship,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.JSON(relationship)
|
||||
}
|
||||
}
|
||||
@ -149,7 +153,9 @@ func makeFriendship(c *fiber.Ctx) error {
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "relationships.friends.new", strconv.Itoa(int(related.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "relationships.friends.new", map[string]any{
|
||||
"related": related,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.JSON(friend)
|
||||
}
|
||||
}
|
||||
@ -185,7 +191,9 @@ func makeBlockship(c *fiber.Ctx) error {
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "relationships.blocks.new", strconv.Itoa(int(related.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "relationships.blocks.new", map[string]any{
|
||||
"related": related,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.JSON(friend)
|
||||
}
|
||||
}
|
||||
@ -205,7 +213,9 @@ func acceptFriend(c *fiber.Ctx) error {
|
||||
if err := services.HandleFriend(user, related, true); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "relationships.friends.accept", strconv.Itoa(relatedId), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "relationships.friends.accept", map[string]any{
|
||||
"related": related,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
}
|
||||
}
|
||||
@ -225,7 +235,9 @@ func declineFriend(c *fiber.Ctx) error {
|
||||
if err := services.HandleFriend(user, related, false); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "relationships.friends.decline", strconv.Itoa(relatedId), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "relationships.friends.decline", map[string]any{
|
||||
"related": related,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ package api
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"git.solsynth.dev/hypernet/passport/pkg/authkit/models"
|
||||
@ -91,7 +90,9 @@ func setStatus(c *fiber.Ctx) error {
|
||||
if status, err := services.NewStatus(user, status); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "statuses.set", strconv.Itoa(int(status.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "statuses.set", map[string]any{
|
||||
"status": status,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.JSON(status)
|
||||
}
|
||||
}
|
||||
@ -130,7 +131,9 @@ func editStatus(c *fiber.Ctx) error {
|
||||
if status, err := services.EditStatus(user, status); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "statuses.edit", strconv.Itoa(int(status.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "statuses.edit", map[string]any{
|
||||
"status": status,
|
||||
}, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
return c.JSON(status)
|
||||
}
|
||||
}
|
||||
@ -144,7 +147,7 @@ func clearStatus(c *fiber.Ctx) error {
|
||||
if err := services.ClearStatus(user); err != nil {
|
||||
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
||||
} else {
|
||||
services.AddEvent(user.ID, "statuses.clear", strconv.Itoa(int(user.ID)), c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
services.AddEvent(user.ID, "statuses.clear", nil, c.IP(), c.Get(fiber.HeaderUserAgent))
|
||||
}
|
||||
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
|
Reference in New Issue
Block a user