Remove LoginTasks binder - use direct factory instead.
authorMichael M Slusarz <slusarz@curecanti.org>
Wed, 6 Oct 2010 20:52:02 +0000 (14:52 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Thu, 7 Oct 2010 06:45:40 +0000 (00:45 -0600)
Factory does the necessary base Horde authentication check.

framework/Core/lib/Horde/Core/Binder/LoginTasks.php [deleted file]
framework/Core/lib/Horde/Core/Factory/LoginTasks.php
framework/Core/lib/Horde/Registry.php
framework/Core/package.xml
horde/services/logintasks.php

diff --git a/framework/Core/lib/Horde/Core/Binder/LoginTasks.php b/framework/Core/lib/Horde/Core/Binder/LoginTasks.php
deleted file mode 100644 (file)
index 304d8fd..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * @category Horde
- * @package  Core
- */
-class Horde_Core_Binder_LoginTasks implements Horde_Injector_Binder
-{
-    public function create(Horde_Injector $injector)
-    {
-        return new Horde_Core_Factory_LoginTasks($injector);
-    }
-
-    public function equals(Horde_Injector_Binder $binder)
-    {
-        return false;
-    }
-}
index adbb2c2..eeda66c 100644 (file)
@@ -35,31 +35,19 @@ class Horde_Core_Factory_LoginTasks
     private $_instances = array();
 
     /**
-     * The injector.
-     *
-     * @var Horde_Injector
-     */
-    private $_injector;
-
-    /**
-     * Constructor.
-     *
-     * @param Horde_Injector $injector  The injector to use.
-     */
-    public function __construct(Horde_Injector $injector)
-    {
-        $this->_injector = $injector;
-    }
-
-    /**
      * Return the Horde_LoginTasks:: instance.
      *
      * @param string $app  The current application.
      *
-     * @return Horde_LoginTasks  The singleton instance.
+     * @return Horde_LoginTasks|boolean  The singleton instance. Returns false
+     *                                   if logintasks not available.
      */
-    public function getLoginTasks($app)
+    public function create($app)
     {
+        if (!$GLOBALS['registry']->getAuth()) {
+            return false;
+        }
+
         if (!isset($this->_instances[$app])) {
             $this->_instances[$app] = new Horde_LoginTasks(new Horde_Core_LoginTasks_Backend_Horde($app));
         }
index 0fcdb56..973873f 100644 (file)
@@ -274,7 +274,6 @@ class Horde_Registry
             'Horde_History' => new Horde_Core_Binder_History(),
             'Horde_Http_Client' => new Horde_Core_Binder_HttpClient(),
             'Horde_Log_Logger' => new Horde_Core_Binder_Logger(),
-            'Horde_LoginTasks' => new Horde_Core_Binder_LoginTasks(),
             'Horde_Mail' => new Horde_Core_Binder_Mail(),
             'Horde_Mime_Viewer' => new Horde_Core_Binder_MimeViewer(),
             'Horde_Prefs_Identity' => new Horde_Core_Binder_Identity(),
@@ -1252,11 +1251,10 @@ class Horde_Registry
         }
 
         /* Do login tasks. */
-        if ($checkPerms) {
-            $tasks = $GLOBALS['injector']->getInstance('Horde_LoginTasks')->getLoginTasks($app);
-            if (!empty($options['logintasks'])) {
-                $tasks->runTasks(false, Horde::selfUrl(true, true, true));
-            }
+        if ($checkPerms &&
+            ($tasks = $GLOBALS['injector']->getInstance('Horde_Core_Factory_LoginTasks')->create($app)) &&
+            !empty($options['logintasks'])) {
+            $tasks->runTasks(false, Horde::selfUrl(true, true, true));
         }
 
         return true;
index eb54fc9..18ff901 100644 (file)
@@ -123,7 +123,6 @@ Application Framework.</description>
        <file name="HttpClient.php" role="php" />
        <file name="Identity.php" role="php" />
        <file name="Logger.php" role="php" />
-       <file name="LoginTasks.php" role="php" />
        <file name="Mail.php" role="php" />
        <file name="Mapper.php" role="php" />
        <file name="MimeViewer.php" role="php" />
@@ -442,7 +441,6 @@ Application Framework.</description>
    <install as="Horde/Core/Binder/HttpClient.php" name="lib/Horde/Core/Binder/HttpClient.php" />
    <install as="Horde/Core/Binder/Identity.php" name="lib/Horde/Core/Binder/Identity.php" />
    <install as="Horde/Core/Binder/Logger.php" name="lib/Horde/Core/Binder/Logger.php" />
-   <install as="Horde/Core/Binder/LoginTasks.php" name="lib/Horde/Core/Binder/LoginTasks.php" />
    <install as="Horde/Core/Binder/Mail.php" name="lib/Horde/Core/Binder/Mail.php" />
    <install as="Horde/Core/Binder/Mapper.php" name="lib/Horde/Core/Binder/Mapper.php" />
    <install as="Horde/Core/Binder/MimeViewer.php" name="lib/Horde/Core/Binder/MimeViewer.php" />
index 092950a..b5e84e5 100644 (file)
@@ -21,7 +21,7 @@ if (!($app = basename(Horde_Util::getFormData('app')))) {
 
 $registry->pushApp($app, array('logintasks' => false));
 
-if (!($tasks = $injector->getInstance('Horde_LoginTasks')->getLoginTasks($app))) {
+if (!($tasks = $injector->getInstance('Horde_Core_Factory_LoginTasks')->create($app))) {
     throw new Horde_Exception('The Horde_LoginTasks:: class did not load successfully.');
 }