{"id":128157,"date":"2013-07-02T04:47:37","date_gmt":"2013-07-02T04:47:37","guid":{"rendered":"https:\/\/2013.sf.wordcamp.org\/?post_type=wcb_session&#038;p=128157"},"modified":"2013-07-02T04:47:37","modified_gmt":"2013-07-02T04:47:37","slug":"current-user-can-watch-this-talk","status":"publish","type":"wcb_session","link":"https:\/\/sf.wordcamp.org\/2013\/session\/current-user-can-watch-this-talk\/","title":{"rendered":"Current User Can Watch This Talk"},"content":{"rendered":"<p>At first glance, the WordPress roles and capabilities system is simple. Users have roles, roles have capabilities, and plugins can make simple changes to them. Done, right? Not quite: You\u2019ve been doing it the hard way. A deeper look inside the API reveals a surprising amount of flexibility, including the single most powerful (and dangerous) filter in WordPress. In this talk, you\u2019ll learn how capabilities are \u201cmapped\u201d to other capabilities, and what the difference between primitive and meta capabilities means for your plugins and custom post types. We\u2019ll explore the true hidden powers of the API, like using capability mapping to selectively grant and revoke privileges on the fly, making complex user management more maintainable.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>At first glance, the WordPress roles and capabilities system is simple. Users have roles, roles have capabilities, and plugins can make simple changes to them. Done, right? Not quite: You\u2019ve been doing it the hard way. A deeper look inside the API reveals a surprising amount of flexibility, including the single most powerful (and dangerous) [&hellip;]<\/p>\n","protected":false},"author":8002317,"featured_media":0,"template":"","meta":{"_crdt_document":"","jetpack_post_was_ever_published":false,"_wcpt_session_time":1374942600,"_wcpt_session_duration":1800,"_wcpt_session_type":"session","_wcpt_session_slides":"","_wcpt_session_video":"","_wcpt_speaker_id":[127929],"footnotes":""},"session_track":[152006],"session_category":[],"class_list":["post-128157","wcb_session","type-wcb_session","status-publish","hentry","wcb_track-developers-and-designers"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3iFlw-xl3","session_date_time":{"date":"July 27, 2013","time":"4:30 pm"},"session_speakers":[{"id":"127929","slug":"andrew-nacin","name":"Andrew Nacin","link":"https:\/\/sf.wordcamp.org\/2013\/speaker\/andrew-nacin\/"}],"session_cats_rendered":null,"_links":{"self":[{"href":"https:\/\/sf.wordcamp.org\/2013\/wp-json\/wp\/v2\/sessions\/128157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sf.wordcamp.org\/2013\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/sf.wordcamp.org\/2013\/wp-json\/wp\/v2\/types\/wcb_session"}],"version-history":[{"count":1,"href":"https:\/\/sf.wordcamp.org\/2013\/wp-json\/wp\/v2\/sessions\/128157\/revisions"}],"predecessor-version":[{"id":128158,"href":"https:\/\/sf.wordcamp.org\/2013\/wp-json\/wp\/v2\/sessions\/128157\/revisions\/128158"}],"speakers":[{"embeddable":true,"href":"https:\/\/sf.wordcamp.org\/2013\/wp-json\/wp\/v2\/speakers\/127929"}],"author":[{"embeddable":true,"href":"https:\/\/sf.wordcamp.org\/2013\/wp-json\/wporg\/v1\/users\/andreamiddleton"}],"wp:attachment":[{"href":"https:\/\/sf.wordcamp.org\/2013\/wp-json\/wp\/v2\/media?parent=128157"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/sf.wordcamp.org\/2013\/wp-json\/wp\/v2\/session_track?post=128157"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/sf.wordcamp.org\/2013\/wp-json\/wp\/v2\/session_category?post=128157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}