mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-09-10 15:48:29 +02:00
fix: make sure to use unaltered fields when saving a shadow copy for updated profiles or comments (#8533)
Follow-up of !6977 ### Manual testing - User **S** creates an organization **O** and posts a comment **C** (on a random issue); - User **R** report as abuse the comment **C**, the organization **O** as well as the user **S**; - User **S** changes the content of comment **C** and the description of organization **O** as well as the description of their own profile; - Check (within DB) that shadow copies are being created (and linked to corresponding abuse reports) for comment **C**, organization **O** and user **S** and the content is the one from the moment when the reports were submitted (therefore before the updates made by **S**). Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8533 Reviewed-by: Gusted <gusted@noreply.codeberg.org> Co-authored-by: floss4good <floss4good@disroot.org> Co-committed-by: floss4good <floss4good@disroot.org>
This commit is contained in:
parent
b83a554921
commit
95e8bbd5f0
11 changed files with 173 additions and 11 deletions
|
@ -927,7 +927,9 @@ func UpdateUserCols(ctx context.Context, u *User, cols ...string) error {
|
|||
|
||||
// If the user was reported as abusive and any of the columns being updated is relevant
|
||||
// for moderation purposes a shadow copy should be created before first update.
|
||||
if err := IfNeededCreateShadowCopyForUser(ctx, u, cols...); err != nil {
|
||||
// Since u is already altered at this point we are sending nil instead as an argument
|
||||
// so that the unaltered version will be retrieved from DB.
|
||||
if err := IfNeededCreateShadowCopyForUser(ctx, u.ID, nil, cols...); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue