/** 
  * 
  * @return \models\API2ApplicationUserTokenModel
  */
 public function loadByAppAndUserTokenAndUserSecret(API2ApplicationModel $app, $userToken, $userSecret)
 {
     global $DB;
     $stat = $DB->prepare("SELECT api2_application_user_token_information.*, user_in_api2_application_information.is_editor " . " FROM api2_application_user_token_information" . " JOIN user_in_api2_application_information ON user_in_api2_application_information.is_in_app = '1' " . " AND user_in_api2_application_information.user_id = api2_application_user_token_information.user_id " . " AND user_in_api2_application_information.api2_application_id = api2_application_user_token_information.api2_application_id " . " WHERE api2_application_user_token_information.api2_application_id = :api2_application_id " . " AND api2_application_user_token_information.user_token = :user_token AND api2_application_user_token_information.user_secret = :user_secret");
     $stat->execute(array('api2_application_id' => $app->getId(), 'user_token' => $userToken, 'user_secret' => $userSecret));
     if ($stat->rowCount() > 0) {
         $token = new API2ApplicationUserTokenModel();
         $token->setFromDataBaseRow($stat->fetch());
         return $token;
     }
 }
 /** 
  * 
  * @return \models\API2ApplicationModel
  */
 public function loadByAppAndRequestToken(API2ApplicationModel $app, $requestToken)
 {
     global $DB;
     $stat = $DB->prepare("SELECT api2_application_request_token.* FROM api2_application_request_token" . " WHERE api2_application_id = :api2_application_id AND request_token = :request_token");
     $stat->execute(array('api2_application_id' => $app->getId(), 'request_token' => $requestToken));
     if ($stat->rowCount() > 0) {
         $token = new API2ApplicationRequestTokenModel();
         $token->setFromDataBaseRow($stat->fetch());
         return $token;
     }
 }
 /** 
  * 
  * @return \models\UserInAPI2ApplicationModel
  */
 public function loadByUserAndApplication(UserAccountModel $user, API2ApplicationModel $app)
 {
     global $DB;
     $stat = $DB->prepare("SELECT user_in_api2_application_information.* FROM user_in_api2_application_information " . "WHERE api2_application_id =:api2_application_id AND user_id =:user_id");
     $stat->execute(array('api2_application_id' => $app->getId(), 'user_id' => $user->getId()));
     if ($stat->rowCount() > 0) {
         $app = new UserInAPI2ApplicationModel();
         $app->setFromDataBaseRow($stat->fetch());
         return $app;
     }
 }
 public function fetchAll()
 {
     $this->buildStart();
     $this->build();
     $this->buildStat();
     $results = array();
     while ($data = $this->stat->fetch()) {
         $area = new API2ApplicationModel();
         $area->setFromDataBaseRow($data);
         $results[] = $area;
     }
     return $results;
 }
 /**
  * 
  * @return \models\API2ApplicationModel
  */
 public function edit(API2ApplicationModel $app, UserAccountModel $user = null)
 {
     global $DB;
     $stat = $DB->prepare("UPDATE api2_application_information SET " . "user_id = :user_id,title = :title,description = :description,is_editor = :is_editor," . "is_callback_url = :is_callback_url," . "is_callback_display = :is_callback_display,is_callback_javascript = :is_callback_javascript," . "allowed_callback_urls = :allowed_callback_urls,is_auto_approve = :is_auto_approve,is_all_sites = :is_all_sites," . "is_closed_by_sys_admin = :is_closed_by_sys_admin,closed_by_sys_admin_reason = :closed_by_sys_admin_reason" . " WHERE id=:id");
     $stat->execute(array('user_id' => $app->getUserId(), 'title' => $app->getTitle(), 'description' => $app->getDescription(), 'is_editor' => $app->getIsEditor() ? 1 : 0, 'is_callback_url' => $app->getIsCallbackUrl() ? 1 : 0, 'is_callback_display' => $app->getIsCallbackDisplay() ? 1 : 0, 'is_callback_javascript' => $app->getIsCallbackJavascript() ? 1 : 0, 'allowed_callback_urls' => $app->getAllowedCallbackUrls(), 'is_auto_approve' => $app->getIsAutoApprove() ? 1 : 0, 'is_all_sites' => $app->getIsAllSites() ? 1 : 0, 'is_closed_by_sys_admin' => $app->getIsClosedBySysAdmin() ? 1 : 0, 'closed_by_sys_admin_reason' => $app->getClosedBySysAdminReason(), 'id' => $app->getId()));
 }
 /**
  * @dataProvider dataForTtestCallbackURLMatches
  */
 function testCallbackURLMatches($allowed_urls, $url, $result)
 {
     $app = new API2ApplicationModel();
     $app->setAllowedCallbackUrls($allowed_urls);
     $this->assertEquals($result, $app->isCallbackUrlAllowed($url));
 }
 public function setFromApp(API2ApplicationModel $app)
 {
     $this->is_editor = $app->getIsEditor() ? 1 : 0;
 }