jojo/services/authz/all_access_reducer.go

29 lines
832 B
Go

// Copyright 2026 The Forgejo Authors. All rights reserved.
// SPDX-License-Identifier: GPL-3.0-or-later
package authz
import (
"context"
"forgejo.org/models/perm"
repo_model "forgejo.org/models/repo"
"xorm.io/builder"
)
// Implementation of [AuthorizationReducer] that does no authorization reduction, allowing normal access to all
// resources.
type AllAccessAuthorizationReducer struct{}
func (*AllAccessAuthorizationReducer) ReduceRepoAccess(ctx context.Context, repo *repo_model.Repository, accessMode perm.AccessMode) (perm.AccessMode, error) {
return accessMode, nil
}
func (*AllAccessAuthorizationReducer) RepoReadAccessFilter() builder.Cond {
return builder.NewCond() // invalid cond should be excluded and cause no filtering
}
func (*AllAccessAuthorizationReducer) AllowAdminOverride() bool {
return true
}