예제 #1
0
 public static function authorize($data, $publicApiKey, $hash)
 {
     $newToken = "";
     $row = DB::queryFirstRow("SELECT * FROM CWM_ApiKey as ak JOIN CWM_UserApiKey uak ON ak.Id = uak.ApiKeyId WHERE PublicKey=%s", $publicApiKey);
     if (!is_null($row) && strlen(trim($publicApiKey)) > 0) {
         $userId = $row['UserId'];
         $privateApiKey = $row['PrivateKey'];
         $apiKeyIndex = $row['Id'];
         $hashCheck = sha1($data . $privateApiKey . $publicApiKey);
         $result = $hashCheck == $hash;
         if ($result) {
             $oldToken = DB::queryOneField('TokenValue', 'SELECT * FROM CWM_ApiKeySession WHERE UserId=%?', $userId);
             if (!CWM_API::isTokenValid($oldToken)) {
                 $newToken = sha1($userId . $privateApiKey . $hashCheck . CWM_API::getDateTime(time()));
                 DB::insertUpdate('CWM_ApiKeySession', array('ApiKeyId' => $apiKeyIndex, 'LastAccess' => CWM_API::getDateTime(time()), 'UserId' => $userId, 'TokenValue' => $newToken));
             } else {
                 $newToken = $oldToken;
             }
         }
     }
     return $newToken;
 }
예제 #2
0
    echo CWM_API::getAsJson($file);
});
// Get a file by project ID and file name
$f3->route('GET ' . $apiBaseUrl . '/file/@projectId/@fileName/@tokenValue', function ($f3) {
    require_once $GLOBALS['dirRoot'] . '/api/File.class.php';
    $projectId = $f3->get('PARAMS.projectId');
    $fileName = $f3->get('PARAMS.fileName');
    $tokenValue = $f3->get('PARAMS.tokenValue');
    $file = CWM_File::getByProjectIdFileName($projectId, $fileName, $tokenValue);
    echo CWM_API::getAsJson($file);
});
// Create a file
$f3->route('POST ' . $apiBaseUrl . '/file/create/@tokenValue', function ($f3) {
    require_once $GLOBALS['dirRoot'] . '/api/File.class.php';
    $tokenValue = $f3->get('PARAMS.tokenValue');
    if (CWM_API::isTokenValid($tokenValue)) {
        $jsonData = json_decode($f3->get('BODY'));
        $_projectId = $jsonData->{'ProjectId'};
        $_fileName = $jsonData->{'Name'};
        $_fileData = $jsonData->{'Data'};
        $_userId = CWM_API::getUserId($tokenValue);
        $_solutionName = $jsonData->{'SolutionName'};
        $_projectName = $jsonData->{'ProjectName'};
        $_file = new CWM_File(-1, $_projectId, $_fileName, $_fileData, $_userId, $_solutionName, $_projectName, null);
        $_file->create();
        echo $_file->ID;
        //json_encode(array('ID' => $_file->ID));
    } else {
        echo -1;
    }
});