diff --git a/persistence/sql_base_repository.go b/persistence/sql_base_repository.go index 461609042..63120d4c7 100644 --- a/persistence/sql_base_repository.go +++ b/persistence/sql_base_repository.go @@ -199,6 +199,15 @@ func (r sqlRepository) applyFilters(sq SelectBuilder, options ...model.QueryOpti return sq } +func (r *sqlRepository) withTableName(filter filterFunc) filterFunc { + return func(field string, value any) Sqlizer { + if r.tableName != "" { + field = r.tableName + "." + field + } + return filter(field, value) + } +} + // libraryIdFilter is a filter function to be added to resources that have a library_id column. func libraryIdFilter(_ string, value interface{}) Sqlizer { return Eq{"library_id": value} diff --git a/persistence/user_repository.go b/persistence/user_repository.go index a378f75e6..078aef672 100644 --- a/persistence/user_repository.go +++ b/persistence/user_repository.go @@ -58,6 +58,7 @@ func NewUserRepository(ctx context.Context, db dbx.Builder) model.UserRepository r.tableName = "user" r.registerModel(&model.User{}, map[string]filterFunc{ "password": invalidFilter(ctx), + "name": r.withTableName(startsWithFilter), }) once.Do(func() { _ = r.initPasswordEncryptionKey()