mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-12 20:43:25 +00:00
Add Secrets to ApplicationBox.
This commit is contained in:
@@ -95,7 +95,7 @@ class V1Controller extends Controller
|
|||||||
$oAuth2Account = $token->getAccount();
|
$oAuth2Account = $token->getAccount();
|
||||||
$oAuth2App = $oAuth2Account->getApplication();
|
$oAuth2App = $oAuth2Account->getApplication();
|
||||||
|
|
||||||
$conf = $this->getConfiguration();
|
$conf = $this->getConf();
|
||||||
if ($oAuth2App->getClientId() == \API_OAuth2_Application_Navigator::CLIENT_ID && !$conf->get(['registry', 'api-clients', 'navigator-enabled'])) {
|
if ($oAuth2App->getClientId() == \API_OAuth2_Application_Navigator::CLIENT_ID && !$conf->get(['registry', 'api-clients', 'navigator-enabled'])) {
|
||||||
return Result::createError($request, 403, 'The use of Phraseanet Navigator is not allowed')->createResponse();
|
return Result::createError($request, 403, 'The use of Phraseanet Navigator is not allowed')->createResponse();
|
||||||
}
|
}
|
||||||
@@ -268,7 +268,7 @@ class V1Controller extends Controller
|
|||||||
|
|
||||||
$ret['phraseanet']['environment'] = $this->app->getEnvironment();
|
$ret['phraseanet']['environment'] = $this->app->getEnvironment();
|
||||||
$ret['phraseanet']['debug'] = $this->app['debug'];
|
$ret['phraseanet']['debug'] = $this->app['debug'];
|
||||||
$conf = $this->getConfiguration();
|
$conf = $this->getConf();
|
||||||
$ret['phraseanet']['maintenance'] = $conf->get(['main', 'maintenance']);
|
$ret['phraseanet']['maintenance'] = $conf->get(['main', 'maintenance']);
|
||||||
$ret['phraseanet']['errorsLog'] = $this->app['debug'];
|
$ret['phraseanet']['errorsLog'] = $this->app['debug'];
|
||||||
$ret['phraseanet']['serverName'] = $conf->get('servername');
|
$ret['phraseanet']['serverName'] = $conf->get('servername');
|
||||||
@@ -286,7 +286,7 @@ class V1Controller extends Controller
|
|||||||
$SEStatus = ['error' => $e->getMessage()];
|
$SEStatus = ['error' => $e->getMessage()];
|
||||||
}
|
}
|
||||||
|
|
||||||
$conf = $this->getConfiguration();
|
$conf = $this->getConf();
|
||||||
$binaries = $conf->get(['main', 'binaries']);
|
$binaries = $conf->get(['main', 'binaries']);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
@@ -909,6 +909,8 @@ class V1Controller extends Controller
|
|||||||
$permalink = null;
|
$permalink = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$key = $this->getConf()->get(['main', 'key']);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'name' => $media->get_name(),
|
'name' => $media->get_name(),
|
||||||
'permalink' => $permalink,
|
'permalink' => $permalink,
|
||||||
@@ -2276,14 +2278,6 @@ class V1Controller extends Controller
|
|||||||
return $this->app['session'];
|
return $this->app['session'];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return PropertyAccess
|
|
||||||
*/
|
|
||||||
private function getConfiguration()
|
|
||||||
{
|
|
||||||
return $this->app['conf'];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
|
@@ -13,7 +13,7 @@ namespace Alchemy\Phrasea\Core;
|
|||||||
|
|
||||||
class Version
|
class Version
|
||||||
{
|
{
|
||||||
private $number = '4.0.0-alpha.1';
|
private $number = '4.0.0-alpha.2';
|
||||||
private $name = 'Herrerasaurus';
|
private $name = 'Herrerasaurus';
|
||||||
|
|
||||||
public function getNumber()
|
public function getNumber()
|
||||||
|
89
lib/Alchemy/Phrasea/Model/Entities/Secret.php
Normal file
89
lib/Alchemy/Phrasea/Model/Entities/Secret.php
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* This file is part of Phraseanet
|
||||||
|
*
|
||||||
|
* (c) 2005-2015 Alchemy
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
namespace Alchemy\Phrasea\Model\Entities;
|
||||||
|
|
||||||
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ORM\Table(name="Secrets")
|
||||||
|
* @ORM\Entity()
|
||||||
|
*/
|
||||||
|
class Secret
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @ORM\Column(type="integer")
|
||||||
|
* @ORM\Id
|
||||||
|
* @ORM\GeneratedValue
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
private $id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ORM\Column(type="datetime")
|
||||||
|
* @var \DateTime
|
||||||
|
*/
|
||||||
|
private $created;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ORM\Column(type="binary_string", length=40)
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private $token;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ORM\ManyToOne(targetEntity="User")
|
||||||
|
* @ORM\JoinColumn(name="creator_id", referencedColumnName="id", nullable=false)
|
||||||
|
* @var User
|
||||||
|
*/
|
||||||
|
private $creator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param User $creator
|
||||||
|
* @param string $token
|
||||||
|
*/
|
||||||
|
public function __construct(User $creator, $token)
|
||||||
|
{
|
||||||
|
$this->created = new \DateTime();
|
||||||
|
$this->creator = $creator;
|
||||||
|
$this->token = (string) $token;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function getId()
|
||||||
|
{
|
||||||
|
return $this->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \DateTime
|
||||||
|
*/
|
||||||
|
public function getCreated()
|
||||||
|
{
|
||||||
|
return $this->created;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return User
|
||||||
|
*/
|
||||||
|
public function getCreator()
|
||||||
|
{
|
||||||
|
return $this->creator;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getToken()
|
||||||
|
{
|
||||||
|
return $this->token;
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Alchemy\Phrasea\Setup\DoctrineMigrations;
|
||||||
|
|
||||||
|
use Doctrine\DBAL\Migrations\AbstractMigration as BaseMigration;
|
||||||
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
|
|
||||||
|
class Version20150519173347 extends BaseMigration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @param Schema $schema
|
||||||
|
*/
|
||||||
|
public function up(Schema $schema)
|
||||||
|
{
|
||||||
|
$this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.');
|
||||||
|
|
||||||
|
$this->addSql('CREATE TABLE Secrets (id INT AUTO_INCREMENT NOT NULL, creator_id INT NOT NULL, created DATETIME NOT NULL, token VARCHAR(40) COLLATE utf8_bin NOT NULL, INDEX IDX_48F428861220EA6 (creator_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
|
||||||
|
$this->addSql('ALTER TABLE Secrets ADD CONSTRAINT FK_48F428861220EA6 FOREIGN KEY (creator_id) REFERENCES Users (id)');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Schema $schema
|
||||||
|
*/
|
||||||
|
public function down(Schema $schema)
|
||||||
|
{
|
||||||
|
$this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.');
|
||||||
|
|
||||||
|
$this->addSql('DROP TABLE Secrets');
|
||||||
|
}
|
||||||
|
}
|
@@ -185,46 +185,47 @@ abstract class base implements cache_cacheableInterface
|
|||||||
$stmt->closeCursor();
|
$stmt->closeCursor();
|
||||||
|
|
||||||
$ORMTables = [
|
$ORMTables = [
|
||||||
'AuthFailures',
|
'AggregateTokens',
|
||||||
'ApiApplications',
|
|
||||||
'ApiAccounts',
|
'ApiAccounts',
|
||||||
|
'ApiApplications',
|
||||||
'ApiLogs',
|
'ApiLogs',
|
||||||
'ApiOauthCodes',
|
'ApiOauthCodes',
|
||||||
'ApiOauthRefreshTokens',
|
'ApiOauthRefreshTokens',
|
||||||
'ApiOauthTokens',
|
'ApiOauthTokens',
|
||||||
'AggregateTokens',
|
'AuthFailures',
|
||||||
'BasketElements',
|
'BasketElements',
|
||||||
'Baskets',
|
'Baskets',
|
||||||
'FeedEntries',
|
'FeedEntries',
|
||||||
'FeedItems',
|
'FeedItems',
|
||||||
'FeedPublishers',
|
'FeedPublishers',
|
||||||
'FeedTokens',
|
|
||||||
'Feeds',
|
'Feeds',
|
||||||
|
'FeedTokens',
|
||||||
'FtpCredential',
|
'FtpCredential',
|
||||||
'FtpExportElements',
|
'FtpExportElements',
|
||||||
'FtpExports',
|
'FtpExports',
|
||||||
|
'LazaretAttributes',
|
||||||
|
'LazaretChecks',
|
||||||
|
'LazaretFiles',
|
||||||
|
'LazaretSessions',
|
||||||
'OrderElements',
|
'OrderElements',
|
||||||
'Orders',
|
'Orders',
|
||||||
'Registrations',
|
'Registrations',
|
||||||
|
'Secrets',
|
||||||
|
'SessionModules',
|
||||||
|
'Sessions',
|
||||||
'StoryWZ',
|
'StoryWZ',
|
||||||
|
'Tasks',
|
||||||
|
'UserNotificationSettings',
|
||||||
|
'UserQueries',
|
||||||
|
'Users',
|
||||||
|
'UserSettings',
|
||||||
|
'UsrAuthProviders',
|
||||||
'UsrListOwners',
|
'UsrListOwners',
|
||||||
'UsrLists',
|
'UsrLists',
|
||||||
'UsrListsContent',
|
'UsrListsContent',
|
||||||
'ValidationDatas',
|
'ValidationDatas',
|
||||||
'ValidationParticipants',
|
'ValidationParticipants',
|
||||||
'ValidationSessions',
|
'ValidationSessions',
|
||||||
'LazaretAttributes',
|
|
||||||
'LazaretChecks',
|
|
||||||
'LazaretFiles',
|
|
||||||
'LazaretSessions',
|
|
||||||
'SessionModules',
|
|
||||||
'Sessions',
|
|
||||||
'Tasks',
|
|
||||||
'UsrAuthProviders',
|
|
||||||
'UserQueries',
|
|
||||||
'UserSettings',
|
|
||||||
'Users',
|
|
||||||
'UserNotificationSettings',
|
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($rs as $row) {
|
foreach ($rs as $row) {
|
||||||
@@ -742,6 +743,7 @@ abstract class base implements cache_cacheableInterface
|
|||||||
foreach ($list_patches as $patch) {
|
foreach ($list_patches as $patch) {
|
||||||
// Gets doctrine migrations required for current patch
|
// Gets doctrine migrations required for current patch
|
||||||
foreach ($patch->getDoctrineMigrations() as $doctrineVersion) {
|
foreach ($patch->getDoctrineMigrations() as $doctrineVersion) {
|
||||||
|
/** @var \Doctrine\DBAL\Migrations\Version $version */
|
||||||
$version = $app['doctrine-migration.configuration']->getVersion($doctrineVersion);
|
$version = $app['doctrine-migration.configuration']->getVersion($doctrineVersion);
|
||||||
// Skip if already migrated
|
// Skip if already migrated
|
||||||
if ($version->isMigrated()) {
|
if ($version->isMigrated()) {
|
||||||
@@ -750,17 +752,22 @@ abstract class base implements cache_cacheableInterface
|
|||||||
|
|
||||||
$migration = $version->getMigration();
|
$migration = $version->getMigration();
|
||||||
|
|
||||||
// Inject entity manager
|
// Handle legacy migrations
|
||||||
$migration->setEntityManager($app['orm.em']);
|
if ($migration instanceof \Alchemy\Phrasea\Setup\DoctrineMigrations\AbstractMigration) {
|
||||||
|
// Inject entity manager
|
||||||
|
$migration->setEntityManager($app['orm.em']);
|
||||||
|
|
||||||
// Execute migration if not marked as migrated and not already applied by an older patch
|
// Execute migration if not marked as migrated and not already applied by an older patch
|
||||||
if (!$migration->isAlreadyApplied()) {
|
if (!$migration->isAlreadyApplied()) {
|
||||||
|
$version->execute('up');
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Or mark it as migrated
|
||||||
|
$version->markMigrated();
|
||||||
|
} else {
|
||||||
$version->execute('up');
|
$version->execute('up');
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Or mark it as migrated
|
|
||||||
$version->markMigrated();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (false === $patch->apply($this, $app)) {
|
if (false === $patch->apply($this, $app)) {
|
||||||
|
63
lib/classes/patch/400alpha2a.php
Normal file
63
lib/classes/patch/400alpha2a.php
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of Phraseanet
|
||||||
|
*
|
||||||
|
* (c) 2005-2015 Alchemy
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
use Alchemy\Phrasea\Application;
|
||||||
|
|
||||||
|
class patch_400alpha2a implements patchInterface
|
||||||
|
{
|
||||||
|
/** @var string */
|
||||||
|
private $release = '4.0.0-alpha.2';
|
||||||
|
|
||||||
|
/** @var array */
|
||||||
|
private $concern = [base::APPLICATION_BOX];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function get_release()
|
||||||
|
{
|
||||||
|
return $this->release;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function getDoctrineMigrations()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'20150519173347',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function require_all_upgrades()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function concern()
|
||||||
|
{
|
||||||
|
return $this->concern;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function apply(base $databox, Application $app)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user