🛂 Authorized required to access large file

This commit is contained in:
2025-03-30 22:29:45 +08:00
parent 35e4f9a9ad
commit 370ee84b34
4 changed files with 34 additions and 16 deletions

View File

@@ -4,6 +4,7 @@ import (
"fmt"
"strings"
"github.com/samber/lo"
"github.com/spf13/viper"
"git.solsynth.dev/hypernet/nexus/pkg/nex/sec"
@@ -40,10 +41,21 @@ func openAttachment(c *fiber.Ctx) error {
var err error
var url, mimetype string
var filesize int64
size := lo.Ternary(c.QueryBool("preview", true), 1024, -1)
if len(region) > 0 {
url, mimetype, err = services.OpenAttachmentByRID(id, c.QueryBool("preview", true), region)
url, filesize, mimetype, err = services.OpenAttachmentByRID(id, size, region)
} else {
url, mimetype, err = services.OpenAttachmentByRID(id, c.QueryBool("preview", true))
url, filesize, mimetype, err = services.OpenAttachmentByRID(id, size)
}
authenticated := false
if err := sec.EnsureAuthenticated(c); err == nil {
authenticated = true
}
if filesize > viper.GetInt64("traffic.maximum_size") && !authenticated {
return fiber.NewError(fiber.StatusForbidden, "file is too large, you need authorized to access")
}
if err != nil {