more refactors

This commit is contained in:
2026-02-08 19:57:12 +11:00
parent 1a2bdaf4cf
commit 97342e08fe
17 changed files with 334 additions and 308 deletions

View File

@@ -45,17 +45,17 @@ func (c *Checker) UserHasPermission(ctx context.Context, user *db.User, permissi
}
// Fallback to database
tx, err := c.conn.BeginTx(ctx, nil)
if err != nil {
return false, errors.Wrap(err, "conn.BeginTx")
}
defer func() { _ = tx.Rollback() }()
has, err := user.HasPermission(ctx, tx, permission)
if err != nil {
var has bool
if err := db.WithTxFailSilently(ctx, c.conn, func(ctx context.Context, tx bun.Tx) error {
var err error
has, err = user.HasPermission(ctx, tx, permission)
if err != nil {
return errors.Wrap(err, "user.HasPermission")
}
return nil
}); err != nil {
return false, err
}
return has, nil
}
@@ -73,13 +73,18 @@ func (c *Checker) UserHasRole(ctx context.Context, user *db.User, role roles.Rol
}
// Fallback to database
tx, err := c.conn.BeginTx(ctx, nil)
if err != nil {
return false, errors.Wrap(err, "conn.BeginTx")
var has bool
if err := db.WithTxFailSilently(ctx, c.conn, func(ctx context.Context, tx bun.Tx) error {
var err error
has, err = user.HasRole(ctx, tx, role)
if err != nil {
return errors.Wrap(err, "user.HasPermission")
}
return nil
}); err != nil {
return false, err
}
defer func() { _ = tx.Rollback() }()
return user.HasRole(ctx, tx, role)
return has, nil
}
// UserHasAnyPermission checks if user has ANY of the given permissions