Inject Horde_Group.
authorJan Schneider <jan@horde.org>
Wed, 22 Sep 2010 19:32:40 +0000 (21:32 +0200)
committerJan Schneider <jan@horde.org>
Wed, 22 Sep 2010 19:32:40 +0000 (21:32 +0200)
33 files changed:
ansel/lib/Storage.php
ansel/perms.php
folks/config/hooks.php.dist
folks/perms.php
framework/Core/lib/Horde/Core/Ajax/Application.php
framework/Core/lib/Horde/Core/Binder/Group.php [new file with mode: 0644]
framework/Core/lib/Horde/Core/Factory/KolabStorage.php
framework/Core/lib/Horde/Core/Perms/Ui.php
framework/Core/package.xml
framework/Group/lib/Horde/Group.php
framework/Perms/lib/Horde/Perms.php
framework/Share/lib/Horde/Share/Datatree.php
framework/Share/lib/Horde/Share/Sql.php
framework/Share/lib/Horde/Share/Sql/Hierarchical.php
horde/admin/groups.php
horde/lib/Api.php
horde/services/shares/edit.php
kronolith/lib/Api.php
kronolith/lib/Kronolith.php
kronolith/perms.php
kronolith/templates/chunks/calendar.php
nag/lib/Api.php
nag/lib/Forms/task.php
nag/lib/Nag.php
trean/lib/Bookmarks.php
turba/lib/Driver/Group.php
whups/lib/Forms/AddComment.php
whups/lib/Forms/CreateTicket.php
whups/lib/Forms/EditTicket.php
whups/lib/Forms/Query.php
whups/lib/Whups.php
whups/ticket/queue.php
whups/ticket/type.php

