more refactors
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user