forgejo/models
Nanguan Lin d95102d650
Fix wrong xorm Delete usage (#27995)
## 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 (#27902) 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 (#27798) 2023-11-03 01:41:00 +00:00
admin Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
asymkey Replace more db.DefaultContext (#27628) 2023-10-15 17:46:06 +02:00
auth Fix wrong xorm Delete usage (#27995) 2023-11-12 07:38:45 +00:00
avatars Final round of db.DefaultContext refactor (#27587) 2023-10-14 08:37:24 +00:00
db refactor: make db iterate context aware (#27710) 2023-10-21 10:05:29 +08:00
dbfs make writing main test easier (#27270) 2023-09-28 01:38:53 +00:00
fixtures Add unit tests for action runner token (#27670) 2023-10-19 07:24:24 +00:00
git Upgrade xorm to 1.3.4 (#27807) 2023-10-27 13:28:53 +02:00
issues Fix 500 when deleting a dismissed review (#27903) 2023-11-05 13:25:40 +00:00
migrations Add Index to pull_auto_merge.doer_id (#27811) 2023-10-30 08:39:29 +00:00
organization Even more db.DefaultContext refactor (#27352) 2023-10-03 10:30:41 +00:00
packages List all Debian package versions in Packages (#27786) 2023-10-29 14:14:47 +00:00
perm Even more db.DefaultContext refactor (#27352) 2023-10-03 10:30:41 +00:00
project More db.DefaultContext refactor (#27265) 2023-09-29 12:12:54 +00:00
pull Add Index to pull_auto_merge.doer_id (#27811) 2023-10-30 08:39:29 +00:00
repo Replace more db.DefaultContext (#27628) 2023-10-15 17:46:06 +02:00
secret Refactor secrets modification logic (#26873) 2023-09-05 15:21:02 +00:00
shared/types Display owner of a runner as a tooltip instead of static text (#24377) 2023-05-12 08:43:27 +00:00
system Replace more db.DefaultContext (#27628) 2023-10-15 17:46:06 +02:00
unit Make actions default enabled for newly created repository if global configuraion enabled (#27482) 2023-10-10 14:45:31 +00:00
unittest Upgrade xorm (#27673) 2023-10-19 10:25:57 +00:00
user Replace -1 with GhostUserID (#27703) 2023-10-20 14:43:08 +00:00
webhook Final round of db.DefaultContext refactor (#27587) 2023-10-14 08:37:24 +00:00
error.go Sync branches into databases (#22743) 2023-06-29 10:03:20 +00:00
fixture_generation.go Replace more db.DefaultContext (#27628) 2023-10-15 17:46:06 +02:00
fixture_test.go Replace more db.DefaultContext (#27628) 2023-10-15 17:46:06 +02:00
main_test.go make writing main test easier (#27270) 2023-09-28 01:38:53 +00:00
org.go Refactor the function RemoveOrgUser (#27582) 2023-11-03 14:01:45 +00:00
org_team.go Refactor the function RemoveOrgUser (#27582) 2023-11-03 14:01:45 +00:00
org_team_test.go Reduce usage of db.DefaultContext (#27073) 2023-09-14 17:09:32 +00:00
org_test.go Replace more db.DefaultContext (#27628) 2023-10-15 17:46:06 +02:00
repo.go Penultimate round of db.DefaultContext refactor (#27414) 2023-10-11 04:24:07 +00:00
repo_test.go Penultimate round of db.DefaultContext refactor (#27414) 2023-10-11 04:24:07 +00:00
repo_transfer.go Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
repo_transfer_test.go Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00