index 8b428c2..fc9ae21 100644 (file)
@@ -204,7 +204,7 @@ class Ansel_Storage
             }
 
             if ($perms) {
-                $groups = Horde_Group::singleton();
+                $groups = $GLOBALS['injector']->getInstance('Horde_Group');
                 $group_list = $groups->getGroupMemberships($GLOBALS['registry']->getAuth());
                 if (count($group_list)) {
                     foreach ($group_list as $group_id => $group_name) {
index af4442a..9eab759 100644 (file)
@@ -18,7 +18,7 @@ $fieldsList = array(
 require_once dirname(__FILE__) . '/lib/Application.php';
 Horde_Registry::appInit('ansel');
 
-$groups = Horde_Group::singleton();
+$groups = $injector->getInstance('Horde_Group');
 $auth = $injector->getInstance('Horde_Auth')->getAuth();
 
 $form = null;
index ae1eba3..6dae6c3 100644 (file)
@@ -207,7 +207,7 @@ class Folks_Hooks
 
     public function prelogin($app)
     {
-        $group = Horde_Group::singleton();
+        $group = $GLOBALS['injector']->getInstance('Horde_Group');
         $user_uid = $GLOBALS['registry']->getAuth();
 
         switch ($app) {
index 6cfc718..d2141fe 100644 (file)
@@ -11,8 +11,8 @@
 
 require_once dirname(__FILE__) . '/lib/base.php';
 
-$shares = $GLOBALS['injector']->getInstance('Horde_Share')->getScope();
-$groups = Horde_Group::singleton();
+$shares = $injector->getInstance('Horde_Share')->getScope();
+$groups = $injector->getInstance('Horde_Group');
 $auth = $injector->getInstance('Horde_Auth')->getAuth();
 
 $reload = false;
index 4f25e83..7d71804 100644 (file)
@@ -137,7 +137,7 @@ abstract class Horde_Core_Ajax_Application
     {
         $result = new stdClass;
         try {
-            $horde_groups = Horde_Group::singleton();
+            $horde_groups = $GLOBALS['injector']->getInstance('Horde_Group');
             $groups = empty($GLOBALS['conf']['share']['any_group'])
                 ? $horde_groups->getGroupMemberships($GLOBALS['registry']->getAuth(), true)
                 : $horde_groups->listGroups();
diff --git a/framework/Core/lib/Horde/Core/Binder/Group.php b/framework/Core/lib/Horde/Core/Binder/Group.php
new file mode 100644 (file)
index 0000000..fc52277
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+/**
+ * @category Horde
+ * @package  Core
+ */
+class Horde_Core_Binder_Group implements Horde_Injector_Binder
+{
+    public function create(Horde_Injector $injector)
+    {
+        $group = null;
+        if (!empty($GLOBALS['conf']['group']['cache'])) {
+            $session = new Horde_SessionObjects();
+            $group = $session->query('horde_group');
+        }
+
+        if (!$group) {
+            $driver = $GLOBALS['conf']['group']['driver'];
+            $params = Horde::getDriverConfig('group', $driver);
+            if ($driver == 'ldap') {
+                $params['ldap'] = $injector->getInstance('Horde_Ldap')->getLdap('horde', 'group');
+            }
+            $group = Horde_Group::factory($driver, $params);
+        }
+
+        if (!empty($GLOBALS['conf']['group']['cache'])) {
+            register_shutdown_function(array($group, 'shutdown'));
+        }
+
+        return $group;
+    }
+
+    public function equals(Horde_Injector_Binder $binder)
+    {
+        return false;
+    }
+}
index 766c501..1dd8b51 100644 (file)
@@ -105,7 +105,7 @@ class Horde_Core_Factory_KolabStorage
 
         $master = new Horde_Kolab_Storage_Driver_Imap(
             $imap,
-            Horde_Group::singleton()
+            $GLOBALS['injector']->getInstance('Horde_Group')
         );
 
         return new Horde_Kolab_Storage(
index 625711e..3f5b280 100644 (file)
@@ -349,7 +349,7 @@ class Horde_Core_Perms_Ui
         $perm_val = $permission->getGroupPermissions();
         $this->_form->setSection('groups', _("Groups"), Horde::img('group.png'), false);
         try {
-            $groups = Horde_Group::singleton();
+            $groups = $GLOBALS['injector']->getInstance('Horde_Group');
             $group_list = $groups->listGroups();
         } catch (Horde_Group_Exception $e) {
             $GLOBALS['notification']->push($e);
index 2e6195a..20ba995 100644 (file)
@@ -123,6 +123,7 @@ Application Framework.</description>
        <file name="Dns.php" role="php" />
        <file name="Editor.php" role="php" />
        <file name="Facebook.php" role="php" />
+       <file name="Group.php" role="php" />
        <file name="History.php" role="php" />
        <file name="HttpClient.php" role="php" />
        <file name="Identity.php" role="php" />
@@ -452,6 +453,7 @@ Application Framework.</description>
    <install as="Horde/Core/Binder/Dns.php" name="lib/Horde/Core/Binder/Dns.php" />
    <install as="Horde/Core/Binder/Editor.php" name="lib/Horde/Core/Binder/Editor.php" />
    <install as="Horde/Core/Binder/Facebook.php" name="lib/Horde/Core/Binder/Facebook.php" />
+   <install as="Horde/Core/Binder/Group.php" name="lib/Horde/Core/Binder/Group.php" />
    <install as="Horde/Core/Binder/History.php" name="lib/Horde/Core/Binder/History.php" />
    <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" />
index a9a5eac..aedd5c4 100644 (file)
@@ -119,64 +119,16 @@ class Horde_Group
             $params = Horde::getDriverConfig('group', $driver);
         }
 
-        $class = self::_loadDriver($driver);
-        if (class_exists($class)) {
-            return new $class($params);
-        }
-
-        throw new Horde_Group_Exception('Class definition of ' . $class . ' not found.');
-    }
-
-    /**
-     * Attempts to return a reference to a concrete Group instance.
-     * It will only create a new instance if no Group instance
-     * currently exists.
-     *
-     * @return Group  The concrete Group reference, or false on an error.
-     */
-    public static function singleton()
-    {
-        static $group;
-
-        if (isset($group)) {
-            return $group;
-        }
-
-        $group_driver = $GLOBALS['conf']['group']['driver'];
-        $group_params = Horde::getDriverConfig('group', $group_driver);
-        self::_loadDriver($group_driver);
-
-        $group = null;
-        if (!empty($GLOBALS['conf']['group']['cache'])) {
-            $session = new Horde_SessionObjects();
-            $group = $session->query('horde_group');
-        }
-
-        if (!$group) {
-            $group = self::factory($group_driver, $group_params);
-        }
-
-        if (!empty($GLOBALS['conf']['group']['cache'])) {
-            register_shutdown_function(array($group, 'shutdown'));
-        }
-
-        return $group;
-    }
-
-    /**
-     */
-    protected static function _loadDriver($driver)
-    {
         if (!$driver) {
             $class = __CLASS__;
         } else {
-            $driver = ucfirst(strtolower(basename($driver)));
-            $class = __CLASS__ . '_' . $driver;
-            if (!class_exists($class)) {
-            }
+            $class = __CLASS__ . '_' . Horde_String::ucfirst(Horde_String::lower(basename($driver)));
+        }
+        if (class_exists($class)) {
+            return new $class($params);
         }
 
-        return $class;
+        throw new Horde_Group_Exception('Class definition of ' . $class . ' not found.');
     }
 
     /**
index d91592b..550860b 100644 (file)
@@ -388,7 +388,7 @@ class Horde_Perms
         if (isset($permission->data['groups']) &&
             is_array($permission->data['groups']) &&
             count($permission->data['groups'])) {
-            $groups = Horde_Group::singleton();
+            $groups = $GLOBALS['injector']->getInstance('Horde_Group');
 
             $composite_perm = null;
             $type = $permission->get('type');
index 9e973da..eedb13e 100644 (file)
@@ -301,7 +301,7 @@ class Horde_Share_Datatree extends Horde_Share
             // If the user has any group memberships, check for those also.
             // @TODO: inject
             try {
-                $group = Horde_Group::singleton();
+                $group = $GLOBALS['injector']->getInstance('Horde_Group');
                 $groups = $group->getGroupMemberships($userid, true);
                 if ($groups) {
                     // (name == perm_groups and key in ($groups) and val & $perm)
index 607f507..2a2e5cc 100644 (file)
@@ -728,7 +728,7 @@ class Horde_Share_Sql extends Horde_Share
             // If the user has any group memberships, check for those also.
             // @TODO: Inject the group driver
             try {
-                $group = Horde_Group::singleton();
+                $group = $GLOBALS['injector']->getInstance('Horde_Group');
                 $groups = $group->getGroupMemberships($userid, true);
                 if ($groups) {
                     // (name == perm_groups and key in ($groups) and val & $perm)
index 866a1d0..ce630c7 100644 (file)
@@ -215,7 +215,7 @@ class Horde_Share_Sql_Hierarchical extends Horde_Share_Sql
                 // If the user has any group memberships, check for those also.
                 // @TODO: Inject the group driver
                 try {
-                    $group = Horde_Group::singleton();
+                    $group = $GLOBALS['injector']->getInstance('Horde_Group');
                     $groups = $group->getGroupMemberships($userid, true);
                     if ($groups) {
                         // (name == perm_groups and key in ($groups) and val & $perm)
index 8355991..60b828a 100644 (file)
@@ -11,7 +11,7 @@
 require_once dirname(__FILE__) . '/../lib/Application.php';
 Horde_Registry::appInit('horde', array('admin' => true));
 
-$groups = Horde_Group::singleton();
+$groups = $injector->getInstance('Horde_Group');
 $auth = $injector->getInstance('Horde_Auth')->getAuth();
 
 $form = null;
index b0c2741..4d230bb 100644 (file)
@@ -230,7 +230,7 @@ class Horde_Api extends Horde_Registry_Api
         }
 
         /* Remove user from all groups */
-        $groups = Horde_Group::singleton();
+        $groups = $GLOBALS['injector']->getInstance('Horde_Group');
         try {
             $allGroups = $groups->getGroupMemberships($user);
             foreach (array_keys($allGroups) as $id) {
@@ -306,7 +306,7 @@ class Horde_Api extends Horde_Registry_Api
         }
 
         try {
-            $groups = Horde_Group::singleton();
+            $groups = $GLOBALS['injector']->getInstance('Horde_Group');
             $group = $groups->newGroup($name, $parent);
             $groups->addGroup($group);
         } catch (Horde_Group_Exception $e) {
@@ -328,7 +328,7 @@ class Horde_Api extends Horde_Registry_Api
         }
 
         try {
-            $groups = Horde_Group::singleton();
+            $groups = $GLOBALS['injector']->getInstance('Horde_Group');
             $group = $groups->getGroup($name);
             $groups->removeGroup($group, true);
         } catch (Horde_Group_Exception $e) {
@@ -351,7 +351,7 @@ class Horde_Api extends Horde_Registry_Api
         }
 
         try {
-            $groups = Horde_Group::singleton();
+            $groups = $GLOBALS['injector']->getInstance('Horde_Group');
             $group = $groups->getGroup($name);
             $group->addUser($user);
         } catch (Horde_Group_Exception $e) {
@@ -374,7 +374,7 @@ class Horde_Api extends Horde_Registry_Api
         }
 
         try {
-            $groups = Horde_Group::singleton();
+            $groups = $GLOBALS['injector']->getInstance('Horde_Group');
             $group = $groups->getGroup($name);
             foreach ($users as $user) {
                 $group->addUser($user, false);
@@ -400,7 +400,7 @@ class Horde_Api extends Horde_Registry_Api
         }
 
         try {
-            $groups = Horde_Group::singleton();
+            $groups = $GLOBALS['injector']->getInstance('Horde_Group');
             $group = $groups->getGroup($name);
             $group->removeUser($user);
         } catch (Horde_Group_Exception $e) {
@@ -423,7 +423,7 @@ class Horde_Api extends Horde_Registry_Api
         }
 
         try {
-            $groups = Horde_Group::singleton();
+            $groups = $GLOBALS['injector']->getInstance('Horde_Group');
             $group = $groups->getGroup($name);
             foreach ($users as $user) {
                 $group->removeUser($user, false);
@@ -449,7 +449,7 @@ class Horde_Api extends Horde_Registry_Api
         }
 
         try {
-            $groups = Horde_Group::singleton();
+            $groups = $GLOBALS['injector']->getInstance('Horde_Group');
             $group = $groups->getGroup($name);
             return $group->listUsers();
         } catch (Horde_Group_Exception $e) {
@@ -605,7 +605,7 @@ class Horde_Api extends Horde_Registry_Api
         }
 
         try {
-            $groups = Horde_Group::singleton();
+            $groups = $GLOBALS['injector']->getInstance('Horde_Group');
             $groupId = $groups->getGroupId($groupName);
         } catch (Horde_Group_Exception $e) {
             throw new Horde_Exception($e);
@@ -674,7 +674,7 @@ class Horde_Api extends Horde_Registry_Api
         }
 
         try {
-            $groups = Horde_Group::singleton();
+            $groups = $GLOBALS['injector']->getInstance('Horde_Group');
             $groupId = $groups->getGroupId($groupName);
         } catch (Horde_Group_Exception $e) {
             throw new Horde_Exception($e);
index 44a11d7..1209a7d 100644 (file)
@@ -25,7 +25,7 @@ $fieldsList = array(
 
 $app = Horde_Util::getFormData('app');
 $shares = $injector->getInstance('Horde_Share')->getScope($app);
-$groups = Horde_Group::singleton();
+$groups = $injector->getInstance('Horde_Group');
 $auth = $injector->getInstance('Horde_Auth')->getAuth();
 $help = $registry->hasMethod('shareHelp', $app)
     ? $registry->callByPackage($app, 'shareHelp')
index ea767cb..8409f02 100644 (file)
@@ -1176,7 +1176,7 @@ class Kronolith_Api extends Horde_Registry_Api
             throw new Horde_Exception_PermissionDenied();
         }
 
-        $group = Horde_Group::singleton();
+        $group = $GLOBALS['injector']->getInstance('Horde_Group');
         $alarm_list = array();
         $time = new Horde_Date($time);
         $calendars = is_null($user) ? array_keys($GLOBALS['kronolith_shares']->listAllShares()) : $GLOBALS['display_calendars'];
index e1348ce..567d783 100644 (file)
@@ -1177,7 +1177,7 @@ class Kronolith
                 }
 
                 try {
-                    $groups = Horde_Group::singleton();
+                    $groups = $GLOBALS['injector']->getInstance('Horde_Group');
                     $group_list = $groups->getGroupMemberships($GLOBALS['registry']->getAuth());
                     if (count($group_list)) {
                         $perm = $share->getPermission();
@@ -1962,7 +1962,7 @@ class Kronolith
             // Notify users that have been added.
             if ($GLOBALS['conf']['share']['notify'] &&
                 !isset($current[$group]) && $has_perms) {
-                $groupOb = Horde_Group::singleton()->getGroupById($group);
+                $groupOb = $GLOBALS['injector']->getInstance('Horde_Group')->getGroupById($group);
                 if (!empty($groupOb->data['email'])) {
                     try {
                         $message = Horde::callHook('shareGroupNotification', array($group, $share));
@@ -2390,7 +2390,7 @@ class Kronolith
             throw new Kronolith_Exception('Unknown event action: ' . $action);
         }
 
-        $groups = Horde_Group::singleton();
+        $groups = $GLOBALS['injector']->getInstance('Horde_Group');
         $calendar = $event->calendar;
         $recipients = array();
         try {
index fd03fb4..66b157c 100644 (file)
@@ -21,8 +21,8 @@ if (!empty($conf['share']['no_sharing'])) {
     throw new Horde_Exception('Permission denied.');
 }
 
-$shares = $GLOBALS['injector']->getInstance('Horde_Share')->getScope();
-$groups = Horde_Group::singleton();
+$shares = $injector->getInstance('Horde_Share')->getScope();
+$groups = $injector->getInstance('Horde_Group');
 $auth = $injector->getInstance('Horde_Auth')->getAuth();
 
 $reload = false;
index b182394..3ba9e5d 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 $auth = $GLOBALS['injector']->getInstance('Horde_Auth')->getAuth();
-$horde_groups = Horde_Group::singleton();
+$horde_groups = $GLOBALS['injector']->getInstance('Horde_Group');
 
 $groups = array();
 try {
index a23a3c9..9b35408 100644 (file)
@@ -1428,7 +1428,7 @@ class Nag_Api extends Horde_Registry_Api
         }
 
         $storage = Nag_Driver::singleton();
-        $group = Horde_Group::singleton();
+        $group = $GLOBALS['injector']->getInstance('Horde_Group');
         $alarm_list = array();
         $tasklists = is_null($user) ? array_keys($GLOBALS['nag_shares']->listAllShares()) :  $GLOBALS['display_tasklists'];
 
index 4d6b4e5..801959f 100644 (file)
@@ -53,7 +53,7 @@ class Nag_TaskForm extends Horde_Form {
         $users = $share->listUsers(Horde_Perms::READ);
         $groups = $share->listGroups(Horde_Perms::READ);
         if (count($groups)) {
-            $horde_group = Horde_Group::singleton();
+            $horde_group = $GLOBALS['injector']->getInstance('Horde_Group');
             foreach ($groups as $group) {
                 $users = array_merge($users,
                                      $horde_group->listAllUsers($group));
index 654aa52..2dcad84 100644 (file)
@@ -823,7 +823,7 @@ class Nag
             throw new Nag_Exception($e);
         }
 
-        $groups = Horde_Group::singleton();
+        $groups = $GLOBALS['injector']->getInstance('Horde_Group');
         $recipients = array();
         $identity = $GLOBALS['injector']->getInstance('Horde_Prefs_Identity')->getIdentity();
         $from = $identity->getDefaultFromAddress(true);
index 9c74b2a..cdbc127 100644 (file)
@@ -628,7 +628,7 @@ class Trean_Bookmarks
                             array('field' => 'value', 'op' => '&', 'test' => $perm)))));
 
             // If the user has any group memberships, check for those also.
-            $group = Horde_Group::singleton();
+            $group = $GLOBALS['injector']->getInstance('Horde_Group');
             $groups = $group->getGroupMemberships($userid, true);
             if (is_array($groups) && count($groups)) {
                 // (name == perm_groups and key in ($groups) and val & $perm)
index f18148c..16d1b6c 100644 (file)
@@ -134,7 +134,7 @@ class Turba_Driver_Group extends Turba_Driver
      */
     protected function _getAddressBook()
     {
-        $groups = Horde_Group::singleton();
+        $groups = $GLOBALS['injector']->getInstance('Horde_Group');
         $members = $groups->listAllUsers($this->_gid);
         $addressbook = array();
         foreach ($members as $member) {
index 175c606..48befb5 100644 (file)
@@ -25,7 +25,7 @@ class AddCommentForm extends Horde_Form {
         /* Group restrictions. */
         if ($GLOBALS['registry']->isAdmin(array('permission' => 'whups:admin')) ||
             $GLOBALS['injector']->getInstance('Horde_Perms')->hasPermission('whups:hiddenComments', $GLOBALS['registry']->getAuth(), Horde_Perms::EDIT)) {
-            $groups = Horde_Group::singleton();
+            $groups = $GLOBALS['injector']->getInstance('Horde_Group');
             $mygroups = $groups->getGroupMemberships($GLOBALS['registry']->getAuth());
             if ($mygroups) {
                 foreach (array_keys($mygroups) as $gid) {
index 343fe09..0602284 100644 (file)
@@ -211,7 +211,7 @@ class CreateStep4Form extends Horde_Form {
         $this->addHidden('', 'deferred_attachment', 'text', false);
 
         /* Groups. */
-        $groups = Horde_Group::singleton();
+        $groups = $GLOBALS['injector']->getInstance('Horde_Group');
         if ($conf['prefs']['assign_all_groups']) {
             $mygroups = $groups->listGroups();
         } else {
index 1e80d44..0d97088 100644 (file)
@@ -95,7 +95,7 @@ class EditTicketForm extends Horde_Form {
                 case 'owner':
                     if (Whups::hasPermission($vars->get('queue'), 'queue',
                                              'assign')) {
-                        $groups = Horde_Group::singleton();
+                        $groups = $GLOBALS['injector']->getInstance('Horde_Group');
                         if ($GLOBALS['conf']['prefs']['assign_all_groups']) {
                             $mygroups = $groups->listGroups();
                         } else {
@@ -181,7 +181,7 @@ class EditTicketForm extends Horde_Form {
                     }
 
                     /* Comment permissions. */
-                    $groups = Horde_Group::singleton();
+                    $groups = $GLOBALS['injector']->getInstance('Horde_Group');
                     $mygroups = $groups->getGroupMemberships($GLOBALS['registry']->getAuth());
                     if ($mygroups) {
                         foreach (array_keys($mygroups) as $gid) {
index d7dba67..b8ec9fa 100644 (file)
@@ -90,7 +90,7 @@ class GroupCriterionForm extends Horde_Form {
         $this->addHidden('', 'edit', 'boolean', false);
 
         try {
-            $groups = Horde_Group::singleton();
+            $groups = $GLOBALS['injector']->getInstance('Horde_Group');
             $grouplist = $groups->listGroups();
         } catch (Horde_Group_Exception $e) {
             $grouplist = array();
index 1dfbe0f..ce0180b 100644 (file)
@@ -500,7 +500,7 @@ class Whups {
     function getOwnerCriteria($user)
     {
         $criteria = array('user:' . $user);
-        $groups = Horde_Group::singleton();
+        $groups = $GLOBALS['injector']->getInstance('Horde_Group');
         $mygroups = $groups->getGroupMemberships($GLOBALS['registry']->getAuth());
         foreach ($mygroups as $id => $group) {
             $criteria[] = 'group:' . $id;
@@ -576,7 +576,7 @@ class Whups {
                 }
             } elseif ($type == 'group') {
                 try {
-                    $groups = Horde_Group::singleton();
+                    $groups = $GLOBALS['injector']->getInstance('Horde_Group');
                     $group = $groups->getGroupById($user);
 
                     $results[$user]['user'] = $group->getShortName();
index f4021b8..e8a4d0d 100644 (file)
@@ -34,7 +34,7 @@ class SetQueueStep1Form extends Horde_Form {
         if ($GLOBALS['registry']->isAdmin(array('permission' => 'whups:admin', 'permlevel' => Horde_Perms::EDIT)) ||
             $GLOBALS['injector']->getInstance('Horde_Perms')->hasPermission('whups:hiddenComments',
                                              $GLOBALS['registry']->getAuth(), Horde_Perms::EDIT)) {
-            $groups = Horde_Group::singleton();
+            $groups = $injector->getInstance('Horde_Group');
             $mygroups = $groups->getGroupMemberships($GLOBALS['registry']->getAuth());
             if ($mygroups) {
                 foreach (array_keys($mygroups) as $gid) {
index 616d11a..1a6df2c 100644 (file)
@@ -28,7 +28,7 @@ class SetTypeStep1Form extends Horde_Form {
         $this->addVariable(_("Comment"), 'newcomment', 'longtext', false);
 
         /* Group restrictions. */
-        $groups = Horde_Group::singleton();
+        $groups = $injector->getInstance('Horde_Group');
         $mygroups = $groups->getGroupMemberships($GLOBALS['registry']->getAuth());
         if ($mygroups) {
             foreach (array_keys($mygroups) as $gid) {