-------------------------------------------------------------------
(e *core.RequestEvent, record *core.Record)
| 629 | // ------------------------------------------------------------------- |
| 630 | |
| 631 | func recordDataFromRequest(e *core.RequestEvent, record *core.Record) (map[string]any, error) { |
| 632 | info, err := e.RequestInfo() |
| 633 | if err != nil { |
| 634 | return nil, err |
| 635 | } |
| 636 | |
| 637 | // resolve regular fields |
| 638 | result := record.ReplaceModifiers(info.Body) |
| 639 | |
| 640 | // resolve uploaded files |
| 641 | uploadedFiles, err := extractUploadedFiles(e, record.Collection(), "") |
| 642 | if err != nil { |
| 643 | return nil, err |
| 644 | } |
| 645 | if len(uploadedFiles) > 0 { |
| 646 | for k, files := range uploadedFiles { |
| 647 | uploaded := make([]any, 0, len(files)) |
| 648 | |
| 649 | // if not remove/prepend/append -> merge with the submitted |
| 650 | // info.Body values to prevent accidental old files deletion |
| 651 | if info.Body[k] != nil && |
| 652 | !strings.HasPrefix(k, "+") && |
| 653 | !strings.HasSuffix(k, "+") && |
| 654 | !strings.HasSuffix(k, "-") { |
| 655 | existing := list.ToUniqueStringSlice(info.Body[k]) |
| 656 | for _, name := range existing { |
| 657 | uploaded = append(uploaded, name) |
| 658 | } |
| 659 | } |
| 660 | |
| 661 | for _, file := range files { |
| 662 | uploaded = append(uploaded, file) |
| 663 | } |
| 664 | |
| 665 | result[k] = uploaded |
| 666 | } |
| 667 | |
| 668 | result = record.ReplaceModifiers(result) |
| 669 | } |
| 670 | |
| 671 | isAuth := record.Collection().IsAuth() |
| 672 | |
| 673 | // unset hidden fields for non-superusers |
| 674 | if !info.HasSuperuserAuth() { |
| 675 | for _, f := range record.Collection().Fields { |
| 676 | if f.GetHidden() { |
| 677 | // exception for the auth collection "password" field |
| 678 | if isAuth && f.GetName() == core.FieldNamePassword { |
| 679 | continue |
| 680 | } |
| 681 | |
| 682 | delete(result, f.GetName()) |
| 683 | } |
| 684 | } |
| 685 | } |
| 686 | |
| 687 | return result, nil |
| 688 | } |
no test coverage detected
searching dependent graphs…