/** * 作為靜態函數使用 * @param KALSResource $resource * @param Action $action * @param KALSActor $actor * @return boolean */ function auth($resource, $action, $actor) { $auth = new Authorize_manager(); $auth->set_resource($resource); $auth->set_actor($actor); return $auth->allow($action); }
public function export_webpage_data($url) { $data = array(); //$data['class'] = get_class($this); $data['annotation_id'] = $this->get_id(); $note = $this->get_note(); if (isset($note)) { $data['note'] = $this->get_note(); } $data['user'] = $this->get_user()->export_simple_data(); $data['type'] = $this->get_type()->export_data(); $data['scope'] = $this->get_scopes()->export_webpage_data($url); $data['timestamp'] = $this->get_create_epoch(); $respond_to_topic = $this->get_respond_to_topic(); if (isset($respond_to_topic)) { $data['topic'] = $respond_to_topic->export_simple_data(); } $respond_to_coll = $this->get_respond_to_coll(); if (isset($respond_to_coll) && $respond_to_coll->length() > 0) { $data['respond_to_coll'] = $respond_to_coll->export_respond_to_data(); } $current_user = get_context_user(); $is_my_annotation = FALSE; if (isset($current_user) && $this->get_user()->equals($current_user)) { $is_my_annotation = TRUE; } //if ($this->is_respond() === FALSE) //{ if (is_class($current_user, 'User') && $is_my_annotation === FALSE) { $data['is_like'] = $this->is_liked($current_user); } $data['like_count'] = $this->get_like_count(); //} if ($is_my_annotation === TRUE) { $data['policy_type'] = 'public'; $this->_CI_load('libraries', 'policy/Authorize_manager'); $auth = new Authorize_manager(); $auth->set_resource($this); $action = 5; $actors = $auth->get_actors($action); //test_msg($actors); if (count($actors) == 1 && $this->get_user()->equals($actors[0])) { $data['policy_type'] = 'private'; } else { if (count($actors) > 0) { $data['policy_type'] = 'share'; $actors_data = array(); foreach ($actors as $actor) { $actors_data[] = $actor->export_simple_data(); } $data['share_list'] = $actors_data; } } if ($this->is_respond() === FALSE) { //匯出建議 $recommend = $this->get_recommend(); if (isset($recommend)) { $recommend_data = $recommend->export_webpage_data($url); if (isset($recommend_data)) { $data['recommend'] = $recommend_data; } } } } return $data; }