private function prepare_qb(midgardmvc_core_node $node, $limit, $offset = 0) { $qb = new midgard_query_builder('fi_openkeidas_articles_article'); $qb->add_constraint('node', 'INTREE', $node->id); if (!midgardmvc_ui_create_injector::can_use()) { // Regular user, hide unapproved articles // TODO: This check should be moved to authentication service when QB has signals $qb->add_constraint('metadata.isapproved', '=', true); } $qb->add_order('metadata.created', 'DESC'); $qb->set_limit($limit); $qb->set_offset($offset); return $qb; }
public function load_object(array $args) { try { $this->object = new fi_openkeidas_articles_article($args['item']); } catch (midgard_error_exception $e) { throw new midgardmvc_exception_notfound($e->getMessage()); } if (!midgardmvc_ui_create_injector::can_use() && !$this->object->is_approved()) { // Regular user, hide unapproved articles // TODO: This check should be moved to authentication throw new midgardmvc_exception_notfound("No article found"); } $this->object = new midgardmvc_ui_create_decorator($this->object); midgardmvc_core::get_instance()->head->set_title($this->object->title); }