* (re)connect the share object to this share driver. Userful for when
* share objects are unserialized from a cache separate from the share
* driver.
- *
+ *
* @param Horde_Share_Object $object
*/
public function initShareObject($object)
*
* @param string $type The callback to run
* @param array $params The parameters to pass to the callback.
- *
- * @return mixed
+ *
+ * @return mixed
*/
public function runCallback($type, $params)
{
$this->_shareMap,
$this->_listcache,
$this->_shareObject,
- $this->_permsObject);
+ $this->_permsObject,
+ $this->_groups
+ );
return serialize($data);
}
$this->_shareMap = $data[4];
$this->_listcache = $data[5];
$this->_shareObject = $data[6];
- $this->_permsObject = $data [7];
+ $this->_permsObject = $data[7];
+ $this->_groups = $data[8];
$this->_table = $this->_app . '_shares';
foreach ($rows as $share) {
$shares[(int)$share['share_id']] = $this->_fromDriverCharset($share);
}
-
+
// Get users permissions
try {
$rows = $this->_db->selectAll('SELECT share_id, user_uid, perm FROM ' . $this->_table . '_users');
$tables = array($this->_table,
$this->_table . '_users',
$this->_table . '_groups');
- foreach ($tables as $table) {
+ foreach ($tables as $table) {
try {
$this->_db->delete('DELETE FROM ' . $table . ' WHERE share_id = ?', $params);
} catch (Horde_Db_Exception $e) {
* @throws Horde_Share_Exception
*/
protected function _exists($share)
- {
+ {
try {
return (boolean)$this->_db->selectOne('SELECT 1 FROM ' . $this->_table . ' WHERE share_name = ?', array($share));
} catch (Horde_Db_Exception $e) {
. ' AND (' . Horde_SQL::buildClause($this->_db, 'u.perm', '&', $perm) . '))';
// If the user has any group memberships, check for those also.
- // @TODO: Inject the group driver
try {
$groups = $this->_groups->getGroupMemberships($userid, true);
if ($groups) {