gitea/models
Nanguan Lin d95102d650
Fix wrong xorm Delete usage ()
## Bug in Gitea
I ran into this bug when I accidentally used the wrong redirect URL for
the oauth2 provider when using mssql. But the oauth2 provider still got
added.
Most of the time, we use `Delete(&some{id: some.id})` or
`In(condition).Delete(&some{})`, which specify the conditions. But the
function uses `Delete(source)` when `source.Cfg` is a `TEXT` field and
not empty. This will cause xorm `Delete` function not working in mssql.

61ff91f960/models/auth/source.go (L234-L240)

## Reason
Because the `TEXT` field can not be compared in mssql, xorm doesn't
support it according to [this
PR](https://gitea.com/xorm/xorm/pulls/2062)
[related
code](b23798dc98/internal/statements/statement.go (L552-L558))
in xorm
```go
if statement.dialect.URI().DBType == schemas.MSSQL && (col.SQLType.Name == schemas.Text ||
   col.SQLType.IsBlob() || col.SQLType.Name == schemas.TimeStampz) {
   if utils.IsValueZero(fieldValue) {
     continue
   }
   return nil, fmt.Errorf("column %s is a TEXT type with data %#v which cannot be as compare condition", col.Name, fieldValue.Interface())
   }
}
```
When using the `Delete` function in xorm, the non-empty fields will
auto-set as conditions(perhaps some special fields are not?). If `TEXT`
field is not empty, xorm will return an error. I only found this usage
after searching, but maybe there is something I missing.

---------

Co-authored-by: delvh <dev.lh@web.de>
2023-11-12 07:38:45 +00:00
..
actions Remove action runners on user deletion () 2023-11-05 13:48:32 +01:00
activities Refactor Find Sources and fix bug when view a user who belongs to an unactive auth source () 2023-11-03 01:41:00 +00:00
admin Next round of `db.DefaultContext` refactor () 2023-09-16 14:39:12 +00:00
asymkey Replace more db.DefaultContext () 2023-10-15 17:46:06 +02:00
auth Fix wrong xorm Delete usage () 2023-11-12 07:38:45 +00:00
avatars Final round of `db.DefaultContext` refactor () 2023-10-14 08:37:24 +00:00
db refactor: make db iterate context aware () 2023-10-21 10:05:29 +08:00
dbfs make writing main test easier () 2023-09-28 01:38:53 +00:00
fixtures Add unit tests for action runner token () 2023-10-19 07:24:24 +00:00
git Upgrade xorm to 1.3.4 () 2023-10-27 13:28:53 +02:00
issues Fix 500 when deleting a dismissed review () 2023-11-05 13:25:40 +00:00
migrations Add Index to pull_auto_merge.doer_id () 2023-10-30 08:39:29 +00:00
organization Even more `db.DefaultContext` refactor () 2023-10-03 10:30:41 +00:00
packages List all Debian package versions in `Packages` () 2023-10-29 14:14:47 +00:00
perm Even more `db.DefaultContext` refactor () 2023-10-03 10:30:41 +00:00
project More `db.DefaultContext` refactor () 2023-09-29 12:12:54 +00:00
pull Add Index to pull_auto_merge.doer_id () 2023-10-30 08:39:29 +00:00
repo Replace more db.DefaultContext () 2023-10-15 17:46:06 +02:00
secret Refactor secrets modification logic () 2023-09-05 15:21:02 +00:00
shared/types Display owner of a runner as a tooltip instead of static text () 2023-05-12 08:43:27 +00:00
system Replace more db.DefaultContext () 2023-10-15 17:46:06 +02:00
unit Make actions default enabled for newly created repository if global configuraion enabled () 2023-10-10 14:45:31 +00:00
unittest Upgrade xorm () 2023-10-19 10:25:57 +00:00
user Replace -1 with GhostUserID () 2023-10-20 14:43:08 +00:00
webhook Final round of `db.DefaultContext` refactor () 2023-10-14 08:37:24 +00:00
error.go Sync branches into databases () 2023-06-29 10:03:20 +00:00
fixture_generation.go Replace more db.DefaultContext () 2023-10-15 17:46:06 +02:00
fixture_test.go Replace more db.DefaultContext () 2023-10-15 17:46:06 +02:00
main_test.go make writing main test easier () 2023-09-28 01:38:53 +00:00
org.go Refactor the function RemoveOrgUser () 2023-11-03 14:01:45 +00:00
org_team.go Refactor the function RemoveOrgUser () 2023-11-03 14:01:45 +00:00
org_team_test.go Reduce usage of `db.DefaultContext` () 2023-09-14 17:09:32 +00:00
org_test.go Replace more db.DefaultContext () 2023-10-15 17:46:06 +02:00
repo.go Penultimate round of `db.DefaultContext` refactor () 2023-10-11 04:24:07 +00:00
repo_test.go Penultimate round of `db.DefaultContext` refactor () 2023-10-11 04:24:07 +00:00
repo_transfer.go Next round of `db.DefaultContext` refactor () 2023-09-16 14:39:12 +00:00
repo_transfer_test.go Next round of `db.DefaultContext` refactor () 2023-09-16 14:39:12 +00:00