$notification->push(sprintf(_("Permission denied to %s: %s"), Gollem::$backend['dir'], $e->getMessage()), 'horde.error'); $loc = strrpos(Gollem::$backend['dir'], '/'); Gollem::setDir($loc !== false ? substr(Gollem::$backend['dir'], 0, $loc) : Gollem::$backend['home']); $info = array('list' => Gollem::listFolder(Gollem::$backend['dir'])); } $info['title'] = htmlspecialchars(Gollem::$backend['label']); /* Commonly used URLs. */ $self_url = Horde::url('selectlist.php'); /* Set up the template object. */ $view = $injector->createInstance('Horde_View'); $view->self_url = $self_url; $view->forminput = Horde_Util::formInput(); $view->cacheid = $cacheid; $view->currdir = htmlspecialchars(Gollem::$backend['dir']); $view->formid = htmlspecialchars($vars->formid); $view->navlink = Gollem::directoryNavLink(Gollem::$backend['dir'], $self_url->copy()->add(array('cacheid' => $cacheid, 'formid' => $vars->formid))); if ($GLOBALS['conf']['backend']['backend_list'] == 'shown') { // TODO //$view->changeserver = Horde::link(htmlspecialchars(Horde_Auth::addLogoutParameters(Horde::url('login.php')->add(array('url' => Horde::url('selectlist.php')->add(array('formid' => $vars->formid)))), Horde_Auth::REASON_LOGOUT)), _("Change Server")) . Horde::img('logout.png', _("Change Server")) . '</a>', true; } if (is_array($info['list']) && count($info['list']) && Gollem::checkPermissions('backend', Horde_Perms::READ)) { $entry = $icon_cache = array(); $rowct = 0; foreach ($info['list'] as $key => $val) { $item = array('dir' => false, 'name' => htmlspecialchars($val['name']), 'selected' => false, 'type' => $val['type']); $name = str_replace(' ', ' ', $item['name']); /* Determine graphic to use. */ if (!empty($val['link'])) { $item['graphic'] = '<span class="iconImg gollem-symlink"></span>'; } elseif ($val['type'] == '**dir') { $item['graphic'] = '<span class="iconImg gollem-folder"></span>';
$attrib = $gollem_vfs->getModifiablePermissions(); foreach (array('owner', 'group', 'all') as $val) { foreach (array('read', 'write', 'execute') as $val2) { if (isset($attrib[$val][$val2])) { $template->{$val . '_' . $val2} = !$attrib[$val][$val2]; } } } $all_columns = array('type', 'name', 'share', 'edit', 'download', 'modified', 'size', 'permission', 'owner', 'group'); foreach ($all_columns as $column) { $template->{'columns_' . $column} = in_array($column, $columns); } $template->action = $refresh_url; $template->forminput = Horde_Util::formInput(); $template->dir = Gollem::$backend['dir']; $template->navlink = Gollem::directoryNavLink(Gollem::$backend['dir'], $manager_url); $template->refresh = Horde::widget(array('url' => $refresh_url, 'title' => _("Refresh"), 'id' => 'gollem-refresh')); $template->hasclipboard = $edit_perms; $shares_enabled = !empty(Gollem::$backend['shares']) && strpos(Gollem::$backend['dir'], Gollem::$backend['home']) === 0; if ($shares_enabled) { $shares = $injector->getInstance('Gollem_Shares'); $perms_url_base = Horde::url('share.php', true)->add('app', 'gollem'); $share_name = $backkey . '|' . Gollem::$backend['dir']; $template->share_folder = Horde::widget(array('url' => $perms_url_base->add('share', $share_name), 'title' => _("Share Folder"), 'target' => '_blank', 'class' => 'gollem-sharefolder', 'onclick' => Horde::popupJs($perms_url_base, array('params' => array('share' => $share_name), 'urlencode' => true)) . 'return false;')); } if ($edit_perms) { $template->perms_edit = true; $template->upload_file = _("Upload File(s)"); $template->upload_identifier = session_id(); $template->upload_help = Horde_Help::link('gollem', 'file-upload'); $template->perms_chmod = in_array('permission', $columns);