/** * Check user capability * * This is a hack function that add additional layout on top of WordPress * core functionality. Based on the capability passed in the $args array as * "0" element, it performs additional check on user's capability to manage * post. * * @param array $allCaps * @param array $metaCaps * @param array $args * * @return array * * @access public */ public function checkUserCap($allCaps, $metaCaps, $args) { //make sure that $args[2] is actually post ID if (isset($args[2]) && is_scalar($args[2])) { switch ($args[0]) { case 'edit_post': $object = AAM::getUser()->getObject('post', $args[2]); if ($object->has('backend.edit')) { $allCaps = $this->restrictPostActions($allCaps, $metaCaps); } break; case 'delete_post': $object = AAM::getUser()->getObject('post', $args[2]); if ($object->has('backend.delete')) { $allCaps = $this->restrictPostActions($allCaps, $metaCaps); } break; } } return $allCaps; }
/** * Filter posts from the list * * @param array $posts * * @return array * * @access public */ public function thePosts($posts) { $filtered = array(); foreach ($posts as $post) { $object = AAM::getUser()->getObject('post', $post->ID); if (!$object->has('frontend.list')) { $filtered[] = $post; } } return $filtered; }
/** * Check user capability * * This is a hack function that add additional layout on top of WordPress * core functionality. Based on the capability passed in the $args array as * "0" element, it performs additional check on user's capability to manage * post. * * @param array $allCaps * @param array $metaCaps * @param array $args * * @return array * * @access public */ public function checkUserCap($allCaps, $metaCaps, $args) { switch ($args[0]) { case 'edit_post': $object = AAM::getUser()->getObject('post', $args[2]); if ($object->has('backend.edit')) { $allCaps = $this->restrictPostActions($allCaps, $metaCaps); } break; case 'delete_post': $object = AAM::getUser()->getObject('post', $args[2]); if ($object->has('backend.delete')) { $allCaps = $this->restrictPostActions($allCaps, $metaCaps); } break; } return $allCaps; }