diff --git a/api/_routers/97-optional-access-token.go b/api/_routers/97-optional-access-token.go index 5735d6eb..8830ac50 100644 --- a/api/_routers/97-optional-access-token.go +++ b/api/_routers/97-optional-access-token.go @@ -6,9 +6,9 @@ import ( "github.com/getsentry/sentry-go" "github.com/sirupsen/logrus" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_auth_cache" "github.com/t2bot/matrix-media-repo/api/_responses" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/common/config" "github.com/t2bot/matrix-media-repo/common/rcontext" "github.com/t2bot/matrix-media-repo/matrix" @@ -19,7 +19,7 @@ func OptionalAccessToken(generator GeneratorWithUserFn) GeneratorFn { return func(r *http.Request, ctx rcontext.RequestContext) interface{} { accessToken := util.GetAccessTokenFromRequest(r) if accessToken == "" { - return generator(r, ctx, _apimeta.UserInfo{ + return generator(r, ctx, apimeta.UserInfo{ UserId: "", AccessToken: "", IsShared: false, @@ -27,7 +27,7 @@ func OptionalAccessToken(generator GeneratorWithUserFn) GeneratorFn { } if config.Get().SharedSecret.Enabled && accessToken == config.Get().SharedSecret.Token { ctx = ctx.LogWithFields(logrus.Fields{"sharedSecretAuth": true}) - return generator(r, ctx, _apimeta.UserInfo{ + return generator(r, ctx, apimeta.UserInfo{ UserId: "@sharedsecret", AccessToken: accessToken, IsShared: true, @@ -47,7 +47,7 @@ func OptionalAccessToken(generator GeneratorWithUserFn) GeneratorFn { } ctx = ctx.LogWithFields(logrus.Fields{"authUserId": userId}) - return generator(r, ctx, _apimeta.UserInfo{ + return generator(r, ctx, apimeta.UserInfo{ UserId: userId, AccessToken: accessToken, IsShared: false, diff --git a/api/_routers/97-require-access-token.go b/api/_routers/97-require-access-token.go index 995071a7..081f5d7e 100644 --- a/api/_routers/97-require-access-token.go +++ b/api/_routers/97-require-access-token.go @@ -6,9 +6,9 @@ import ( "github.com/getsentry/sentry-go" "github.com/sirupsen/logrus" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_auth_cache" "github.com/t2bot/matrix-media-repo/api/_responses" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/common" "github.com/t2bot/matrix-media-repo/common/config" "github.com/t2bot/matrix-media-repo/common/rcontext" @@ -16,7 +16,7 @@ import ( "github.com/t2bot/matrix-media-repo/util" ) -type GeneratorWithUserFn = func(r *http.Request, ctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} +type GeneratorWithUserFn = func(r *http.Request, ctx rcontext.RequestContext, user apimeta.UserInfo) interface{} func RequireAccessToken(generator GeneratorWithUserFn) GeneratorFn { return func(r *http.Request, ctx rcontext.RequestContext) interface{} { @@ -30,7 +30,7 @@ func RequireAccessToken(generator GeneratorWithUserFn) GeneratorFn { } if config.Get().SharedSecret.Enabled && accessToken == config.Get().SharedSecret.Token { ctx = ctx.LogWithFields(logrus.Fields{"sharedSecretAuth": true}) - return generator(r, ctx, _apimeta.UserInfo{ + return generator(r, ctx, apimeta.UserInfo{ UserId: "@sharedsecret", AccessToken: accessToken, IsShared: true, @@ -51,7 +51,7 @@ func RequireAccessToken(generator GeneratorWithUserFn) GeneratorFn { } ctx = ctx.LogWithFields(logrus.Fields{"authUserId": userId}) - return generator(r, ctx, _apimeta.UserInfo{ + return generator(r, ctx, apimeta.UserInfo{ UserId: userId, AccessToken: accessToken, IsShared: false, diff --git a/api/_routers/97-require-repo-admin.go b/api/_routers/97-require-repo-admin.go index 25b93baa..d5044255 100644 --- a/api/_routers/97-require-repo-admin.go +++ b/api/_routers/97-require-repo-admin.go @@ -4,15 +4,15 @@ import ( "net/http" "github.com/sirupsen/logrus" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/common/rcontext" "github.com/t2bot/matrix-media-repo/util" ) func RequireRepoAdmin(generator GeneratorWithUserFn) GeneratorFn { return func(r *http.Request, ctx rcontext.RequestContext) interface{} { - return RequireAccessToken(func(r *http.Request, ctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { + return RequireAccessToken(func(r *http.Request, ctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { if user.UserId == "" { logrus.Error("safety check failed: Repo admin access check received empty user ID") return _responses.AuthFailed() diff --git a/api/_apimeta/auth.go b/api/apimeta/auth.go similarity index 97% rename from api/_apimeta/auth.go rename to api/apimeta/auth.go index 5bd5dfd6..7690ec62 100644 --- a/api/_apimeta/auth.go +++ b/api/apimeta/auth.go @@ -1,4 +1,4 @@ -package _apimeta +package apimeta import ( "net/http" diff --git a/api/custom/datastores.go b/api/custom/datastores.go index e96b1b1c..ed9ef394 100644 --- a/api/custom/datastores.go +++ b/api/custom/datastores.go @@ -8,9 +8,9 @@ import ( "time" "github.com/getsentry/sentry-go" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" "github.com/t2bot/matrix-media-repo/api/_routers" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/common/config" "github.com/t2bot/matrix-media-repo/datastores" "github.com/t2bot/matrix-media-repo/tasks" @@ -24,7 +24,7 @@ type DatastoreMigration struct { TaskID int `json:"task_id"` } -func GetDatastores(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func GetDatastores(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { response := make(map[string]interface{}) for _, store := range config.UniqueDatastores() { uri, err := datastores.GetUri(store) @@ -42,7 +42,7 @@ func GetDatastores(r *http.Request, rctx rcontext.RequestContext, user _apimeta. return &_responses.DoNotCacheResponse{Payload: response} } -func MigrateBetweenDatastores(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func MigrateBetweenDatastores(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { beforeTsStr := r.URL.Query().Get("before_ts") beforeTs := time.Now().UnixMilli() var err error @@ -95,7 +95,7 @@ func MigrateBetweenDatastores(r *http.Request, rctx rcontext.RequestContext, use return &_responses.DoNotCacheResponse{Payload: migration} } -func GetDatastoreStorageEstimate(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func GetDatastoreStorageEstimate(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { beforeTsStr := r.URL.Query().Get("before_ts") beforeTs := time.Now().UnixMilli() var err error diff --git a/api/custom/exports.go b/api/custom/exports.go index 6fd71c8d..b8c4a1d4 100644 --- a/api/custom/exports.go +++ b/api/custom/exports.go @@ -7,9 +7,9 @@ import ( "strconv" "github.com/getsentry/sentry-go" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" "github.com/t2bot/matrix-media-repo/api/_routers" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/database" "github.com/t2bot/matrix-media-repo/datastores" "github.com/t2bot/matrix-media-repo/tasks" @@ -38,7 +38,7 @@ type ExportMetadata struct { Parts []*ExportPartMetadata `json:"parts"` } -func ExportUserData(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func ExportUserData(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { if !rctx.Config.Archiving.Enabled { return _responses.BadRequest(errors.New("archiving is not enabled")) } @@ -73,7 +73,7 @@ func ExportUserData(r *http.Request, rctx rcontext.RequestContext, user _apimeta }} } -func ExportServerData(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func ExportServerData(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { if !rctx.Config.Archiving.Enabled { return _responses.BadRequest(errors.New("archiving is not enabled")) } @@ -122,7 +122,7 @@ func ExportServerData(r *http.Request, rctx rcontext.RequestContext, user _apime }} } -func ViewExport(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func ViewExport(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { if !rctx.Config.Archiving.Enabled { return _responses.BadRequest(errors.New("archiving is not enabled")) } @@ -190,7 +190,7 @@ func ViewExport(r *http.Request, rctx rcontext.RequestContext, user _apimeta.Use return &_responses.HtmlResponse{HTML: html.String()} } -func GetExportMetadata(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func GetExportMetadata(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { if !rctx.Config.Archiving.Enabled { return _responses.BadRequest(errors.New("archiving is not enabled")) } @@ -237,7 +237,7 @@ func GetExportMetadata(r *http.Request, rctx rcontext.RequestContext, user _apim return &_responses.DoNotCacheResponse{Payload: metadata} } -func DownloadExportPart(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func DownloadExportPart(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { if !rctx.Config.Archiving.Enabled { return _responses.BadRequest(errors.New("archiving is not enabled")) } @@ -293,7 +293,7 @@ func DownloadExportPart(r *http.Request, rctx rcontext.RequestContext, user _api } } -func DeleteExport(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func DeleteExport(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { if !rctx.Config.Archiving.Enabled { return _responses.BadRequest(errors.New("archiving is not enabled")) } diff --git a/api/custom/federation.go b/api/custom/federation.go index f0b51eae..3ff69160 100644 --- a/api/custom/federation.go +++ b/api/custom/federation.go @@ -6,16 +6,16 @@ import ( "net/http" "github.com/getsentry/sentry-go" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" "github.com/t2bot/matrix-media-repo/api/_routers" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/sirupsen/logrus" "github.com/t2bot/matrix-media-repo/common/rcontext" "github.com/t2bot/matrix-media-repo/matrix" ) -func GetFederationInfo(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func GetFederationInfo(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { serverName := _routers.GetParam("serverName", r) if !_routers.ServerNameRegex.MatchString(serverName) { diff --git a/api/custom/health.go b/api/custom/health.go index ac4780d8..fe35d86b 100644 --- a/api/custom/health.go +++ b/api/custom/health.go @@ -3,8 +3,8 @@ package custom import ( "net/http" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/common/rcontext" ) @@ -13,7 +13,7 @@ type HealthzResponse struct { Status string `json:"status"` } -func GetHealthz(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func GetHealthz(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { return &_responses.DoNotCacheResponse{ Payload: &HealthzResponse{ OK: true, diff --git a/api/custom/imports.go b/api/custom/imports.go index 50edfe0e..5aa52f4f 100644 --- a/api/custom/imports.go +++ b/api/custom/imports.go @@ -5,9 +5,9 @@ import ( "net/http" "github.com/getsentry/sentry-go" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" "github.com/t2bot/matrix-media-repo/api/_routers" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/common" "github.com/t2bot/matrix-media-repo/tasks" "github.com/t2bot/matrix-media-repo/tasks/task_runner" @@ -21,7 +21,7 @@ type ImportStarted struct { TaskID int `json:"task_id"` } -func StartImport(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func StartImport(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { if !rctx.Config.Archiving.Enabled { return _responses.BadRequest(errors.New("archiving is not enabled")) } @@ -49,7 +49,7 @@ func StartImport(r *http.Request, rctx rcontext.RequestContext, user _apimeta.Us }} } -func AppendToImport(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func AppendToImport(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { if !rctx.Config.Archiving.Enabled { return _responses.BadRequest(errors.New("archiving is not enabled")) } @@ -76,7 +76,7 @@ func AppendToImport(r *http.Request, rctx rcontext.RequestContext, user _apimeta return &_responses.DoNotCacheResponse{Payload: &_responses.EmptyResponse{}} } -func StopImport(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func StopImport(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { if !rctx.Config.Archiving.Enabled { return _responses.BadRequest(errors.New("archiving is not enabled")) } diff --git a/api/custom/media_attributes.go b/api/custom/media_attributes.go index a31a884d..27a40601 100644 --- a/api/custom/media_attributes.go +++ b/api/custom/media_attributes.go @@ -7,9 +7,9 @@ import ( "github.com/getsentry/sentry-go" "github.com/sirupsen/logrus" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" "github.com/t2bot/matrix-media-repo/api/_routers" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/common/rcontext" "github.com/t2bot/matrix-media-repo/database" "github.com/t2bot/matrix-media-repo/matrix" @@ -20,7 +20,7 @@ type Attributes struct { Purpose database.Purpose `json:"purpose"` } -func canChangeAttributes(rctx rcontext.RequestContext, r *http.Request, origin string, user _apimeta.UserInfo) bool { +func canChangeAttributes(rctx rcontext.RequestContext, r *http.Request, origin string, user apimeta.UserInfo) bool { isGlobalAdmin := util.IsGlobalAdmin(user.UserId) || user.IsShared if isGlobalAdmin { return true @@ -33,7 +33,7 @@ func canChangeAttributes(rctx rcontext.RequestContext, r *http.Request, origin s return isLocalAdmin } -func GetAttributes(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func GetAttributes(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { origin := _routers.GetParam("server", r) mediaId := _routers.GetParam("mediaId", r) @@ -79,7 +79,7 @@ func GetAttributes(r *http.Request, rctx rcontext.RequestContext, user _apimeta. return &_responses.DoNotCacheResponse{Payload: retAttrs} } -func SetAttributes(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func SetAttributes(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { origin := _routers.GetParam("server", r) mediaId := _routers.GetParam("mediaId", r) diff --git a/api/custom/purge.go b/api/custom/purge.go index ee8c273d..667c010d 100644 --- a/api/custom/purge.go +++ b/api/custom/purge.go @@ -8,9 +8,9 @@ import ( "time" "github.com/getsentry/sentry-go" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" "github.com/t2bot/matrix-media-repo/api/_routers" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/database" "github.com/t2bot/matrix-media-repo/tasks/task_runner" @@ -25,7 +25,7 @@ type MediaPurgedResponse struct { NumRemoved int `json:"total_removed"` } -func PurgeRemoteMedia(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func PurgeRemoteMedia(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { beforeTsStr := r.URL.Query().Get("before_ts") if beforeTsStr == "" { return _responses.BadRequest(errors.New("Missing before_ts argument")) @@ -51,7 +51,7 @@ func PurgeRemoteMedia(r *http.Request, rctx rcontext.RequestContext, user _apime return &_responses.DoNotCacheResponse{Payload: &MediaPurgedResponse{NumRemoved: removed}} } -func PurgeIndividualRecord(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func PurgeIndividualRecord(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { authCtx, _, _ := getPurgeAuthContext(rctx, r, user) server := _routers.GetParam("server", r) @@ -84,7 +84,7 @@ func PurgeIndividualRecord(r *http.Request, rctx rcontext.RequestContext, user _ return &_responses.DoNotCacheResponse{Payload: map[string]interface{}{"purged": true}} } -func PurgeQuarantined(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func PurgeQuarantined(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { authCtx, isGlobalAdmin, isLocalAdmin := getPurgeAuthContext(rctx, r, user) var affected []*database.DbMedia @@ -119,7 +119,7 @@ func PurgeQuarantined(r *http.Request, rctx rcontext.RequestContext, user _apime return &_responses.DoNotCacheResponse{Payload: map[string]interface{}{"purged": true, "affected": mxcs}} } -func PurgeOldMedia(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func PurgeOldMedia(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { var err error before := time.Now() beforeTsStr := r.URL.Query().Get("before_ts") @@ -173,7 +173,7 @@ func PurgeOldMedia(r *http.Request, rctx rcontext.RequestContext, user _apimeta. return &_responses.DoNotCacheResponse{Payload: map[string]interface{}{"purged": true, "affected": mxcs}} } -func PurgeUserMedia(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func PurgeUserMedia(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { authCtx, isGlobalAdmin, isLocalAdmin := getPurgeAuthContext(rctx, r, user) if !isGlobalAdmin && !isLocalAdmin { return _responses.AuthFailed() @@ -230,7 +230,7 @@ func PurgeUserMedia(r *http.Request, rctx rcontext.RequestContext, user _apimeta return &_responses.DoNotCacheResponse{Payload: map[string]interface{}{"purged": true, "affected": mxcs}} } -func PurgeRoomMedia(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func PurgeRoomMedia(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { authCtx, isGlobalAdmin, isLocalAdmin := getPurgeAuthContext(rctx, r, user) if !isGlobalAdmin && !isLocalAdmin { return _responses.AuthFailed() @@ -303,7 +303,7 @@ func PurgeRoomMedia(r *http.Request, rctx rcontext.RequestContext, user _apimeta return &_responses.DoNotCacheResponse{Payload: map[string]interface{}{"purged": true, "affected": mxcs2}} } -func PurgeDomainMedia(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func PurgeDomainMedia(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { authCtx, isGlobalAdmin, isLocalAdmin := getPurgeAuthContext(rctx, r, user) if !isGlobalAdmin && !isLocalAdmin { return _responses.AuthFailed() @@ -357,8 +357,8 @@ func PurgeDomainMedia(r *http.Request, rctx rcontext.RequestContext, user _apime return &_responses.DoNotCacheResponse{Payload: map[string]interface{}{"purged": true, "affected": mxcs}} } -func getPurgeAuthContext(ctx rcontext.RequestContext, r *http.Request, user _apimeta.UserInfo) (*task_runner.PurgeAuthContext, bool, bool) { - globalAdmin, localAdmin := _apimeta.GetRequestUserAdminStatus(r, ctx, user) +func getPurgeAuthContext(ctx rcontext.RequestContext, r *http.Request, user apimeta.UserInfo) (*task_runner.PurgeAuthContext, bool, bool) { + globalAdmin, localAdmin := apimeta.GetRequestUserAdminStatus(r, ctx, user) if globalAdmin { return &task_runner.PurgeAuthContext{}, true, localAdmin } diff --git a/api/custom/quarantine.go b/api/custom/quarantine.go index 4c0d7bd9..87e09c6e 100644 --- a/api/custom/quarantine.go +++ b/api/custom/quarantine.go @@ -5,9 +5,9 @@ import ( "net/http" "github.com/getsentry/sentry-go" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" "github.com/t2bot/matrix-media-repo/api/_routers" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/database" "github.com/t2bot/matrix-media-repo/tasks/task_runner" @@ -21,7 +21,7 @@ type MediaQuarantinedResponse struct { NumQuarantined int64 `json:"num_quarantined"` } -func QuarantineRoomMedia(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func QuarantineRoomMedia(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { canQuarantine, allowOtherHosts, isLocalAdmin := getQuarantineRequestInfo(r, rctx, user) if !canQuarantine { return _responses.AuthFailed() @@ -52,7 +52,7 @@ func QuarantineRoomMedia(r *http.Request, rctx rcontext.RequestContext, user _ap }) } -func QuarantineUserMedia(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func QuarantineUserMedia(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { canQuarantine, allowOtherHosts, isLocalAdmin := getQuarantineRequestInfo(r, rctx, user) if !canQuarantine { return _responses.AuthFailed() @@ -89,7 +89,7 @@ func QuarantineUserMedia(r *http.Request, rctx rcontext.RequestContext, user _ap }) } -func QuarantineDomainMedia(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func QuarantineDomainMedia(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { canQuarantine, allowOtherHosts, isLocalAdmin := getQuarantineRequestInfo(r, rctx, user) if !canQuarantine { return _responses.AuthFailed() @@ -123,7 +123,7 @@ func QuarantineDomainMedia(r *http.Request, rctx rcontext.RequestContext, user _ }) } -func QuarantineMedia(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func QuarantineMedia(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { canQuarantine, allowOtherHosts, isLocalAdmin := getQuarantineRequestInfo(r, rctx, user) if !canQuarantine { return _responses.AuthFailed() @@ -170,7 +170,7 @@ func performQuarantineRequest(ctx rcontext.RequestContext, host string, allowOth return &_responses.DoNotCacheResponse{Payload: &MediaQuarantinedResponse{NumQuarantined: total}} } -func getQuarantineRequestInfo(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) (bool, bool, bool) { +func getQuarantineRequestInfo(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) (bool, bool, bool) { isGlobalAdmin := util.IsGlobalAdmin(user.UserId) || user.IsShared canQuarantine := isGlobalAdmin allowOtherHosts := isGlobalAdmin diff --git a/api/custom/tasks.go b/api/custom/tasks.go index b3814f25..35a265ee 100644 --- a/api/custom/tasks.go +++ b/api/custom/tasks.go @@ -6,9 +6,9 @@ import ( "strconv" "github.com/getsentry/sentry-go" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" "github.com/t2bot/matrix-media-repo/api/_routers" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/database" "github.com/sirupsen/logrus" @@ -25,7 +25,7 @@ type TaskStatus struct { Error string `json:"error_message"` } -func GetTask(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func GetTask(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { taskIdStr := _routers.GetParam("taskId", r) taskId, err := strconv.Atoi(taskIdStr) if err != nil { @@ -60,7 +60,7 @@ func GetTask(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserIn }} } -func ListAllTasks(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func ListAllTasks(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { db := database.GetInstance().Tasks.Prepare(rctx) tasks, err := db.GetAll(true) @@ -86,7 +86,7 @@ func ListAllTasks(r *http.Request, rctx rcontext.RequestContext, user _apimeta.U return &_responses.DoNotCacheResponse{Payload: statusObjs} } -func ListUnfinishedTasks(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func ListUnfinishedTasks(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { db := database.GetInstance().Tasks.Prepare(rctx) tasks, err := db.GetAll(false) diff --git a/api/custom/usage.go b/api/custom/usage.go index 48cff4ea..fade3dbe 100644 --- a/api/custom/usage.go +++ b/api/custom/usage.go @@ -8,9 +8,9 @@ import ( "strings" "github.com/getsentry/sentry-go" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" "github.com/t2bot/matrix-media-repo/api/_routers" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/database" "github.com/t2bot/matrix-media-repo/homeserver_interop/synapse" @@ -54,7 +54,7 @@ type MediaUsageEntry struct { CreatedTs int64 `json:"created_ts"` } -func GetDomainUsage(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func GetDomainUsage(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { serverName := _routers.GetParam("serverName", r) if !_routers.ServerNameRegex.MatchString(serverName) { @@ -101,7 +101,7 @@ func GetDomainUsage(r *http.Request, rctx rcontext.RequestContext, user _apimeta } } -func GetUserUsage(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func GetUserUsage(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { serverName := _routers.GetParam("serverName", r) userIds := r.URL.Query()["user_id"] @@ -160,7 +160,7 @@ func GetUserUsage(r *http.Request, rctx rcontext.RequestContext, user _apimeta.U return &_responses.DoNotCacheResponse{Payload: parsed} } -func GetUploadsUsage(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func GetUploadsUsage(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { serverName := _routers.GetParam("serverName", r) mxcs := r.URL.Query()["mxc"] @@ -224,7 +224,7 @@ func GetUploadsUsage(r *http.Request, rctx rcontext.RequestContext, user _apimet // SynGetUsersMediaStats attempts to provide a loose equivalent to this Synapse admin endpoint: // https://matrix-org.github.io/synapse/v1.88/admin_api/statistics.html#users-media-usage-statistics -func SynGetUsersMediaStats(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func SynGetUsersMediaStats(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { qs := r.URL.Query() var err error @@ -237,7 +237,7 @@ func SynGetUsersMediaStats(r *http.Request, rctx rcontext.RequestContext, user _ return _responses.BadRequest(errors.New("invalid server name")) } - isGlobalAdmin, isLocalAdmin := _apimeta.GetRequestUserAdminStatus(r, rctx, user) + isGlobalAdmin, isLocalAdmin := apimeta.GetRequestUserAdminStatus(r, rctx, user) if !isGlobalAdmin && (serverName != r.Host || !isLocalAdmin) { return _responses.AuthFailed() } diff --git a/api/custom/version.go b/api/custom/version.go index 11ff3b51..e98243de 100644 --- a/api/custom/version.go +++ b/api/custom/version.go @@ -3,13 +3,13 @@ package custom import ( "net/http" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/common/rcontext" "github.com/t2bot/matrix-media-repo/common/version" ) -func GetVersion(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func GetVersion(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { unstableFeatures := make(map[string]bool) return &_responses.DoNotCacheResponse{ diff --git a/api/r0/download.go b/api/r0/download.go index 9cc59709..1cfec4d9 100644 --- a/api/r0/download.go +++ b/api/r0/download.go @@ -7,9 +7,9 @@ import ( "time" "github.com/getsentry/sentry-go" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" "github.com/t2bot/matrix-media-repo/api/_routers" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/datastores" "github.com/t2bot/matrix-media-repo/pipelines/pipeline_download" "github.com/t2bot/matrix-media-repo/util" @@ -19,7 +19,7 @@ import ( "github.com/t2bot/matrix-media-repo/common/rcontext" ) -func DownloadMedia(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func DownloadMedia(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { server := _routers.GetParam("server", r) mediaId := _routers.GetParam("mediaId", r) filename := _routers.GetParam("filename", r) diff --git a/api/r0/identicon.go b/api/r0/identicon.go index 64c6e527..8244eb2e 100644 --- a/api/r0/identicon.go +++ b/api/r0/identicon.go @@ -11,13 +11,13 @@ import ( "github.com/cupcake/sigil/gen" "github.com/disintegration/imaging" "github.com/sirupsen/logrus" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" "github.com/t2bot/matrix-media-repo/api/_routers" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/common/rcontext" ) -func Identicon(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func Identicon(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { if !rctx.Config.Identicons.Enabled { return _responses.NotFoundError() } diff --git a/api/r0/logout.go b/api/r0/logout.go index 18a5e6b8..dcdcb0fa 100644 --- a/api/r0/logout.go +++ b/api/r0/logout.go @@ -5,14 +5,14 @@ import ( "net/http" "github.com/getsentry/sentry-go" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/api/_auth_cache" "github.com/t2bot/matrix-media-repo/common/rcontext" ) -func Logout(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func Logout(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { err := _auth_cache.InvalidateToken(rctx, user.AccessToken, user.UserId) if err != nil { rctx.Log.Error(err) @@ -22,7 +22,7 @@ func Logout(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInf return _responses.EmptyResponse{} } -func LogoutAll(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func LogoutAll(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { err := _auth_cache.InvalidateAllTokens(rctx, user.AccessToken, user.UserId) if err != nil { rctx.Log.Error(err) diff --git a/api/r0/preview_url.go b/api/r0/preview_url.go index 5476b4c2..fbda1fe2 100644 --- a/api/r0/preview_url.go +++ b/api/r0/preview_url.go @@ -8,8 +8,8 @@ import ( "time" "github.com/getsentry/sentry-go" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/pipelines/pipeline_preview" "github.com/t2bot/matrix-media-repo/common" @@ -29,7 +29,7 @@ type MatrixOpenGraph struct { ImageHeight int `json:"og:image:height,omitempty"` } -func PreviewUrl(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func PreviewUrl(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { if !rctx.Config.UrlPreviews.Enabled { return _responses.NotFoundError() } diff --git a/api/r0/public_config.go b/api/r0/public_config.go index 695c17db..9a34fe66 100644 --- a/api/r0/public_config.go +++ b/api/r0/public_config.go @@ -4,7 +4,7 @@ import ( "net/http" "github.com/getsentry/sentry-go" - "github.com/t2bot/matrix-media-repo/api/_apimeta" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/common/rcontext" "github.com/t2bot/matrix-media-repo/pipelines/steps/quota" ) @@ -15,7 +15,7 @@ type PublicConfigResponse struct { StorageMaxFiles int64 `json:"org.matrix.msc4034.storage.max_files,omitempty"` } -func PublicConfig(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func PublicConfig(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { uploadSize := rctx.Config.Uploads.ReportedMaxSizeBytes if uploadSize == 0 { uploadSize = rctx.Config.Uploads.MaxSizeBytes diff --git a/api/r0/thumbnail.go b/api/r0/thumbnail.go index 31126f5b..05cda1f2 100644 --- a/api/r0/thumbnail.go +++ b/api/r0/thumbnail.go @@ -7,9 +7,9 @@ import ( "time" "github.com/getsentry/sentry-go" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" "github.com/t2bot/matrix-media-repo/api/_routers" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/database" "github.com/t2bot/matrix-media-repo/datastores" "github.com/t2bot/matrix-media-repo/pipelines/pipeline_download" @@ -21,7 +21,7 @@ import ( "github.com/t2bot/matrix-media-repo/common/rcontext" ) -func ThumbnailMedia(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func ThumbnailMedia(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { server := _routers.GetParam("server", r) mediaId := _routers.GetParam("mediaId", r) allowRemote := r.URL.Query().Get("allow_remote") diff --git a/api/r0/upload_async.go b/api/r0/upload_async.go index 24480609..2b9685db 100644 --- a/api/r0/upload_async.go +++ b/api/r0/upload_async.go @@ -7,15 +7,15 @@ import ( "github.com/getsentry/sentry-go" "github.com/sirupsen/logrus" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" "github.com/t2bot/matrix-media-repo/api/_routers" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/common" "github.com/t2bot/matrix-media-repo/common/rcontext" "github.com/t2bot/matrix-media-repo/pipelines/pipeline_upload" ) -func UploadMediaAsync(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func UploadMediaAsync(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { server := _routers.GetParam("server", r) mediaId := _routers.GetParam("mediaId", r) filename := filepath.Base(r.URL.Query().Get("filename")) diff --git a/api/r0/upload_sync.go b/api/r0/upload_sync.go index 2af0732e..875a6111 100644 --- a/api/r0/upload_sync.go +++ b/api/r0/upload_sync.go @@ -8,8 +8,8 @@ import ( "github.com/getsentry/sentry-go" "github.com/sirupsen/logrus" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/common" "github.com/t2bot/matrix-media-repo/common/rcontext" "github.com/t2bot/matrix-media-repo/datastores" @@ -21,7 +21,7 @@ type MediaUploadedResponse struct { ContentUri string `json:"content_uri,omitempty"` } -func UploadMediaSync(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func UploadMediaSync(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { filename := filepath.Base(r.URL.Query().Get("filename")) rctx = rctx.LogWithFields(logrus.Fields{ diff --git a/api/unstable/info.go b/api/unstable/info.go index 78f92307..b037efdb 100644 --- a/api/unstable/info.go +++ b/api/unstable/info.go @@ -10,9 +10,9 @@ import ( "github.com/disintegration/imaging" "github.com/getsentry/sentry-go" "github.com/sirupsen/logrus" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" "github.com/t2bot/matrix-media-repo/api/_routers" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/common" "github.com/t2bot/matrix-media-repo/common/rcontext" "github.com/t2bot/matrix-media-repo/database" @@ -48,7 +48,7 @@ type MediaInfoResponse struct { NumChannels int `json:"num_channels,omitempty"` } -func MediaInfo(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func MediaInfo(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { server := _routers.GetParam("server", r) mediaId := _routers.GetParam("mediaId", r) allowRemote := r.URL.Query().Get("allow_remote") diff --git a/api/unstable/local_copy.go b/api/unstable/local_copy.go index 63b6cfda..715d6cf6 100644 --- a/api/unstable/local_copy.go +++ b/api/unstable/local_copy.go @@ -8,9 +8,9 @@ import ( "github.com/getsentry/sentry-go" "github.com/sirupsen/logrus" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" "github.com/t2bot/matrix-media-repo/api/_routers" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/api/r0" "github.com/t2bot/matrix-media-repo/common" "github.com/t2bot/matrix-media-repo/common/rcontext" @@ -20,7 +20,7 @@ import ( "github.com/t2bot/matrix-media-repo/util" ) -func LocalCopy(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func LocalCopy(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { server := _routers.GetParam("server", r) mediaId := _routers.GetParam("mediaId", r) allowRemote := r.URL.Query().Get("allow_remote") diff --git a/api/unstable/public_usage.go b/api/unstable/public_usage.go index a5572ad6..d6380e2f 100644 --- a/api/unstable/public_usage.go +++ b/api/unstable/public_usage.go @@ -4,7 +4,7 @@ import ( "net/http" "github.com/getsentry/sentry-go" - "github.com/t2bot/matrix-media-repo/api/_apimeta" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/common/rcontext" "github.com/t2bot/matrix-media-repo/pipelines/steps/quota" ) @@ -14,7 +14,7 @@ type PublicUsageResponse struct { StorageFiles int64 `json:"org.matrix.msc4034.storage.files,omitempty"` } -func PublicUsage(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func PublicUsage(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { storageUsed := int64(0) current, err := quota.Current(rctx, user.UserId, quota.MaxBytes) if err != nil { diff --git a/api/v1/create.go b/api/v1/create.go index aecf7448..1aebac0d 100644 --- a/api/v1/create.go +++ b/api/v1/create.go @@ -5,8 +5,8 @@ import ( "net/http" "github.com/getsentry/sentry-go" - "github.com/t2bot/matrix-media-repo/api/_apimeta" "github.com/t2bot/matrix-media-repo/api/_responses" + "github.com/t2bot/matrix-media-repo/api/apimeta" "github.com/t2bot/matrix-media-repo/common/rcontext" "github.com/t2bot/matrix-media-repo/pipelines/pipeline_create" "github.com/t2bot/matrix-media-repo/util" @@ -17,7 +17,7 @@ type MediaCreatedResponse struct { ExpiresTs int64 `json:"unused_expires_at"` } -func CreateMedia(r *http.Request, rctx rcontext.RequestContext, user _apimeta.UserInfo) interface{} { +func CreateMedia(r *http.Request, rctx rcontext.RequestContext, user apimeta.UserInfo) interface{} { id, err := pipeline_create.Execute(rctx, r.Host, user.UserId, pipeline_create.DefaultExpirationTime) if err != nil { rctx.Log.Error("Unexpected error creating media ID:", err)