certificate getRenewDate
This commit is contained in:
parent
203b3058a2
commit
2630d0b56c
5 changed files with 26 additions and 25 deletions
|
@ -825,10 +825,10 @@ $collections = [
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'$id' => 'updated',
|
'$id' => 'updated',
|
||||||
'type' => Database::VAR_DATETIME, // ok!
|
'type' => Database::VAR_DATETIME,
|
||||||
'format' => '',
|
'format' => '',
|
||||||
'size' => 0,
|
'size' => 0,
|
||||||
'signed' => true,
|
'signed' => false,
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
'array' => false,
|
'array' => false,
|
||||||
|
@ -968,7 +968,7 @@ $collections = [
|
||||||
'size' => 0,
|
'size' => 0,
|
||||||
'signed' => false,
|
'signed' => false,
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'default' => 0,
|
'default' => null,
|
||||||
'array' => false,
|
'array' => false,
|
||||||
'filters' => [],
|
'filters' => [],
|
||||||
],
|
],
|
||||||
|
@ -1165,7 +1165,7 @@ $collections = [
|
||||||
'type' => Database::VAR_DATETIME,
|
'type' => Database::VAR_DATETIME,
|
||||||
'format' => '',
|
'format' => '',
|
||||||
'size' => 0,
|
'size' => 0,
|
||||||
'signed' => true,
|
'signed' => false,
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
'array' => false,
|
'array' => false,
|
||||||
|
@ -1187,7 +1187,7 @@ $collections = [
|
||||||
'type' => Database::VAR_DATETIME,
|
'type' => Database::VAR_DATETIME,
|
||||||
'format' => '',
|
'format' => '',
|
||||||
'size' => 0,
|
'size' => 0,
|
||||||
'signed' => true,
|
'signed' => false,
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
'array' => false,
|
'array' => false,
|
||||||
|
@ -1350,7 +1350,7 @@ $collections = [
|
||||||
'type' => Database::VAR_DATETIME,
|
'type' => Database::VAR_DATETIME,
|
||||||
'format' => '',
|
'format' => '',
|
||||||
'size' => 0,
|
'size' => 0,
|
||||||
'signed' => true,
|
'signed' => false,
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
'array' => false,
|
'array' => false,
|
||||||
|
@ -1455,7 +1455,7 @@ $collections = [
|
||||||
'type' => Database::VAR_DATETIME,
|
'type' => Database::VAR_DATETIME,
|
||||||
'format' => '',
|
'format' => '',
|
||||||
'size' => 0,
|
'size' => 0,
|
||||||
'signed' => true,
|
'signed' => false,
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
'array' => false,
|
'array' => false,
|
||||||
|
@ -1488,7 +1488,7 @@ $collections = [
|
||||||
'type' => Database::VAR_DATETIME,
|
'type' => Database::VAR_DATETIME,
|
||||||
'format' => '',
|
'format' => '',
|
||||||
'size' => 0,
|
'size' => 0,
|
||||||
'signed' => true,
|
'signed' => false,
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
'array' => false,
|
'array' => false,
|
||||||
|
@ -2459,10 +2459,10 @@ $collections = [
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'$id' => 'issueDate',
|
'$id' => 'issueDate',
|
||||||
'type' => Database::VAR_DATETIME, // ok!
|
'type' => Database::VAR_DATETIME,
|
||||||
'format' => '',
|
'format' => '',
|
||||||
'size' => 0,
|
'size' => 0,
|
||||||
'signed' => true,
|
'signed' => false,
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
'array' => false,
|
'array' => false,
|
||||||
|
@ -2470,10 +2470,10 @@ $collections = [
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'$id' => 'renewDate',
|
'$id' => 'renewDate',
|
||||||
'type' => Database::VAR_INTEGER, // cert.pem is time stamp?
|
'type' => Database::VAR_DATETIME,
|
||||||
'format' => '',
|
'format' => '',
|
||||||
'size' => 0,
|
'size' => 0,
|
||||||
'signed' => true,
|
'signed' => false,
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
'array' => false,
|
'array' => false,
|
||||||
|
@ -2506,7 +2506,7 @@ $collections = [
|
||||||
'type' => Database::VAR_DATETIME,
|
'type' => Database::VAR_DATETIME,
|
||||||
'format' => '',
|
'format' => '',
|
||||||
'size' => 0,
|
'size' => 0,
|
||||||
'signed' => true,
|
'signed' => false,
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
'array' => false,
|
'array' => false,
|
||||||
|
|
|
@ -19,6 +19,7 @@ use Utopia\Database\Database;
|
||||||
use Utopia\Database\Document;
|
use Utopia\Database\Document;
|
||||||
use Utopia\Database\Query;
|
use Utopia\Database\Query;
|
||||||
use Utopia\Database\Validator\Authorization;
|
use Utopia\Database\Validator\Authorization;
|
||||||
|
use Utopia\Database\Validator\DatetimeValidation;
|
||||||
use Utopia\Database\Validator\UID;
|
use Utopia\Database\Validator\UID;
|
||||||
use Utopia\Domains\Domain;
|
use Utopia\Domains\Domain;
|
||||||
use Utopia\Registry\Registry;
|
use Utopia\Registry\Registry;
|
||||||
|
@ -819,10 +820,10 @@ App::post('/v1/projects/:projectId/keys')
|
||||||
->param('projectId', null, new UID(), 'Project unique ID.')
|
->param('projectId', null, new UID(), 'Project unique ID.')
|
||||||
->param('name', null, new Text(128), 'Key name. Max length: 128 chars.')
|
->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('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('response')
|
||||||
->inject('dbForConsole')
|
->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);
|
$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('keyId', null, new UID(), 'Key unique ID.')
|
||||||
->param('name', null, new Text(128), 'Key name. Max length: 128 chars.')
|
->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('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('response')
|
||||||
->inject('dbForConsole')
|
->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);
|
$project = $dbForConsole->getDocument('projects', $projectId);
|
||||||
|
|
||||||
|
|
|
@ -296,10 +296,9 @@ class CertificatesV1 extends Worker
|
||||||
{
|
{
|
||||||
$certPath = APP_STORAGE_CERTIFICATES . '/' . $domain . '/cert.pem';
|
$certPath = APP_STORAGE_CERTIFICATES . '/' . $domain . '/cert.pem';
|
||||||
$certData = openssl_x509_parse(file_get_contents($certPath));
|
$certData = openssl_x509_parse(file_get_contents($certPath));
|
||||||
$validTo = $certData['validTo_time_t'] ?? 0;
|
$validTo = $certData['validTo_time_t'] ?? null;
|
||||||
$expiryInAdvance = (60 * 60 * 24 * 30); // 30 days
|
$dt = (new \DateTime())->setTimestamp($validTo);
|
||||||
|
return Database::dateAddSeconds($dt, -60 * 60 * 24 * 30); // -30 days
|
||||||
return $validTo - $expiryInAdvance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -35,10 +35,10 @@ class Token extends Model
|
||||||
'example' => '',
|
'example' => '',
|
||||||
])
|
])
|
||||||
->addRule('expire', [
|
->addRule('expire', [
|
||||||
'type' => self::TYPE_INTEGER,
|
'type' => self::TYPE_DATETIME,
|
||||||
'description' => 'Token expiration date in Unix timestamp.',
|
'description' => 'Token expiration date in Unix timestamp.',
|
||||||
'default' => 0,
|
'default' => '',
|
||||||
'example' => 1592981250,
|
'example' => '1975-12-06 13:30:59',
|
||||||
])
|
])
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ use Tests\E2E\Scopes\Scope;
|
||||||
use Tests\E2E\Scopes\ProjectCustom;
|
use Tests\E2E\Scopes\ProjectCustom;
|
||||||
use Tests\E2E\Scopes\SideClient;
|
use Tests\E2E\Scopes\SideClient;
|
||||||
|
|
||||||
|
use Utopia\Database\Database;
|
||||||
use function sleep;
|
use function sleep;
|
||||||
|
|
||||||
class AccountCustomClientTest extends Scope
|
class AccountCustomClientTest extends Scope
|
||||||
|
@ -538,7 +539,7 @@ class AccountCustomClientTest extends Scope
|
||||||
$this->assertEquals(200, $response['headers']['status-code']);
|
$this->assertEquals(200, $response['headers']['status-code']);
|
||||||
$this->assertEquals('123456', $response['body']['providerAccessToken']);
|
$this->assertEquals('123456', $response['body']['providerAccessToken']);
|
||||||
$this->assertEquals('tuvwxyz', $response['body']['providerRefreshToken']);
|
$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'];
|
$initialExpiry = $response['body']['providerAccessTokenExpiry'];
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue