Add environment variables to disable features

Face detection still needs to be hidden on the frontend if it's disabled
This commit is contained in:
viktorstrate
2021-08-31 11:34:55 +02:00
parent fca5a640c8
commit 9bcfdbb2cd
10 changed files with 188 additions and 12 deletions

View File

@@ -32,6 +32,10 @@ func (r imageFaceResolver) FaceGroup(ctx context.Context, obj *models.ImageFace)
return obj.FaceGroup, nil
}
if face_detection.GlobalFaceDetector == nil {
return nil, errors.New("face detector not initialized")
}
var faceGroup models.FaceGroup
if err := r.Database.Model(&obj).Association("FaceGroup").Find(&faceGroup); err != nil {
return nil, err
@@ -48,6 +52,10 @@ func (r faceGroupResolver) ImageFaces(ctx context.Context, obj *models.FaceGroup
return nil, errors.New("unauthorized")
}
if face_detection.GlobalFaceDetector == nil {
return nil, errors.New("face detector not initialized")
}
if err := user.FillAlbums(r.Database); err != nil {
return nil, err
}
@@ -78,6 +86,10 @@ func (r faceGroupResolver) ImageFaceCount(ctx context.Context, obj *models.FaceG
return -1, errors.New("unauthorized")
}
if face_detection.GlobalFaceDetector == nil {
return -1, errors.New("face detector not initialized")
}
if err := user.FillAlbums(r.Database); err != nil {
return -1, err
}
@@ -107,6 +119,10 @@ func (r *queryResolver) FaceGroup(ctx context.Context, id int) (*models.FaceGrou
return nil, errors.New("unauthorized")
}
if face_detection.GlobalFaceDetector == nil {
return nil, errors.New("face detector not initialized")
}
if err := user.FillAlbums(r.Database); err != nil {
return nil, err
}
@@ -135,6 +151,10 @@ func (r *queryResolver) MyFaceGroups(ctx context.Context, paginate *models.Pagin
return nil, errors.New("unauthorized")
}
if face_detection.GlobalFaceDetector == nil {
return nil, errors.New("face detector not initialized")
}
if err := user.FillAlbums(r.Database); err != nil {
return nil, err
}
@@ -168,6 +188,10 @@ func (r *mutationResolver) SetFaceGroupLabel(ctx context.Context, faceGroupID in
return nil, errors.New("unauthorized")
}
if face_detection.GlobalFaceDetector == nil {
return nil, errors.New("face detector not initialized")
}
faceGroup, err := userOwnedFaceGroup(r.Database, user, faceGroupID)
if err != nil {
return nil, err
@@ -186,6 +210,10 @@ func (r *mutationResolver) CombineFaceGroups(ctx context.Context, destinationFac
return nil, errors.New("unauthorized")
}
if face_detection.GlobalFaceDetector == nil {
return nil, errors.New("face detector not initialized")
}
destinationFaceGroup, err := userOwnedFaceGroup(r.Database, user, destinationFaceGroupID)
if err != nil {
return nil, err
@@ -223,6 +251,10 @@ func (r *mutationResolver) MoveImageFaces(ctx context.Context, imageFaceIDs []in
return nil, errors.New("unauthorized")
}
if face_detection.GlobalFaceDetector == nil {
return nil, errors.New("face detector not initialized")
}
userOwnedImageFaceIDs := make([]int, 0)
var destFaceGroup *models.FaceGroup
@@ -290,6 +322,10 @@ func (r *mutationResolver) RecognizeUnlabeledFaces(ctx context.Context) ([]*mode
return nil, errors.New("unauthorized")
}
if face_detection.GlobalFaceDetector == nil {
return nil, errors.New("face detector not initialized")
}
var updatedImageFaces []*models.ImageFace
transactionError := r.Database.Transaction(func(tx *gorm.DB) error {
@@ -312,6 +348,10 @@ func (r *mutationResolver) DetachImageFaces(ctx context.Context, imageFaceIDs []
return nil, errors.New("unauthorized")
}
if face_detection.GlobalFaceDetector == nil {
return nil, errors.New("face detector not initialized")
}
userOwnedImageFaceIDs := make([]int, 0)
newFaceGroup := models.FaceGroup{}