Make WordPress Core

Opened 11 years ago

Last modified 5 years ago

#24572 new enhancement

Should be able to unlock a post outside of ajax handler

Reported by: bbrooks's profile bbrooks Owned by:
Milestone: Priority: normal
Severity: normal Version:
Component: Posts, Post Types Keywords: needs-patch dev-feedback
Focuses: administration Cc:


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 11 years ago.
New post unlocking function and refactor of an ajax handler to use new function
24572.patch (3.0 KB) - added by ocean90 11 years ago.

Download all attachments as: .zip

Change History (11)

11 years ago

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

#1 @batmoo
11 years ago

  • Cc batmoo@… added

#2 @johnjamesjacoby
11 years ago

  • Cc johnjamesjacoby added

#3 @nacin
11 years 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?

#4 @jkudish
11 years ago

  • Cc jkudish batmoo@… johnjamesjacoby added

#5 @bbrooks
11 years 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.

11 years ago


#7 @nacin
11 years 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.

#8 @nacin
10 years ago

  • Component changed from Administration to Posts, Post Types
  • Focuses administration added

#9 @chriscct7
9 years ago

  • Keywords dev-feedback added
Note: See TracTickets for help on using tickets.