ente/server/pkg/controller/access/access.go
2024-03-01 13:37:01 +05:30

35 lines
917 B
Go

package access
import (
"github.com/ente-io/museum/pkg/repo"
"github.com/gin-gonic/gin"
)
// Controller exposes helper methods to perform access checks while fetching or editing
// any entity.
type Controller interface {
GetCollection(ctx *gin.Context, req *GetCollectionParams) (*GetCollectionResponse, error)
VerifyFileOwnership(ctx *gin.Context, req *VerifyFileOwnershipParams) error
}
// controllerImpl implements Controller
type controllerImpl struct {
FileRepo *repo.FileRepository
CollectionRepo *repo.CollectionRepository
}
// https://stackoverflow.com/a/33089540/546896
var _ Controller = (*controllerImpl)(nil) // Verify that *T implements I.
var _ Controller = controllerImpl{}
func NewAccessController(
collRepo *repo.CollectionRepository,
fileRepo *repo.FileRepository,
) Controller {
comp := &controllerImpl{
CollectionRepo: collRepo,
FileRepo: fileRepo,
}
return comp
}