mirror of
https://github.com/Dvorinka/Containr.git
synced 2026-10-28 07:41:27 +00:00
- auth.sql: user lookups, counts, register/mirror inserts, profile update - security.sql: access EXISTS, vulnerability list/metrics/status, framework list, latest scan/report, project-id guards - NULL description/service_id rows stay filtered, matching the original scan-error-and-skip behavior - auth_users probe and filtered audit-log queries stay raw: one is a Better Auth table outside the schema, the other is dynamically built - TestSecurityLiveInvariants covers the access predicate, severity ordering, upsert conflict path, and latest-row lookups against live Postgres Authored By: TDvorak <[email protected]>
234 lines
6.0 KiB
Go
234 lines
6.0 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.31.1
|
|
// source: auth.sql
|
|
|
|
package sqlcdb
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
const countUsers = `-- name: CountUsers :one
|
|
SELECT COUNT(*) FROM users
|
|
`
|
|
|
|
func (q *Queries) CountUsers(ctx context.Context) (int64, error) {
|
|
row := q.db.QueryRowContext(ctx, countUsers)
|
|
var count int64
|
|
err := row.Scan(&count)
|
|
return count, err
|
|
}
|
|
|
|
const countUsersByEmail = `-- name: CountUsersByEmail :one
|
|
SELECT COUNT(*) FROM users WHERE email = $1
|
|
`
|
|
|
|
func (q *Queries) CountUsersByEmail(ctx context.Context, email string) (int64, error) {
|
|
row := q.db.QueryRowContext(ctx, countUsersByEmail, email)
|
|
var count int64
|
|
err := row.Scan(&count)
|
|
return count, err
|
|
}
|
|
|
|
const getUserByEmailForAuth = `-- name: GetUserByEmailForAuth :one
|
|
SELECT id, email, password_hash, name, COALESCE(avatar_url, '') AS avatar_url, is_admin, created_at
|
|
FROM users WHERE email = $1
|
|
`
|
|
|
|
type GetUserByEmailForAuthRow struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Email string `json:"email"`
|
|
PasswordHash string `json:"password_hash"`
|
|
Name string `json:"name"`
|
|
AvatarUrl string `json:"avatar_url"`
|
|
IsAdmin bool `json:"is_admin"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
}
|
|
|
|
func (q *Queries) GetUserByEmailForAuth(ctx context.Context, email string) (GetUserByEmailForAuthRow, error) {
|
|
row := q.db.QueryRowContext(ctx, getUserByEmailForAuth, email)
|
|
var i GetUserByEmailForAuthRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Email,
|
|
&i.PasswordHash,
|
|
&i.Name,
|
|
&i.AvatarUrl,
|
|
&i.IsAdmin,
|
|
&i.CreatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getUserByID = `-- name: GetUserByID :one
|
|
SELECT id, email, name, COALESCE(avatar_url, '') AS avatar_url, is_admin, created_at
|
|
FROM users WHERE id = $1
|
|
`
|
|
|
|
type GetUserByIDRow struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Email string `json:"email"`
|
|
Name string `json:"name"`
|
|
AvatarUrl string `json:"avatar_url"`
|
|
IsAdmin bool `json:"is_admin"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
}
|
|
|
|
func (q *Queries) GetUserByID(ctx context.Context, id uuid.UUID) (GetUserByIDRow, error) {
|
|
row := q.db.QueryRowContext(ctx, getUserByID, id)
|
|
var i GetUserByIDRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Email,
|
|
&i.Name,
|
|
&i.AvatarUrl,
|
|
&i.IsAdmin,
|
|
&i.CreatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const insertUser = `-- name: InsertUser :one
|
|
INSERT INTO users (email, password_hash, name)
|
|
VALUES ($1, $2, $3)
|
|
RETURNING id, email, name, COALESCE(avatar_url, '') AS avatar_url, is_admin, created_at
|
|
`
|
|
|
|
type InsertUserParams struct {
|
|
Email string `json:"email"`
|
|
PasswordHash string `json:"password_hash"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
type InsertUserRow struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Email string `json:"email"`
|
|
Name string `json:"name"`
|
|
AvatarUrl string `json:"avatar_url"`
|
|
IsAdmin bool `json:"is_admin"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
}
|
|
|
|
func (q *Queries) InsertUser(ctx context.Context, arg InsertUserParams) (InsertUserRow, error) {
|
|
row := q.db.QueryRowContext(ctx, insertUser, arg.Email, arg.PasswordHash, arg.Name)
|
|
var i InsertUserRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Email,
|
|
&i.Name,
|
|
&i.AvatarUrl,
|
|
&i.IsAdmin,
|
|
&i.CreatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const insertUserAdmin = `-- name: InsertUserAdmin :one
|
|
INSERT INTO users (email, password_hash, name, is_admin)
|
|
VALUES ($1, $2, $3, $4)
|
|
RETURNING id, email, name, COALESCE(avatar_url, '') AS avatar_url, is_admin, created_at
|
|
`
|
|
|
|
type InsertUserAdminParams struct {
|
|
Email string `json:"email"`
|
|
PasswordHash string `json:"password_hash"`
|
|
Name string `json:"name"`
|
|
IsAdmin bool `json:"is_admin"`
|
|
}
|
|
|
|
type InsertUserAdminRow struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Email string `json:"email"`
|
|
Name string `json:"name"`
|
|
AvatarUrl string `json:"avatar_url"`
|
|
IsAdmin bool `json:"is_admin"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
}
|
|
|
|
func (q *Queries) InsertUserAdmin(ctx context.Context, arg InsertUserAdminParams) (InsertUserAdminRow, error) {
|
|
row := q.db.QueryRowContext(ctx, insertUserAdmin,
|
|
arg.Email,
|
|
arg.PasswordHash,
|
|
arg.Name,
|
|
arg.IsAdmin,
|
|
)
|
|
var i InsertUserAdminRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Email,
|
|
&i.Name,
|
|
&i.AvatarUrl,
|
|
&i.IsAdmin,
|
|
&i.CreatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const updateUserProfile = `-- name: UpdateUserProfile :exec
|
|
UPDATE users
|
|
SET name = COALESCE($1::varchar, name), avatar_url = COALESCE($2::varchar, avatar_url)
|
|
WHERE id = $3
|
|
`
|
|
|
|
type UpdateUserProfileParams struct {
|
|
Column1 string `json:"column_1"`
|
|
Column2 string `json:"column_2"`
|
|
ID uuid.UUID `json:"id"`
|
|
}
|
|
|
|
func (q *Queries) UpdateUserProfile(ctx context.Context, arg UpdateUserProfileParams) error {
|
|
_, err := q.db.ExecContext(ctx, updateUserProfile, arg.Column1, arg.Column2, arg.ID)
|
|
return err
|
|
}
|
|
|
|
const upsertLocalUser = `-- name: UpsertLocalUser :one
|
|
INSERT INTO users (email, password_hash, name, avatar_url, is_admin)
|
|
VALUES ($1, $2, $3, NULLIF($4::varchar, ''), $5)
|
|
ON CONFLICT (email) DO UPDATE
|
|
SET name = EXCLUDED.name,
|
|
avatar_url = COALESCE(EXCLUDED.avatar_url, users.avatar_url),
|
|
updated_at = NOW()
|
|
RETURNING id, email, name, COALESCE(avatar_url, '') AS avatar_url, is_admin, created_at
|
|
`
|
|
|
|
type UpsertLocalUserParams struct {
|
|
Email string `json:"email"`
|
|
PasswordHash string `json:"password_hash"`
|
|
Name string `json:"name"`
|
|
Column4 string `json:"column_4"`
|
|
IsAdmin bool `json:"is_admin"`
|
|
}
|
|
|
|
type UpsertLocalUserRow struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Email string `json:"email"`
|
|
Name string `json:"name"`
|
|
AvatarUrl string `json:"avatar_url"`
|
|
IsAdmin bool `json:"is_admin"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
}
|
|
|
|
func (q *Queries) UpsertLocalUser(ctx context.Context, arg UpsertLocalUserParams) (UpsertLocalUserRow, error) {
|
|
row := q.db.QueryRowContext(ctx, upsertLocalUser,
|
|
arg.Email,
|
|
arg.PasswordHash,
|
|
arg.Name,
|
|
arg.Column4,
|
|
arg.IsAdmin,
|
|
)
|
|
var i UpsertLocalUserRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Email,
|
|
&i.Name,
|
|
&i.AvatarUrl,
|
|
&i.IsAdmin,
|
|
&i.CreatedAt,
|
|
)
|
|
return i, err
|
|
}
|