$template->set('manager_url', Horde::url('manager.php'));
$entry = array();
-foreach ($_SESSION['gollem']['clipboard'] as $key => $val) {
+foreach ($session->get('gollem', 'clipboard') as $key => $val) {
$entry[] = array(
'copy' => ($val['action'] == 'copy'),
'cut' => ($val['action'] == 'cut'),
$backend = Gollem::getPreferredBackend();
}
+ $backend_config = $GLOBALS['session']->get('gollem', 'backends/' . $backend);
+
return Horde::url('view.php')->add(array(
'actionID' => 'view_file',
'dir' => $dir,
- 'driver' => $_SESSION['gollem']['backends'][$backend]['driver'],
+ 'driver' => $backend_config['driver'],
'file' => $file,
'type' => substr($file, strrpos($file, '.') + 1)
));
*/
public function selectlistResults($selectid)
{
- if (!isset($_SESSION['gollem']['selectlist'][$selectid]['files'])) {
+ $selectlist = $GLOBALS['session']->get('gollem', 'selectlist/' . $selectid);
+
+ if (!isset($selectlist['files'])) {
return null;
}
$list = array();
- foreach ($_SESSION['gollem']['selectlist'][$selectid]['files'] as $val) {
+ foreach ($selectlist['files'] as $val) {
list($dir, $filename) = explode('|', $val);
$list[] = array($dir => $filename);
}
*/
public function returnFromSelectlist($selectid, $index)
{
- if (!isset($_SESSION['gollem']['selectlist'][$selectid]['files'][$index])) {
+ $selectlist = $GLOBALS['session']->get('gollem', 'selectlist/' . $selectid);
+
+ if (!isset($selectlist['files'][$index])) {
return null;
}
- list($dir, $filename) = explode('|', $_SESSION['gollem']['selectlist'][$selectid]['files'][$index]);
+ list($dir, $filename) = explode('|', $selectlist['files'][$index]);
return $GLOBALS['gollem_vfs']->read($dir, $filename);
}
foreach ($files as $file) {
$list[] = key($file) . '|' . current($file);
}
- $_SESSION['gollem']['selectlist'][$selectid]['files'] = $list;
+ $selectlist = $GLOBALS['session']->get('gollem', 'selectlist/' . $selectid, Horde_Session::TYPE_ARRAY);
+ $selectlist['files'] = $list;
+ $GLOBALS['session']->set('gollem', 'selectlist/' . $selectid, $selectlist);
}
return $selectid;
: $path;
// Validate and perform permissions checks on the requested backend
- if (!isset($_SESSION['gollem']['backends'][$backend_key])) {
+ if (!$GLOBALS['session']->exists('gollem', 'backends/' . $backend_key)) {
throw new Gollem_Exception(sprintf(_("Invalid backend requested: %s"), $backend_key));
}
{
// Set the global $gollem_be variable to the current backend's
// parameters.
- $GLOBALS['gollem_be'] = empty($_SESSION['gollem']['backend_key'])
- ? null
- : $_SESSION['gollem']['backends'][$_SESSION['gollem']['backend_key']];
+ $backend_key = $GLOBALS['session']->get('gollem', 'backend_key');
+ $GLOBALS['gollem_be'] = $backend_key
+ ? $GLOBALS['session']->get('gollem', 'backends/' . $backend_key)
+ : null;
// Load the backend list.
Gollem::loadBackendList();
{
$menu->add(Horde::url('manager.php')->add('dir', Gollem::getHome()), _("_My Home"), 'folder_home.png');
- if (!empty($_SESSION['gollem'])) {
- $backend_key = $_SESSION['gollem']['backend_key'];
- if ($GLOBALS['registry']->isAdmin()) {
- $menu->add(Horde::url('permissions.php')->add('backend', $backend_key), _("_Permissions"), 'perms.png');
- }
+ if ($GLOBALS['registry']->isAdmin()) {
+ $menu->add(Horde::url('permissions.php')->add('backend', $backend_key), _("_Permissions"), 'perms.png');
+ }
- if ($_SESSION['gollem']['backends'][$backend_key]['quota_val'] != -1) {
- if ($GLOBALS['browser']->hasFeature('javascript')) {
- $quota_url = 'javascript:' . Horde::popupJs(Horde::url('quota.php'), array('params' => array('backend' => $backend_key), 'height' => 300, 'width' => 300, 'urlencode' => true));
- } else {
- $quota_url = Horde::url('quota.php')->add('backend', $backend_key);
- }
- $menu->add($quota_url, _("Check Quota"), 'info_icon.png');
+ if ($GLOBALS['gollem_be']['quota_val'] != -1) {
+ if ($GLOBALS['browser']->hasFeature('javascript')) {
+ $quota_url = 'javascript:' . Horde::popupJs(Horde::url('quota.php'), array('params' => array('backend' => $backend_key), 'height' => 300, 'width' => 300, 'urlencode' => true));
+ } else {
+ $quota_url = Horde::url('quota.php')->add('backend', $backend_key);
}
+ $menu->add($quota_url, _("Check Quota"), 'info_icon.png');
}
}
$login = false)
{
// Check for for hordeauth.
- if (empty($_SESSION['gollem']['backend_key'])) {
+ if (!$GLOBALS['session']->exists('gollem', 'backend_key')) {
if (Gollem::canAutoLogin()) {
$backend_key = Gollem::getPreferredBackend();
*/
protected function _authenticate($userID, $credentials)
{
- if (!(isset($_SESSION['gollem']) && is_array($_SESSION['gollem']))) {
+ if (!($backend_key = $GLOBALS['session']->exists('gollem', 'backend_key'))) {
if (isset($GLOBALS['prefs'])) {
$GLOBALS['prefs']->cleanup(true);
}
}
// Allocate a global VFS object
- $GLOBALS['gollem_vfs'] = Gollem::getVFSOb($_SESSION['gollem']['backend_key']);
+ $GLOBALS['gollem_vfs'] = Gollem::getVFSOb($backend_key);
if (is_a($GLOBALS['gollem_vfs'], 'PEAR_Error')) {
throw new Horde_Exception($GLOBALS['gollem_vfs']);
}
*/
function createSession($key, $user = null, $pass = null, $args = array())
{
- global $conf;
+ global $conf, $session;
/* Make sure we have a key and that it is valid. */
if (empty($key) || (substr($key, 0, 1) == '_')) {
return false;
}
- /* Create gollem session object if it doesn't already exist. */
- if (!isset($_SESSION['gollem'])) {
- $_SESSION['gollem'] = array();
- $_SESSION['gollem']['backends'] = array();
- $_SESSION['gollem']['selectlist'] = array();
- }
- $_SESSION['gollem']['backends'][$key] = $backends[$key];
- $GLOBALS['gollem_be'] = &$_SESSION['gollem']['backends'][$key];
- $ptr = &$_SESSION['gollem']['backends'][$key];
+ $ptr = $backends[$key];
$ptr['params'] = array_merge($ptr['params'], $args);
/* Set the current backend as active. */
- $_SESSION['gollem']['backend_key'] = $key;
+ $session->set('gollem', 'backend_key', $key);
/* Set username now. Don't set the current username if the backend
* already has a username defined. */
/* Try to authenticate with the given information. */
$auth_gollem = new Gollem_Auth();
if ($auth_gollem->authenticate(null, null, true) !== true) {
- unset($_SESSION['gollem']['backends'][$key]);
- $_SESSION['gollem']['backend_key'] = null;
+ $session->remove('gollem', 'backends/' . $key);
+ $session->remove('gollem', 'backend_key');
return false;
}
$error_msg = 'Backend Configuration Error: Home directory not below root.';
$auth_gollem->gollemSetAuthErrorMsg($error_msg);
Horde::logMessage($error_msg, 'ERR');
- unset($_SESSION['gollem']['backends'][$key]);
- $_SESSION['gollem']['backend_key'] = null;
+ $session->remove('gollem', 'backends/' . $key);
+ $session->remove('gollem', 'backend_key');
return false;
}
$error_msg = 'Backend Configuration Error: Could not create home directory ' . $ptr['home'] . '.';
$auth_gollem->gollemSetAuthErrorMsg($error_msg);
Horde::logMessage($error_msg, 'ERR');
- unset($_SESSION['gollem']['backends'][$key]);
- $_SESSION['gollem']['backend_key'] = null;
+ $session->remove('gollem', 'backends/' . $key);
+ $session->remove('gollem', 'backend_key');
return false;
}
}
$ptr['autologin'] = Gollem::canAutoLogin(true);
/* Cache the backend_list in the session. */
- if (empty($_SESSION['gollem']['be_list'])) {
- Gollem::loadBackendList();
- $_SESSION['gollem']['be_list'] = $GLOBALS['gollem_backends'];
- }
+ Gollem::loadBackendList();
+ $session->set('gollem', 'be_list', $GLOBALS['gollem_backends']);
- /* Initialize clipboard. */
- if (!isset($_SESSION['gollem']['clipboard'])) {
- $_SESSION['gollem']['clipboard'] = array();
- }
+ $GLOBALS['gollem_be'] = $ptr;
+ $session->set('gollem', 'backends/' . $key, $ptr);
/* Call Gollem::changeDir() to make sure the label is set. */
Gollem::changeDir();
*/
function changeBackend($key)
{
- $_SESSION['gollem']['backend_key'] = $key;
- $GLOBALS['gollem_be'] = &$_SESSION['gollem']['backends'][$key];
+ $GLOBALS['session']->set('gollem', 'backend_key', $key);
+ $GLOBALS['gollem_be'] = $GLOBALS['session']->get('gollem', 'backends/' . $key);
}
}
*/
static protected function _getCacheID($dir)
{
- global $prefs;
- return implode('|', array($GLOBALS['registry']->getAuth(), $_SESSION['gollem']['backend_key'], $prefs->getValue('show_dotfiles'), $prefs->getValue('sortdirsfirst'), $prefs->getValue('sortby'), $prefs->getValue('sortdir'), $dir));
+ global $prefs, $session;
+
+ return implode('|', array($GLOBALS['registry']->getAuth(), $session->get('gollem', 'backend_key'), $prefs->getValue('show_dotfiles'), $prefs->getValue('sortdirsfirst'), $prefs->getValue('sortby'), $prefs->getValue('sortdir'), $dir));
}
/**
static protected function _copyFile($mode, $backend_f, $dir, $name,
$backend_t, $newdir)
{
+ $backend_key = $GLOBALS['session']->get('gollem', 'backend_key');
+
/* If the from/to backends are the same, we can just use the built-in
VFS functions. */
if ($backend_f == $backend_t) {
- if ($backend_f == $_SESSION['gollem']['backend_key']) {
+ if ($backend_f == $backend_key) {
$ob = &$GLOBALS['gollem_vfs'];
} else {
$ob = Gollem::getVFSOb($backend_f);
}
/* Else, get the two VFS objects and copy/move the files. */
- if ($backend_f == $_SESSION['gollem']['backend_key']) {
+ if ($backend_f == $backend_key) {
$from_be = &$GLOBALS['gollem_vfs'];
} else {
$from_be = Gollem::getVFSOb($backend_f);
$from_be->checkCredentials();
}
- if ($backend_t == $_SESSION['gollem']['backend_key']) {
+ if ($backend_t == $backend_key) {
$to_be = &$GLOBALS['gollem_vfs'];
} else {
$from_be = Gollem::getVFSOb($backend_t);
*/
static public function getPreferredBackend()
{
- $backend_key = null;
-
- if (!empty($_SESSION['gollem']['backend_key'])) {
- $backend_key = $_SESSION['gollem']['backend_key'];
- } else {
+ if (!($backend_key = $GLOBALS['session']->get('gollem', 'backend_key')) ){
/* Determine the preferred backend. */
foreach ($GLOBALS['gollem_backends'] as $key => $val) {
if (empty($backend_key) && (substr($key, 0, 1) != '_')) {
{
$userID = $GLOBALS['registry']->getAuth();
if (is_null($backend)) {
- $backend = $_SESSION['gollem']['backend_key'];
+ $backend = $GLOBALS['session']->get('gollem', 'backend_key');
}
switch ($filter) {
{
$label = array();
$root_dir = Gollem::getRoot();
- $root_dir_name = $_SESSION['gollem']['backends'][$_SESSION['gollem']['backend_key']]['name'];
+ $backend_config = $GLOBALS['session']->get('gollem', 'backends/' . $GLOBALS['session']->get('gollem', 'backend_key'));
+ $root_dir_name = $backend_config['name'];
if ($currdir == $root_dir) {
$label[] = '[' . $root_dir_name . ']';
if (($GLOBALS['conf']['backend']['backend_list'] == 'shown') &&
(count($GLOBALS['gollem_backends']) > 1)) {
foreach ($GLOBALS['gollem_backends'] as $key => $val) {
- $sel = ($_SESSION['gollem']['backend_key'] == $key) ? ' selected="selected"' : '';
+ $sel = ($GLOBALS['session']->get('gollem', 'backend_key') == $key) ? ' selected="selected"' : '';
$text .= sprintf('<option value="%s"%s>%s</option>%s', (empty($sel)) ? $key : '', $sel, $val['name'], "\n");
}
}
*/
static public function loadBackendList()
{
- if (!empty($_SESSION['gollem']['be_list'])) {
- $GLOBALS['gollem_backends'] = $_SESSION['gollem']['be_list'];
+ if ($be_list = $GLOBALS['session']->get('gollem', 'be_list')) {
+ $GLOBALS['gollem_backends'] = $be_list;
} else {
require GOLLEM_BASE . '/config/backends.php';
$GLOBALS['gollem_backends'] = array();
*/
function getVFSOb($backend_key, $params = array())
{
- if (isset($_SESSION['gollem']['backends'][$backend_key])) {
- $be_config = &$_SESSION['gollem']['backends'][$backend_key];
+ if ($config = $GLOBALS['session']->get('gollem', 'backends/' . $backend_key)) {
+ $be_config = $config;
+ $sess_setup = true;
} else {
$be_config = $GLOBALS['gollem_backends'][$backend_key];
+ $sess_setup = false;
}
if (!count($params)) {
$params = $be_config['params'];
if ($sess_setup) {
$be_config['quota_val'] = $quota_str[0];
$be_config['quota_metric'] = $quota_metric[$metric];
+ $GLOBALS['session']->set('gollem', 'backends/' . $backend_key, $be_config);
}
}
} elseif ($be_config['quota_val'] > -1) {
*/
static public function getBackends($perms = 'all')
{
- $backends = $_SESSION['gollem']['backends'];
+ $backends = $GLOBALS['session']->get('gollem', 'backends');
$perms = strtolower($perms);
if ($perms != 'all') {
require_once dirname(__FILE__) . '/lib/Application.php';
Horde_Registry::appInit('gollem');
-$backkey = $_SESSION['gollem']['backend_key'];
+$backkey = $session->get('gollem', 'backend_key');
+if (!empty($gollem_be['clipboard'])) {
+ $clipboard = $GLOBALS['session']->get('gollem', 'clipboard', Horde_Session::TYPE_ARRAY);
+}
$old_dir = Gollem::getDir();
$vars = Horde_Variables::getDefaultVariables();
'name' => $item,
'path' => $old_dir
);
- $_SESSION['gollem']['clipboard'][] = $file;
+ $clipboard[] = $file;
+ $GLOBALS['session']->set('gollem', 'clipboard', $clipboard);
if ($action == 'copy') {
$notification->push(sprintf(_("Item copied to clipboard: %s"), $item),'horde.success');
} else {
$items = Horde_Util::getPost('items');
if (is_array($items) && count($items)) {
foreach ($items as $val) {
- if (isset($_SESSION['gollem']['clipboard'][$val])) {
- $file = $_SESSION['gollem']['clipboard'][$val];
+ if (isset($clipboard[$val])) {
+ $file = $clipboard[$val];
if ($vars->actionID == 'paste_items') {
try {
if ($file['action'] == 'cut') {
$notification->push(sprintf(_("Cannot paste \"%s\" (file cleared from clipboard): %s"), $file['name'], $e->getMessage()), 'horde.error');
}
}
- unset($_SESSION['gollem']['clipboard'][$val]);
+ unset($clipboard[$val]);
}
}
- $_SESSION['gollem']['clipboard'] = array_values($_SESSION['gollem']['clipboard']);
+ $session->set('gollem', 'clipboard', array_values($clipboard));
}
}
break;
$page = isset($vars->page)
? $vars->page
: 0;
-if (isset($_SESSION['gollem']['filter']) &&
- ($_SESSION['gollem']['filter'] != $vars->filter)) {
+if ($session->get('gollem', 'filter') != $vars->filter) {
$page = 0;
}
-$_SESSION['gollem']['filter'] = strval($vars->filter);
+$session->set('gollem', 'filter', strval($vars->filter));
/* Commonly used URLs. */
$view_url = Horde::url('view.php');
/* Get the list of copy/cut files in this directory. */
$clipboard_files = array();
if (!empty($gollem_be['clipboard'])) {
- foreach ($_SESSION['gollem']['clipboard'] as $val) {
+ foreach ($clipboard as $val) {
if (($backkey == $val['backend']) && ($val['path'] == $currdir)) {
$clipboard_files[$val['name']] = 1;
}
$template->set('refresh', Horde::link($refresh_url, sprintf("%s %s", _("Refresh"), $gollem_be['label']), '', '', '', '', '', array('id' => 'refreshimg')) . Horde::img('reload.png', sprintf("%s %s", _("Refresh"), htmlspecialchars($gollem_be['label']))) . '</a>');
$template->set('hasclipboard', !$edit_perms || !empty($gollem_be['clipboard']), true);
-if (!$template->get('hasclipboard') ||
- empty($_SESSION['gollem']['clipboard'])) {
+if (!$template->get('hasclipboard') || empty($clipboard)) {
$template->set('clipboard', null);
} else {
$template->set('clipboard', Horde::link(Horde::url('clipboard.php')->add('dir', $currdir), _("View Clipboard")) . Horde::img('clipboard.png', _("View Clipboard")) . '</a>');
$cacheid = Horde_Util::getFormData('cacheid');
if (empty($cacheid)) {
$cacheid = strval(new Horde_Support_Randomid());
- $_SESSION['gollem']['selectlist'][$cacheid] = array();
}
+$selectlist = $session->get('gollem', 'selectlist/' . $cacheid, Horde_Session::TYPE_ARRAY);
/* Get the formid for the return. */
$formid = Horde_Util::getFormData('formid');
if (is_array($items) && count($items)) {
foreach ($items as $item) {
$item_value = $currdir . '|' . $item;
- if (empty($_SESSION['gollem']['selectlist'][$cacheid]['files'])) {
- $_SESSION['gollem']['selectlist'][$cacheid]['files'] = array($item_value);
+ if (empty($selectlist['files'])) {
+ $selectlist['files'] = array($item_value);
} else {
- $item_key = array_search($item_value, $_SESSION['gollem']['selectlist'][$cacheid]['files']);
+ $item_key = array_search($item_value, $selectlist['files']);
if ($item_key !== false) {
- unset($_SESSION['gollem']['selectlist'][$cacheid]['files'][$item_key]);
- sort($_SESSION['gollem']['selectlist'][$cacheid]['files']);
+ unset($selectlist['files'][$item_key]);
+ sort($selectlist['files']);
} else {
- $_SESSION['gollem']['selectlist'][$cacheid]['files'][] = $item_value;
+ $selectlist['files'][] = $item_value;
}
}
}
- $filelist = array_keys(array_flip($_SESSION['gollem']['selectlist'][$cacheid]['files']));
+
+ $session->set('gollem', 'selectlist/' . $cacheid, $selectlist);
+
+ $filelist = array_keys(array_flip($selectlist['files']));
}
break;
}
break;
}
- if (!empty($_SESSION['gollem']['selectlist'][$cacheid]['files']) &&
- in_array($currdir . '|' . $val['name'], $_SESSION['gollem']['selectlist'][$cacheid]['files'])) {
+ if (!empty($selectlist['files']) &&
+ in_array($currdir . '|' . $val['name'], $selectlist['files'])) {
$item['selected'] = true;
}