1
0
Fork 0
mirror of synced 2024-06-26 18:20:43 +12:00

certificate getRenewDate

This commit is contained in:
fogelito 2022-07-05 19:29:12 +03:00
parent 203b3058a2
commit 2630d0b56c
5 changed files with 26 additions and 25 deletions

View file

@ -825,10 +825,10 @@ $collections = [
],
[
'$id' => 'updated',
'type' => Database::VAR_DATETIME, // ok!
'type' => Database::VAR_DATETIME,
'format' => '',
'size' => 0,
'signed' => true,
'signed' => false,
'required' => false,
'default' => null,
'array' => false,
@ -968,7 +968,7 @@ $collections = [
'size' => 0,
'signed' => false,
'required' => false,
'default' => 0,
'default' => null,
'array' => false,
'filters' => [],
],
@ -1165,7 +1165,7 @@ $collections = [
'type' => Database::VAR_DATETIME,
'format' => '',
'size' => 0,
'signed' => true,
'signed' => false,
'required' => false,
'default' => null,
'array' => false,
@ -1187,7 +1187,7 @@ $collections = [
'type' => Database::VAR_DATETIME,
'format' => '',
'size' => 0,
'signed' => true,
'signed' => false,
'required' => false,
'default' => null,
'array' => false,
@ -1350,7 +1350,7 @@ $collections = [
'type' => Database::VAR_DATETIME,
'format' => '',
'size' => 0,
'signed' => true,
'signed' => false,
'required' => false,
'default' => null,
'array' => false,
@ -1455,7 +1455,7 @@ $collections = [
'type' => Database::VAR_DATETIME,
'format' => '',
'size' => 0,
'signed' => true,
'signed' => false,
'required' => false,
'default' => null,
'array' => false,
@ -1488,7 +1488,7 @@ $collections = [
'type' => Database::VAR_DATETIME,
'format' => '',
'size' => 0,
'signed' => true,
'signed' => false,
'required' => false,
'default' => null,
'array' => false,
@ -2459,10 +2459,10 @@ $collections = [
],
[
'$id' => 'issueDate',
'type' => Database::VAR_DATETIME, // ok!
'type' => Database::VAR_DATETIME,
'format' => '',
'size' => 0,
'signed' => true,
'signed' => false,
'required' => false,
'default' => null,
'array' => false,
@ -2470,10 +2470,10 @@ $collections = [
],
[
'$id' => 'renewDate',
'type' => Database::VAR_INTEGER, // cert.pem is time stamp?
'type' => Database::VAR_DATETIME,
'format' => '',
'size' => 0,
'signed' => true,
'signed' => false,
'required' => false,
'default' => null,
'array' => false,
@ -2506,7 +2506,7 @@ $collections = [
'type' => Database::VAR_DATETIME,
'format' => '',
'size' => 0,
'signed' => true,
'signed' => false,
'required' => false,
'default' => null,
'array' => false,

View file

@ -19,6 +19,7 @@ use Utopia\Database\Database;
use Utopia\Database\Document;
use Utopia\Database\Query;
use Utopia\Database\Validator\Authorization;
use Utopia\Database\Validator\DatetimeValidation;
use Utopia\Database\Validator\UID;
use Utopia\Domains\Domain;
use Utopia\Registry\Registry;
@ -819,10 +820,10 @@ App::post('/v1/projects/:projectId/keys')
->param('projectId', null, new UID(), 'Project unique ID.')
->param('name', null, new Text(128), 'Key name. Max length: 128 chars.')
->param('scopes', null, new ArrayList(new WhiteList(array_keys(Config::getParam('scopes')), true), APP_LIMIT_ARRAY_PARAMS_SIZE), 'Key scopes list. Maximum of ' . APP_LIMIT_ARRAY_PARAMS_SIZE . ' scopes are allowed.')
->param('expire', 0, new Integer(), 'Key expiration time in Unix timestamp. Use 0 for unlimited expiration.', true)
->param('expire', null, new DatetimeValidation(), 'Expiration time in DateTime. Use null for unlimited expiration.', true)
->inject('response')
->inject('dbForConsole')
->action(function (string $projectId, string $name, array $scopes, int $expire, Response $response, Database $dbForConsole) {
->action(function (string $projectId, string $name, array $scopes, string $expire, Response $response, Database $dbForConsole) {
$project = $dbForConsole->getDocument('projects', $projectId);
@ -929,10 +930,10 @@ App::put('/v1/projects/:projectId/keys/:keyId')
->param('keyId', null, new UID(), 'Key unique ID.')
->param('name', null, new Text(128), 'Key name. Max length: 128 chars.')
->param('scopes', null, new ArrayList(new WhiteList(array_keys(Config::getParam('scopes')), true), APP_LIMIT_ARRAY_PARAMS_SIZE), 'Key scopes list. Maximum of ' . APP_LIMIT_ARRAY_PARAMS_SIZE . ' events are allowed.')
->param('expire', 0, new Integer(), 'Key expiration time in Unix timestamp. Use 0 for unlimited expiration.', true)
->param('expire', null, new DatetimeValidation(), 'Expiration time in DateTime. Use null for unlimited expiration.', true)
->inject('response')
->inject('dbForConsole')
->action(function (string $projectId, string $keyId, string $name, array $scopes, int $expire, Response $response, Database $dbForConsole) {
->action(function (string $projectId, string $keyId, string $name, array $scopes, string $expire, Response $response, Database $dbForConsole) {
$project = $dbForConsole->getDocument('projects', $projectId);

View file

@ -296,10 +296,9 @@ class CertificatesV1 extends Worker
{
$certPath = APP_STORAGE_CERTIFICATES . '/' . $domain . '/cert.pem';
$certData = openssl_x509_parse(file_get_contents($certPath));
$validTo = $certData['validTo_time_t'] ?? 0;
$expiryInAdvance = (60 * 60 * 24 * 30); // 30 days
return $validTo - $expiryInAdvance;
$validTo = $certData['validTo_time_t'] ?? null;
$dt = (new \DateTime())->setTimestamp($validTo);
return Database::dateAddSeconds($dt, -60 * 60 * 24 * 30); // -30 days
}
/**

View file

@ -35,10 +35,10 @@ class Token extends Model
'example' => '',
])
->addRule('expire', [
'type' => self::TYPE_INTEGER,
'type' => self::TYPE_DATETIME,
'description' => 'Token expiration date in Unix timestamp.',
'default' => 0,
'example' => 1592981250,
'default' => '',
'example' => '1975-12-06 13:30:59',
])
;
}

View file

@ -8,6 +8,7 @@ use Tests\E2E\Scopes\Scope;
use Tests\E2E\Scopes\ProjectCustom;
use Tests\E2E\Scopes\SideClient;
use Utopia\Database\Database;
use function sleep;
class AccountCustomClientTest extends Scope
@ -538,7 +539,7 @@ class AccountCustomClientTest extends Scope
$this->assertEquals(200, $response['headers']['status-code']);
$this->assertEquals('123456', $response['body']['providerAccessToken']);
$this->assertEquals('tuvwxyz', $response['body']['providerRefreshToken']);
$this->assertGreaterThan(\time() + 14400 - 5, $response['body']['providerAccessTokenExpiry']); // 5 seconds allowed networking delay
$this->assertGreaterThan(Database::dateAddSeconds(new \DateTime(), 14400 - 5), $response['body']['providerAccessTokenExpiry']); // 5 seconds allowed networking delay
$initialExpiry = $response['body']['providerAccessTokenExpiry'];