}
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) {
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;
public function prelogin($app)
{
- $group = Horde_Group::singleton();
+ $group = $GLOBALS['injector']->getInstance('Horde_Group');
$user_uid = $GLOBALS['registry']->getAuth();
switch ($app) {
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;
{
$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();
--- /dev/null
+<?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;
+ }
+}
$master = new Horde_Kolab_Storage_Driver_Imap(
$imap,
- Horde_Group::singleton()
+ $GLOBALS['injector']->getInstance('Horde_Group')
);
return new Horde_Kolab_Storage(
$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);
<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" />
<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" />
$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.');
}
/**
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');
// 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)
// 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)
// 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)
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;
}
/* 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) {
}
try {
- $groups = Horde_Group::singleton();
+ $groups = $GLOBALS['injector']->getInstance('Horde_Group');
$group = $groups->newGroup($name, $parent);
$groups->addGroup($group);
} catch (Horde_Group_Exception $e) {
}
try {
- $groups = Horde_Group::singleton();
+ $groups = $GLOBALS['injector']->getInstance('Horde_Group');
$group = $groups->getGroup($name);
$groups->removeGroup($group, true);
} catch (Horde_Group_Exception $e) {
}
try {
- $groups = Horde_Group::singleton();
+ $groups = $GLOBALS['injector']->getInstance('Horde_Group');
$group = $groups->getGroup($name);
$group->addUser($user);
} catch (Horde_Group_Exception $e) {
}
try {
- $groups = Horde_Group::singleton();
+ $groups = $GLOBALS['injector']->getInstance('Horde_Group');
$group = $groups->getGroup($name);
foreach ($users as $user) {
$group->addUser($user, false);
}
try {
- $groups = Horde_Group::singleton();
+ $groups = $GLOBALS['injector']->getInstance('Horde_Group');
$group = $groups->getGroup($name);
$group->removeUser($user);
} catch (Horde_Group_Exception $e) {
}
try {
- $groups = Horde_Group::singleton();
+ $groups = $GLOBALS['injector']->getInstance('Horde_Group');
$group = $groups->getGroup($name);
foreach ($users as $user) {
$group->removeUser($user, false);
}
try {
- $groups = Horde_Group::singleton();
+ $groups = $GLOBALS['injector']->getInstance('Horde_Group');
$group = $groups->getGroup($name);
return $group->listUsers();
} catch (Horde_Group_Exception $e) {
}
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);
}
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);
$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')
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'];
}
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();
// 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));
throw new Kronolith_Exception('Unknown event action: ' . $action);
}
- $groups = Horde_Group::singleton();
+ $groups = $GLOBALS['injector']->getInstance('Horde_Group');
$calendar = $event->calendar;
$recipients = array();
try {
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;
<?php
$auth = $GLOBALS['injector']->getInstance('Horde_Auth')->getAuth();
-$horde_groups = Horde_Group::singleton();
+$horde_groups = $GLOBALS['injector']->getInstance('Horde_Group');
$groups = array();
try {
}
$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'];
$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));
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);
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)
*/
protected function _getAddressBook()
{
- $groups = Horde_Group::singleton();
+ $groups = $GLOBALS['injector']->getInstance('Horde_Group');
$members = $groups->listAllUsers($this->_gid);
$addressbook = array();
foreach ($members as $member) {
/* 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) {
$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 {
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 {
}
/* 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) {
$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();
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;
}
} elseif ($type == 'group') {
try {
- $groups = Horde_Group::singleton();
+ $groups = $GLOBALS['injector']->getInstance('Horde_Group');
$group = $groups->getGroupById($user);
$results[$user]['user'] = $group->getShortName();
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) {
$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) {