WordPress.org

Make WordPress Core

Opened 10 months ago

Last modified 3 months ago

#24572 new enhancement

Should be able to unlock a post outside of ajax handler

Reported by: bbrooks Owned by:
Milestone: Future Release Priority: normal
Severity: normal Version:
Component: Posts, Post Types Keywords: needs-patch
Focuses: administration Cc:

Description

Right now you can programmatically lock a post for editing using wp_set_post_lock, but you can't unlock it in a similar fashion. The only unlocking code is found in the ajax handler wp_ajax_wp_remove_post_lock.

I've created a function wp_unset_post_lock in the style of wp_set_post_lock that unlocks a post with a given ID. I've also refactored wp_ajax_wp_remove_post_lock to use this function.

The only resulting difference is that we use the current user's ID instead of the one supplied in the ajax call, but since we're unlocking the post instead of locking it, it doesn't really matter who's ID is in the meta.

This change was requested by Joey Kudish of the VIP team.

Attachments (2)

wp_unset_post_lock.patch (2.0 KB) - added by bbrooks 10 months ago.
New post unlocking function and refactor of an ajax handler to use new function
24572.patch (3.0 KB) - added by ocean90 10 months ago.
wp_remove_post_lock()

Download all attachments as: .zip

Change History (10)

bbrooks10 months ago

New post unlocking function and refactor of an ajax handler to use new function

comment:1 batmoo10 months ago

  • Cc batmoo@… added

comment:2 johnjamesjacoby10 months ago

  • Cc johnjamesjacoby added

comment:3 nacin10 months ago

  • Cc batmoo@… johnjamesjacoby removed
  • Keywords do-not-punt added
  • Milestone changed from Awaiting Review to 3.6

This is a very good idea.

I am not sure if "unset" is the right word. "remove" or "release", maybe?

comment:4 jkudish10 months ago

  • Cc jkudish batmoo@… johnjamesjacoby added

comment:5 bbrooks10 months ago

Yeah, the function is hard to name because honestly the whole logic of unlocking posts is less-than-intuitive. To unlock a post, you merely set the lock to a time in the past almost as long as the 'timeout due to inactivity' criteria in the lock mechanism.

That said, 'expire' might be a better verb. How about "wp_expire_post_lock"?

If, however, we're not concerned with the name reflecting the mechanism, it should really just be wp_lock_post and wp_unlock_post.

ocean9010 months ago

wp_remove_post_lock()

comment:7 nacin10 months ago

  • Keywords do-not-punt removed
  • Milestone changed from 3.6 to Future Release

After some discussion in IRC, this doesn't actually make sense as a 1:1 handler => API change. Let's punt this and re-consider soon.

If necessary, you can unconditionally clear a lock by removing _edit_lock.

comment:8 nacin3 months ago

  • Component changed from Administration to Posts, Post Types
  • Focuses administration added
Note: See TracTickets for help on using tickets.