예제 #1
0
 public function test_delete_success()
 {
     $r = self::factory()->response->create();
     $response = new \WeBWorK\Server\Response($r);
     $this->assertTrue($response->exists());
     $this->assertTrue($response->delete());
     $response_2 = new \WeBWorK\Server\Vote($r);
     $this->assertFalse($response_2->exists());
 }
예제 #2
0
 public function update_item($request)
 {
     $retval = false;
     $params = $request->get_params();
     if (isset($params['id']) && isset($params['is_answer'])) {
         $response = new \WeBWorK\Server\Response($params['id']);
         if ($response->exists()) {
             $response->set_is_answer($params['is_answer']);
             $retval = $response->save();
         }
     }
     $response = rest_ensure_response($retval);
     if ($retval) {
         $response->set_status(200);
     } else {
         $response->set_status(500);
     }
     return $response;
 }
예제 #3
0
 public function update_item_permissions_check($request)
 {
     if (!is_user_logged_in()) {
         return false;
     }
     $params = $request->get_params();
     if (!isset($params['id'])) {
         return false;
     }
     $response_id = $params['id'];
     $response = new \WeBWorK\Server\Response($response_id);
     if (!$response->exists()) {
         return false;
     }
     $question_id = $response->get_question_id();
     if (!$question_id) {
         return false;
     }
     // @todo modeling
     $question = get_post($question_id);
     if (!$question) {
         return false;
     }
     $user_is_admin = current_user_can('edit_others_posts');
     $user_is_admin = apply_filters('webwork_user_is_admin', $user_is_admin);
     return $user_is_admin || $question->post_author == get_current_user_id();
 }