Compare commits

...

2 Commits

Author SHA1 Message Date
742edaa9e2 🐛 Fix set avatar cause group permission leaked to personal 2025-03-25 21:48:51 +08:00
9712119238 🐛 Fix charging for programs 2025-03-25 21:43:49 +08:00
4 changed files with 9 additions and 14 deletions

View File

@ -82,15 +82,14 @@ func ChargeForProgram(member models.ProgramMember) error {
func PeriodicChargeProgramFee() { func PeriodicChargeProgramFee() {
var members []models.ProgramMember var members []models.ProgramMember
if err := database.C.Preload("Program").Find(&members).Error; err != nil { // Every month paid once
if err := database.C.Where("last_paid IS NULL OR last_paid < ?", time.Now().AddDate(0, 0, -30)).
Preload("Program").Find(&members).Error; err != nil {
return return
} }
for _, member := range members { for _, member := range members {
// every month paid once if err := ChargeForProgram(member); err == nil {
if member.LastPaid == nil || time.Since(*member.LastPaid) < time.Hour*24*30 { database.C.Model(&member).Update("last_paid", time.Now())
if err := ChargeForProgram(member); err == nil {
database.C.Model(&member).Update("last_paid", time.Now())
}
} }
} }
} }

View File

@ -113,7 +113,7 @@ func getUserinfo(c *fiber.Ctx) error {
return c.JSON(resp) return c.JSON(resp)
} }
func updateUserinfo(c *fiber.Ctx) error { func editUserinfo(c *fiber.Ctx) error {
if err := exts.EnsureAuthenticated(c); err != nil { if err := exts.EnsureAuthenticated(c); err != nil {
return err return err
} }

View File

@ -26,9 +26,7 @@ func setAvatar(c *fiber.Ctx) error {
} }
og := user.Avatar og := user.Avatar
user.Avatar = &data.AttachmentID if err := database.C.Model(&user).Update("avatar", data.AttachmentID).Error; err != nil {
if err := database.C.Save(&user).Error; err != nil {
return fiber.NewError(fiber.StatusInternalServerError, err.Error()) return fiber.NewError(fiber.StatusInternalServerError, err.Error())
} else { } else {
services.AddEvent(user.ID, "profile.edit.avatar", nil, c.IP(), c.Get(fiber.HeaderUserAgent)) services.AddEvent(user.ID, "profile.edit.avatar", nil, c.IP(), c.Get(fiber.HeaderUserAgent))
@ -64,9 +62,7 @@ func setBanner(c *fiber.Ctx) error {
} }
og := user.Banner og := user.Banner
user.Banner = &data.AttachmentID if err := database.C.Model(&user).Update("banner", data.AttachmentID).Error; err != nil {
if err := database.C.Save(&user).Error; err != nil {
return fiber.NewError(fiber.StatusInternalServerError, err.Error()) return fiber.NewError(fiber.StatusInternalServerError, err.Error())
} else { } else {
services.AddEvent(user.ID, "profile.edit.banner", nil, c.IP(), c.Get(fiber.HeaderUserAgent)) services.AddEvent(user.ID, "profile.edit.banner", nil, c.IP(), c.Get(fiber.HeaderUserAgent))

View File

@ -67,7 +67,7 @@ func MapControllers(app *fiber.App, baseURL string) {
me.Get("/", getUserinfo) me.Get("/", getUserinfo)
me.Get("/oidc", getUserinfoForOidc) me.Get("/oidc", getUserinfoForOidc)
me.Put("/", updateUserinfo) me.Put("/", editUserinfo)
me.Put("/language", updateAccountLanguage) me.Put("/language", updateAccountLanguage)
me.Get("/events", getEvents) me.Get("/events", getEvents)
me.Get("/tickets", getTickets) me.Get("/tickets", getTickets)