Files
phishingclub/backend/service/identifier.go
2025-08-21 16:14:09 +02:00

45 lines
1.1 KiB
Go

package service
import (
"context"
"github.com/go-errors/errors"
"github.com/phishingclub/phishingclub/data"
"github.com/phishingclub/phishingclub/errs"
"github.com/phishingclub/phishingclub/model"
"github.com/phishingclub/phishingclub/repository"
)
type Identifier struct {
Common
IdentifierRepository *repository.Identifier
}
func (i *Identifier) GetAll(
ctx context.Context,
session *model.Session,
options *repository.IdentifierOption,
) (*model.Result[model.Identifier], error) {
result := model.NewEmptyResult[model.Identifier]()
ae := NewAuditEvent("Identifier.GetAll", session)
// check permissions
isAuthorized, err := IsAuthorized(session, data.PERMISSION_ALLOW_GLOBAL)
if err != nil && !errors.Is(err, errs.ErrAuthorizationFailed) {
i.LogAuthError(err)
return result, errs.Wrap(err)
}
if !isAuthorized {
i.AuditLogNotAuthorized(ae)
return result, errs.ErrAuthorizationFailed
}
// get
result, err = i.IdentifierRepository.GetAll(ctx, options)
if err != nil {
i.Logger.Errorw("failed to get all identifiers", "error", err)
return nil, errs.Wrap(err)
}
// no audit on read
return result, nil
}