mirror of
https://github.com/pocketbase/pocketbase.git
synced 2025-04-28 17:55:48 +02:00
[#2535] avoid mutating the cached request data on OAuth2 user create
This commit is contained in:
parent
86049ed048
commit
a291cb5ca7
@ -10,6 +10,8 @@
|
|||||||
|
|
||||||
- Removed unnecessary slice length check in `list.ExistInSlice` ([#2527](https://github.com/pocketbase/pocketbase/pull/2527); thanks @KunalSin9h).
|
- Removed unnecessary slice length check in `list.ExistInSlice` ([#2527](https://github.com/pocketbase/pocketbase/pull/2527); thanks @KunalSin9h).
|
||||||
|
|
||||||
|
- Avoid mutating the cached request data on OAuth2 user create ([#2535](https://github.com/pocketbase/pocketbase/discussions/2535)).
|
||||||
|
|
||||||
|
|
||||||
## v0.16.0
|
## v0.16.0
|
||||||
|
|
||||||
|
@ -190,9 +190,10 @@ func (api *recordAuthApi) authWithOAuth2(c echo.Context) error {
|
|||||||
|
|
||||||
form.SetBeforeNewRecordCreateFunc(func(createForm *forms.RecordUpsert, authRecord *models.Record, authUser *auth.AuthUser) error {
|
form.SetBeforeNewRecordCreateFunc(func(createForm *forms.RecordUpsert, authRecord *models.Record, authUser *auth.AuthUser) error {
|
||||||
return createForm.DrySubmit(func(txDao *daos.Dao) error {
|
return createForm.DrySubmit(func(txDao *daos.Dao) error {
|
||||||
requestData := RequestData(c)
|
|
||||||
requestData.Data = form.CreateData
|
|
||||||
event.IsNewRecord = true
|
event.IsNewRecord = true
|
||||||
|
// clone the current request data and assign the form create data as its body data
|
||||||
|
requestData := *RequestData(c)
|
||||||
|
requestData.Data = form.CreateData
|
||||||
|
|
||||||
createRuleFunc := func(q *dbx.SelectQuery) error {
|
createRuleFunc := func(q *dbx.SelectQuery) error {
|
||||||
admin, _ := c.Get(ContextAdminKey).(*models.Admin)
|
admin, _ := c.Get(ContextAdminKey).(*models.Admin)
|
||||||
@ -205,7 +206,7 @@ func (api *recordAuthApi) authWithOAuth2(c echo.Context) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if *collection.CreateRule != "" {
|
if *collection.CreateRule != "" {
|
||||||
resolver := resolvers.NewRecordFieldResolver(txDao, collection, requestData, true)
|
resolver := resolvers.NewRecordFieldResolver(txDao, collection, &requestData, true)
|
||||||
expr, err := search.FilterData(*collection.CreateRule).BuildExpr(resolver)
|
expr, err := search.FilterData(*collection.CreateRule).BuildExpr(resolver)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
Loading…
x
Reference in New Issue
Block a user