--- /dev/null
+<?php
+/**
+ * @category Horde
+ * @package Core
+ */
+class Horde_Core_Binder_Facebook implements Horde_Injector_Binder
+{
+ public function create(Horde_Injector $injector)
+ {
+ global $conf;
+
+ if (empty($conf['facebook']['key']) || empty($conf['facebook']['secret'])) {
+ throw new Horde_Exception('Unable to find required Facebook configuration.');
+ }
+
+ /* Facebook key and secret */
+ $apikey = $conf['facebook']['key'];
+ $secret = $conf['facebook']['secret'];
+
+ /* Create required objects */
+ $context = array('http_client' => $injector->getInstance('Horde_Http_Client'),
+ 'http_request' => $injector->getInstance('Horde_Controller_Request_Http'));
+
+ return new Horde_Service_Facebook($apikey, $secret, $context);
+ }
+
+ public function equals (Horde_Injector_Binder $binder)
+ {
+ return false;
+ }
+}
\ No newline at end of file
<file name="Template.php" role="php" />
<file name="Token.php" role="php" />
<file name="Vfs.php" role="php" />
+ <file name="Facebook.php" role="php" />
</dir> <!-- /lib/Horde/Core/Binder -->
<dir name="Factory">
<file name="Editor.php" role="php" />
<install name="lib/Horde/Core/Binder/Template.php" as="Horde/Core/Binder/Template.php" />
<install name="lib/Horde/Core/Binder/Token.php" as="Horde/Core/Binder/Token.php" />
<install name="lib/Horde/Core/Binder/Vfs.php" as="Horde/Core/Binder/Vfs.php" />
+ <install name="lib/Horde/Core/Binder/Facebook.php" as="Horde/Core/Binder/Facebook.php" />
<install name="lib/Horde/Core/Factory/Editor.php" as="Horde/Core/Factory/Editor.php" />
<install name="lib/Horde/Core/Factory/Identity.php" as="Horde/Core/Factory/Identity.php" />
<install name="lib/Horde/Core/Factory/KolabServer.php" as="Horde/Core/Factory/KolabServer.php" />
require_once dirname(__FILE__) . '/../lib/Application.php';
Horde_Registry::appInit('horde');
-if (empty($conf['facebook']['enabled']) ||
- empty($conf['facebook']['key']) ||
- empty($conf['facebook']['secret'])) {
-
+$GLOBALS['injector']->addBinder('Facebook', new Horde_Core_Binder_Facebook());
+try {
+ $facebook = $GLOBALS['injector']->getInstance('Facebook');
+} catch (Horde_Exception $e) {
$horde_url = Horde::url($registry->get('webroot', 'horde') . '/index.php');
header('Location: ' . $horde_url);
- exit;
}
-// Facebook key and secret
-$apikey = $conf['facebook']['key'];
-$secret = $conf['facebook']['secret'];
-
-// Create required objects
-$context = array('http_client' => new Horde_Http_Client(),
- 'http_request' => new Horde_Controller_Request_Http());
-
-$facebook = new Horde_Service_Facebook($apikey, $secret, $context);
-
// See why we are here.
if ($token = Horde_Util::getFormData('auth_token')) {
// Assume we are here for a successful authentication if we have a