Merge branch '3.7' into 3.8

Conflicts:
	lib/Alchemy/Phrasea/Application/Api.php
	lib/Alchemy/Phrasea/Core/Version.php
	lib/conf.d/_GV_template.inc
This commit is contained in:
Romain Neutron
2013-09-14 02:02:56 +02:00
8 changed files with 123 additions and 10 deletions

View File

@@ -68,6 +68,11 @@ class V1 implements ControllerProviderInterface
throw new \API_V1_exception_forbidden(_('The use of phraseanet Navigator is not allowed')); 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
&& ! $app['phraseanet.registry']->get('GV_client_officeplugin')) {
throw new \API_V1_exception_forbidden('The use of Office Plugin is not allowed.');
}
if ($app['authentication']->isAuthenticated()) { if ($app['authentication']->isAuthenticated()) {
$app['dispatcher']->dispatch(PhraseaEvents::API_OAUTH2_END, new ApiOAuth2EndEvent()); $app['dispatcher']->dispatch(PhraseaEvents::API_OAUTH2_END, new ApiOAuth2EndEvent());

View File

@@ -9,12 +9,6 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
/**
*
* @license http://opensource.org/licenses/gpl-3.0 GPLv3
* @link www.phraseanet.com
*/
class API_OAuth2_Application_Navigator class API_OAuth2_Application_Navigator
{ {
const CLIENT_ID = '\alchemy\phraseanet\id\4f981093aebb66.06844599'; const CLIENT_ID = '\alchemy\phraseanet\id\4f981093aebb66.06844599';

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

@@ -393,6 +393,9 @@ class API_V1_adapter extends API_V1_Abstract
'navigator' => array( 'navigator' => array(
'active' => $app['phraseanet.registry']->get('GV_client_navigator'), 'active' => $app['phraseanet.registry']->get('GV_client_navigator'),
), ),
'office-plugin' => array(
'active' => $registry->get('GV_client_navigator'),
),
'homepage' => array( 'homepage' => array(
'viewType' => $app['phraseanet.registry']->get('GV_home_publi'), 'viewType' => $app['phraseanet.registry']->get('GV_home_publi'),
), ),

View File

@@ -61,7 +61,7 @@ class patch_370a3 implements patchInterface
} catch (NotFoundHttpException $e) { } catch (NotFoundHttpException $e) {
$client = \API_OAuth2_Application::create($app, null, \API_OAuth2_Application_Navigator::CLIENT_NAME); $client = \API_OAuth2_Application::create($app, null, \API_OAuth2_Application_Navigator::CLIENT_NAME);
$client->set_activated(false); $client->set_activated(true);
$client->set_grant_password(true); $client->set_grant_password(true);
$client->set_website("http://www.phraseanet.com"); $client->set_website("http://www.phraseanet.com");
$client->set_client_id(\API_OAuth2_Application_Navigator::CLIENT_ID); $client->set_client_id(\API_OAuth2_Application_Navigator::CLIENT_ID);

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

@@ -11,7 +11,7 @@ return call_user_func_array(function(Application $app) {
$dashboard_youtube = '<a href="https://code.google.com/apis/youtube/dashboard/" target="_blank">https://code.google.com/apis/youtube/dashboard/</a>'; $dashboard_youtube = '<a href="https://code.google.com/apis/youtube/dashboard/" target="_blank">https://code.google.com/apis/youtube/dashboard/</a>';
$create_api_flickr = '<a href="https://secure.flickr.com/services/apps/create/" target="_blank">https://secure.flickr.com/services/apps/create/</a>'; $create_api_flickr = '<a href="https://secure.flickr.com/services/apps/create/" target="_blank">https://secure.flickr.com/services/apps/create/</a>';
$create_api_dailymotion = '<a href="http://www.dailymotion.com/profile/developer" target="_blank">http://www.dailymotion.com/profile/developer</a>'; $create_api_dailymotion = '<a href="http://www.dailymotion.com/profile/developer" target="_blank">http://www.dailymotion.com/profile/developer</a>';
try { try {
$youtube_callback = $app->url('prod_bridge_callback', array('api_name' => 'youtube')); $youtube_callback = $app->url('prod_bridge_callback', array('api_name' => 'youtube'));
} catch (RouteNotFoundException $e) { } catch (RouteNotFoundException $e) {
@@ -203,9 +203,16 @@ return call_user_func_array(function(Application $app) {
'name' => 'GV_client_navigator', 'name' => 'GV_client_navigator',
'comment' => _('Authorize *Phraseanet Navigator*'), 'comment' => _('Authorize *Phraseanet Navigator*'),
'help' => _('*Phraseanet Navigator* is a smartphone application that allow user to connect on this instance'), 'help' => _('*Phraseanet Navigator* is a smartphone application that allow user to connect on this instance'),
'default' => false, 'default' => true,
'required' => true 'required' => true
) ),
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_client_officeplugin',
'comment' => _('Authorize Microsoft Office Plugin to connect.'),
'default' => true,
'required' => true
),
) )
), array( ), array(
'section' => _('Documents storage'), 'section' => _('Documents storage'),

View File

@@ -311,6 +311,22 @@
<data key="activated">1</data> <data key="activated">1</data>
<data key="grant_password">1</data> <data key="grant_password">1</data>
</default> </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> </defaults>
<engine>InnoDB</engine> <engine>InnoDB</engine>
</table> </table>