Add Office Plugin client id and secret

This commit is contained in:
Romain Neutron
2013-09-09 13:30:33 +02:00
parent a0dba36e67
commit 871fa40553
7 changed files with 120 additions and 1 deletions

View File

@@ -85,6 +85,11 @@ return call_user_func(function() {
throw new \API_V1_exception_forbidden(_('The use of phraseanet Navigator is not allowed'));
}
if ($oAuth2App->get_client_id() == \API_OAuth2_Application_OfficePlugin::CLIENT_ID
&& ! $registry->get('GV_client_officeplugin')) {
throw new \API_V1_exception_forbidden('The use of Office Plugin is not allowed.');
}
if ($session->is_authenticated()) {
$app['dispatcher']->dispatch(PhraseaEvents::API_OAUTH2_END, new ApiOAuth2EndEvent());
return;

View File

@@ -18,7 +18,7 @@ namespace Alchemy\Phrasea\Core;
*/
class Version
{
protected static $number = '3.7.14';
protected static $number = '3.7.15';
protected static $name = 'Carnosaurus';
public static function getNumber()

View File

@@ -0,0 +1,17 @@
<?php
/*
* This file is part of Phraseanet
*
* (c) 2005-2012 Alchemy
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class API_OAuth2_Application_OfficePlugin
{
const CLIENT_ID = '\alchemy\phraseanet\id\999585175b5fbb6e140efbdfea86c561';
const CLIENT_SECRET = '\alchemy\phraseanet\secret\6d53d0bc74e6c8c1a325541f71da1ea5';
const CLIENT_NAME = 'office-plugin';
}

View File

@@ -406,6 +406,9 @@ class API_V1_adapter extends API_V1_Abstract
'navigator' => array(
'active' => $registry->get('GV_client_navigator'),
),
'office-plugin' => array(
'active' => $registry->get('GV_client_navigator'),
),
'homepage' => array(
'viewType' => $registry->get('GV_home_publi'),
),

View File

@@ -0,0 +1,71 @@
<?php
/*
* This file is part of Phraseanet
*
* (c) 2005-2012 Alchemy
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class patch_3715 implements patchInterface
{
/**
* @var string
*/
private $release = '3.7.15';
/**
*
* @var Array
*/
private $concern = array(base::APPLICATION_BOX);
/**
*
* @return string
*/
public function get_release()
{
return $this->release;
}
public function require_all_upgrades()
{
return false;
}
/**
*
* @return Array
*/
public function concern()
{
return $this->concern;
}
/**
* @param base $databox
*/
public function apply(base &$appbox)
{
$appbox = \appbox::get_instance(\bootstrap::getCore());
try {
\API_OAuth2_Application::load_from_client_id($appbox, \API_OAuth2_Application_OfficePlugin::CLIENT_ID);
} catch (\Exception_NotFound $e) {
$client = \API_OAuth2_Application::create($appbox, null, \API_OAuth2_Application_OfficePlugin::CLIENT_NAME);
$client->set_activated(true);
$client->set_grant_password(true);
$client->set_website("http://www.phraseanet.com");
$client->set_client_id(\API_OAuth2_Application_OfficePlugin::CLIENT_ID);
$client->set_client_secret(\API_OAuth2_Application_OfficePlugin::CLIENT_SECRET);
$client->set_type(\API_OAuth2_Application::DESKTOP_TYPE);
$client->set_redirect_uri(\API_OAuth2_Application::NATIVE_APP_REDIRECT_URI);
}
return true;
}
}

View File

@@ -246,6 +246,13 @@ $GV = array(
'default' => true,
'required' => true
),
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_client_officeplugin',
'comment' => _('Authorize Microsoft Office Plugin to connect.'),
'default' => true,
'required' => true
),
)
), array(
'section' => _('GV::section:: Gestionnaire d\'evenements'),

View File

@@ -387,6 +387,22 @@
<data key="activated">1</data>
<data key="grant_password">1</data>
</default>
<default>
<data key="application_id">null</data>
<data key="creator">null</data>
<data key="type">desktop</data>
<data key="name">office-plugin</data>
<data key="description"></data>
<data key="website">http://www.phraseanet.com</data>
<data key="created_on">NOW()</data>
<data key="last_modified">NOW()</data>
<data key="client_id">\alchemy\phraseanet\id\999585175b5fbb6e140efbdfea86c561</data>
<data key="client_secret">\alchemy\phraseanet\secret\6d53d0bc74e6c8c1a325541f71da1ea5</data>
<data key="nonce">AfCF61</data>
<data key="redirect_uri">urn:ietf:wg:oauth:2.0:oob</data>
<data key="activated">1</data>
<data key="grant_password">1</data>
</default>
</defaults>
<engine>InnoDB</engine>
</table>