* [FIX] Minor fixes

* [ADD] Configuration module. Work in progress.
This commit is contained in:
nuxsmin
2018-02-06 01:11:00 +01:00
parent 8ce69f38bc
commit 74741853bd
35 changed files with 1760 additions and 1236 deletions

View File

@@ -659,13 +659,13 @@
<id>1000</id>
<name>CONFIG</name>
<text>Configuración</text>
<route>config/index</route>
<route>configManager/index</route>
</action>
<action multiple="1">
<id>1001</id>
<name>CONFIG_GENERAL</name>
<text>Configuración General</text>
<route>config/general</route>
<route>configManager/general</route>
</action>
<action multiple="1">
<id>1010</id>

View File

@@ -31,11 +31,11 @@ use SP\DataModel\ItemSearchData;
use SP\Http\Request;
use SP\Modules\Web\Controllers\Helpers\ItemsGridHelper;
use SP\Modules\Web\Controllers\Helpers\TabsGridHelper;
use SP\Repositories\AuthToken\AuthTokenRepository;
use SP\Repositories\PublicLink\PublicLinkRepository;
use SP\Repositories\User\UserRepository;
use SP\Repositories\UserGroup\UserGroupRepository;
use SP\Repositories\UserProfile\UserProfileRepository;
use SP\Services\AuthToken\AuthTokenService;
use SP\Services\PublicLink\PublicLinkService;
use SP\Services\User\UserService;
use SP\Services\UserGroup\UserGroupService;
use SP\Services\UserProfile\UserProfileService;
/**
* Class AccessMgmtController
@@ -110,50 +110,60 @@ class AccessManagerController extends ControllerBase
/**
* Returns users' data tab
*
* @throws \SP\Core\Dic\ContainerException
*/
protected function getUsersList()
{
$service = new UserRepository();
$service = new UserService();
return $this->itemsGridHelper->getUsersGrid($service->search($this->itemSearchData))->updatePager();
}
/**
* Returns users group data tab
*
* @throws \SP\Core\Dic\ContainerException
*/
protected function getUsersGroupList()
{
$service = new UserGroupRepository();
$service = new UserGroupService();
return $this->itemsGridHelper->getUserGroupsGrid($service->search($this->itemSearchData))->updatePager();
}
/**
* Returns users profile data tab
*
* @throws \SP\Core\Dic\ContainerException
*/
protected function getUsersProfileList()
{
$service = new UserProfileRepository();
$service = new UserProfileService();
return $this->itemsGridHelper->getUserProfilesGrid($service->search($this->itemSearchData))->updatePager();
}
/**
* Returns API tokens data tab
*
* @throws \SP\Core\Dic\ContainerException
*/
protected function getApiTokensList()
{
$service = new AuthTokenRepository();
$service = new AuthTokenService();
return $this->itemsGridHelper->getApiTokensGrid($service->search($this->itemSearchData))->updatePager();
}
/**
* Returns public links data tab
*
* @throws \SP\Core\Dic\ContainerException
*/
protected function getPublicLinksList()
{
$service = new PublicLinkRepository();
$service = new PublicLinkService();
return $this->itemsGridHelper->getPublicLinksGrid($service->search($this->itemSearchData))->updatePager();
}

View File

@@ -34,7 +34,6 @@ use SP\Core\SessionUtil;
use SP\DataModel\AccountExtData;
use SP\Forms\AccountForm;
use SP\Http\JsonResponse;
use SP\Http\Request;
use SP\Modules\Web\Controllers\Helpers\Account\AccountHelper;
use SP\Modules\Web\Controllers\Helpers\Account\AccountHistoryHelper;
use SP\Modules\Web\Controllers\Helpers\Account\AccountPasswordHelper;
@@ -43,7 +42,6 @@ use SP\Modules\Web\Controllers\Helpers\LayoutHelper;
use SP\Modules\Web\Controllers\Traits\ItemTrait;
use SP\Modules\Web\Controllers\Traits\JsonTrait;
use SP\Mvc\Controller\CrudControllerInterface;
use SP\Services\Account\AccountFileService;
use SP\Services\Account\AccountHistoryService;
use SP\Services\Account\AccountService;
use SP\Services\PublicLink\PublicLinkService;

View File

@@ -0,0 +1,231 @@
<?php
/**
* sysPass
*
* @author nuxsmin
* @link http://syspass.org
* @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org
*
* This file is part of sysPass.
*
* sysPass is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* sysPass is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with sysPass. If not, see <http://www.gnu.org/licenses/>.
*/
namespace SP\Modules\Web\Controllers;
use SP\Controller\ControllerBase;
use SP\Core\Acl\Acl;
use SP\Core\Acl\ActionsInterface;
use SP\Core\Language;
use SP\Http\Request;
use SP\Modules\Web\Controllers\Helpers\TabsHelper;
use SP\Mvc\View\Components\DataTab;
use SP\Mvc\View\Components\SelectItemAdapter;
use SP\Services\User\UserService;
use SP\Services\UserGroup\UserGroupService;
use SP\Services\UserProfile\UserProfileService;
use SP\Util\Checks;
/**
* Class ConfigManagerController
*
* @package SP\Modules\Web\Controllers
*/
class ConfigManagerController extends ControllerBase
{
/**
* @var TabsHelper
*/
protected $tabsHelper;
/**
* @throws \SP\Core\Exceptions\InvalidArgumentException
* @throws \SP\Core\Dic\ContainerException
*/
public function indexAction()
{
$this->getTabs();
}
/**
* Returns a tabbed grid with items
*
* @throws \SP\Core\Exceptions\InvalidArgumentException
* @throws \SP\Core\Dic\ContainerException
*/
protected function getTabs()
{
$this->tabsHelper = new TabsHelper($this->view, $this->config, $this->session, $this->eventDispatcher);
if ($this->checkAccess(ActionsInterface::CONFIG_GENERAL)) {
$this->tabsHelper->addTab($this->getConfigGeneral());
}
if ($this->checkAccess(ActionsInterface::ACCOUNT_CONFIG)) {
$this->tabsHelper->addTab($this->getAccountConfig());
}
if ($this->checkAccess(ActionsInterface::WIKI_CONFIG)) {
$this->tabsHelper->addTab($this->getWikiConfig());
}
if ($this->checkAccess(ActionsInterface::LDAP_CONFIG)) {
$this->tabsHelper->addTab($this->getLdapConfig());
}
if ($this->checkAccess(ActionsInterface::MAIL_CONFIG)) {
$this->tabsHelper->addTab($this->getMailConfig());
}
if ($this->checkAccess(ActionsInterface::ENCRYPTION_CONFIG)) {
// $this->tabsHelper->addTab($this->getEncryptionConfig());
}
if ($this->checkAccess(ActionsInterface::BACKUP_CONFIG)) {
// $this->tabsHelper->addTab($this->getBackupConfig());
}
if ($this->checkAccess(ActionsInterface::IMPORT_CONFIG)) {
// $this->tabsHelper->addTab($this->getImportConfig());
}
$this->eventDispatcher->notifyEvent('show.config', $this);
$this->tabsHelper->renderTabs(Acl::getActionRoute(ActionsInterface::CONFIG), Request::analyze('tabIndex', 0));
$this->view();
}
/**
* @return DataTab
*/
protected function getConfigGeneral()
{
$template = clone $this->view;
$template->setBase('config');
$template->addTemplate('general');
$userData = $this->session->getUserData();
$template->assign('langsAvailable', Language::getAvailableLanguages());
$template->assign('themesAvailable', $this->theme->getThemesAvailable());
$template->assign('isDemoMode', $this->configData->isDemoEnabled() && !$userData->getIsAdminApp());
$template->assign('isDisabled', $this->configData->isDemoEnabled() && !$userData->getIsAdminApp() ? 'disabled' : '');
$template->assign('configData', $this->configData);
$template->assign('users', SelectItemAdapter::factory(UserService::getItemsBasic())->getItemsFromModel());
$template->assign('userGroups', SelectItemAdapter::factory(UserGroupService::getItemsBasic())->getItemsFromModel());
$template->assign('userProfiles', SelectItemAdapter::factory(UserProfileService::getItemsBasic())->getItemsFromModel());
return new DataTab(__('General'), $template);
}
/**
* @return TabsHelper
*/
public function getTabsHelper()
{
return $this->tabsHelper;
}
/**
* @return DataTab
*/
protected function getAccountConfig()
{
$template = clone $this->view;
$template->setBase('config');
$template->addTemplate('accounts');
$template->assign('configData', $this->configData);
return new DataTab(__('Cuentas'), $template);
}
/**
* @return DataTab
*/
protected function getWikiConfig()
{
$template = clone $this->view;
$template->setBase('config');
$template->addTemplate('wiki');
$template->assign('configData', $this->configData);
return new DataTab(__('Wiki'), $template);
}
/**
* @return DataTab
*/
protected function getLdapConfig()
{
$template = clone $this->view;
$template->setBase('config');
$template->addTemplate('ldap');
$template->assign('ldapIsAvailable', Checks::ldapIsAvailable());
$template->assign('configData', $this->configData);
$template->assign('userGroups', SelectItemAdapter::factory(UserGroupService::getItemsBasic())->getItemsFromModel());
$template->assign('userProfiles', SelectItemAdapter::factory(UserProfileService::getItemsBasic())->getItemsFromModel());
return new DataTab(__('LDAP'), $template);
}
/**
* @return DataTab
*/
protected function getMailConfig()
{
$template = clone $this->view;
$template->setBase('config');
$template->addTemplate('mail');
$template->assign('mailSecurity', ['SSL', 'TLS']);
$template->assign('configData', $this->configData);
$template->assign('userGroups', SelectItemAdapter::factory(UserGroupService::getItemsBasic())->getItemsFromModel());
$template->assign('userProfiles', SelectItemAdapter::factory(UserProfileService::getItemsBasic())->getItemsFromModel());
return new DataTab(__('Correo'), $template);
}
/**
* @return DataTab
*/
protected function getEncryptionConfig()
{
$template = clone $this->view;
$template->setBase('config');
$template->addTemplate('mail');
$template->assign('mailSecurity', ['SSL', 'TLS']);
$template->assign('configData', $this->configData);
$this->view->assign('numAccounts', AccountUtil::getTotalNumAccounts());
$this->view->assign('taskId', Task::genTaskId('masterpass'));
$this->view->assign('lastUpdateMPass', isset($this->configDB['lastupdatempass']) ? $this->configDB['lastupdatempass'] : 0);
$this->view->assign('tempMasterPassTime', isset($this->configDB['tempmaster_passtime']) ? $this->configDB['tempmaster_passtime'] : 0);
$this->view->assign('tempMasterMaxTime', isset($this->configDB['tempmaster_maxtime']) ? $this->configDB['tempmaster_maxtime'] : 0);
$this->view->assign('tempMasterAttempts', isset($this->configDB['tempmaster_attempts']) ? sprintf('%d/%d', $this->configDB['tempmaster_attempts'], CryptMasterPass::MAX_ATTEMPTS) : 0);
$this->view->assign('tempMasterPass', SessionFactory::getTemporaryMasterPass());
$template->assign('userGroups', SelectItemAdapter::factory(UserGroupService::getItemsBasic())->getItemsFromModel());
$template->assign('userProfiles', SelectItemAdapter::factory(UserProfileService::getItemsBasic())->getItemsFromModel());
return new DataTab(__('Encriptación'), $template);
}
}

View File

@@ -51,6 +51,7 @@ class AccountActionsHelper extends HelperBase
/**
* @return DataGridAction
* @throws \ReflectionException
*/
public function getViewAction()
{
@@ -76,6 +77,7 @@ class AccountActionsHelper extends HelperBase
* @param AccountAcl $accountAcl
* @param AccountActionsDto $accountActionsDto
* @return DataGridAction[]
* @throws \ReflectionException
*/
public function getActionsForAccount(AccountAcl $accountAcl, AccountActionsDto $accountActionsDto)
{
@@ -183,6 +185,7 @@ class AccountActionsHelper extends HelperBase
/**
* @return DataGridAction
* @throws \ReflectionException
*/
public function getDeleteAction()
{
@@ -243,6 +246,7 @@ class AccountActionsHelper extends HelperBase
/**
* @return DataGridAction
* @throws \ReflectionException
*/
public function getViewPassAction()
{
@@ -265,6 +269,7 @@ class AccountActionsHelper extends HelperBase
/**
* @return DataGridAction
* @throws \ReflectionException
*/
public function getCopyPassAction()
{
@@ -290,6 +295,7 @@ class AccountActionsHelper extends HelperBase
/**
* @return DataGridAction
* @throws \ReflectionException
*/
public function getCopyAction()
{
@@ -311,6 +317,7 @@ class AccountActionsHelper extends HelperBase
/**
* @return DataGridAction
* @throws \ReflectionException
*/
public function getEditPassAction()
{
@@ -332,6 +339,7 @@ class AccountActionsHelper extends HelperBase
/**
* @return DataGridAction
* @throws \ReflectionException
*/
public function getEditAction()
{
@@ -353,6 +361,7 @@ class AccountActionsHelper extends HelperBase
/**
* @return DataGridAction
* @throws \ReflectionException
*/
public function getRequestAction()
{

View File

@@ -25,6 +25,7 @@
namespace SP\Modules\Web\Controllers\Helpers\Account;
use SP\Account\AccountAcl;
use SP\Core\Acl\AccountPermissionException;
use SP\Core\Acl\Acl;
use SP\Core\Acl\ActionsInterface;
use SP\Core\Acl\UnauthorizedPageException;
@@ -44,7 +45,6 @@ use SP\Services\Tag\TagService;
use SP\Services\User\UpdatedMasterPassException;
use SP\Services\User\UserService;
use SP\Services\UserGroup\UserGroupService;
use SP\Util\ErrorUtil;
/**
* Class AccountHelper
@@ -111,10 +111,12 @@ class AccountHelper extends HelperBase
*
* @param AccountDetailsResponse $accountDetailsResponse
* @param int $actionId
* @throws SPException
* @throws UnauthorizedPageException
* @throws UpdatedMasterPassException
* @throws \SP\Core\Dic\ContainerException
* @throws AccountPermissionException
* @throws SPException
* @throws \ReflectionException
*/
public function setViewForAccount(AccountDetailsResponse $accountDetailsResponse, $actionId)
{
@@ -123,7 +125,7 @@ class AccountHelper extends HelperBase
$this->accountAcl = new AccountAcl($actionId);
$this->checkActionAccess();
$this->checkAccess($accountDetailsResponse);
$accountAcl = $this->checkAccess($accountDetailsResponse);
$accountData = $accountDetailsResponse->getAccountVData();
$selectUsers = SelectItemAdapter::factory(UserService::getItemsBasic());
@@ -141,7 +143,7 @@ class AccountHelper extends HelperBase
$this->view->assign('maxFileSize', round($this->configData->getFilesAllowedSize() / 1024, 1));
$this->view->assign('filesAllowedExts', implode(',', $this->configData->getFilesAllowedExts()));
if ($this->configData->isPublinksEnabled() && $this->accountAcl->isShowLink()) {
if ($this->configData->isPublinksEnabled() && $accountAcl->isShowLink()) {
$publicLinkData = $this->publicLinkService->getHashForItem($this->accountId);
$publicLinkUrl = $publicLinkData ? PublicLinkService::getLinkForHash($publicLinkData->getHash()) : null;
@@ -160,7 +162,7 @@ class AccountHelper extends HelperBase
$this->view->assign('accountData', $accountData);
$this->view->assign('gotData', true);
$this->view->assign('actions', $this->getActionsHelper()->getActionsForAccount($this->accountAcl->getStoredAcl(), new AccountActionsDto($this->accountId, null, $accountData->getParentId())));
$this->view->assign('actions', $this->getActionsHelper()->getActionsForAccount($accountAcl, new AccountActionsDto($this->accountId, null, $accountData->getParentId())));
$this->setViewCommon();
}
@@ -184,7 +186,8 @@ class AccountHelper extends HelperBase
* Comprobar si el usuario dispone de acceso al módulo
*
* @param AccountDetailsResponse $accountDetailsResponse
* @return bool
* @return AccountAcl
* @throws AccountPermissionException
*/
protected function checkAccess(AccountDetailsResponse $accountDetailsResponse)
{
@@ -198,13 +201,13 @@ class AccountHelper extends HelperBase
$acccountAclDto->setUsersId($accountDetailsResponse->getUsers());
$acccountAclDto->setUserGroupsId($accountDetailsResponse->getUserGroups());
if (!$this->accountAcl->getAcl($acccountAclDto)->checkAccountAccess()) {
ErrorUtil::showErrorInView($this->view, ErrorUtil::ERR_ACCOUNT_NO_PERMISSION);
$accountAcl = $this->accountAcl->getAcl($acccountAclDto);
return false;
if ($accountAcl === null || !$accountAcl->checkAccountAccess()) {
throw new AccountPermissionException(SPException::SP_INFO);
}
return true;
return $accountAcl;
}
/**

View File

@@ -36,12 +36,8 @@ use SP\Html\DataGrid\DataGridHeaderSort;
use SP\Html\DataGrid\DataGridPager;
use SP\Html\DataGrid\DataGridSort;
use SP\Http\Request;
use SP\Modules\Web\Controllers\Helpers\Account\AccountActionsHelper;
use SP\Modules\Web\Controllers\Helpers\HelperBase;
use SP\Mvc\View\Components\SelectItemAdapter;
use SP\Repositories\Category\CategoryRepository;
use SP\Repositories\Client\ClientRepository;
use SP\Repositories\Tag\TagRepository;
use SP\Services\Account\AccountSearchService;
use SP\Services\Category\CategoryService;
use SP\Services\Client\ClientService;

View File

@@ -950,6 +950,7 @@ class ItemsGridHelper extends HelperBase
// Grid Header
$GridHeaders = new DataGridHeader();
$GridHeaders->addHeader(__('Cuenta'));
$GridHeaders->addHeader(__('Cliente'));
$GridHeaders->addHeader(__('Fecha Creación'));
$GridHeaders->addHeader(__('Fecha Caducidad'));
$GridHeaders->addHeader(__('Usuario'));
@@ -960,6 +961,7 @@ class ItemsGridHelper extends HelperBase
$GridData = new DataGridData();
$GridData->setDataRowSourceId('id');
$GridData->addDataRowSource('accountName');
$GridData->addDataRowSource('clientName');
$GridData->addDataRowSource('getDateAddFormat', true);
$GridData->addDataRowSource('getDateExpireFormat', true);
$GridData->addDataRowSource('userLogin');

View File

@@ -0,0 +1,71 @@
<?php
/**
* sysPass
*
* @author nuxsmin
* @link http://syspass.org
* @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org
*
* This file is part of sysPass.
*
* sysPass is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* sysPass is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with sysPass. If not, see <http://www.gnu.org/licenses/>.
*/
namespace SP\Modules\Web\Controllers\Helpers;
use SP\Mvc\View\Components\DataTab;
/**
* Class TabsHelper
*
* @package SP\Modules\Web\Controllers\Helpers
*/
class TabsHelper extends HelperBase
{
/**
* Máximo numero de acciones antes de agrupar
*/
const MAX_NUM_ACTIONS = 3;
/**
* @var DataTab[]
*/
protected $tabs = [];
/**
* Inicializar las plantillas para las pestañas
*
* @param string $route
* @param int $activeTab
*/
public function renderTabs($route, $activeTab = 0)
{
$this->view->addTemplate('datatabs', 'common');
$this->view->assign('tabs', $this->tabs);
$this->view->assign('activeTab', $activeTab);
$this->view->assign('maxNumActions', self::MAX_NUM_ACTIONS);
$this->view->assign('tabsRoute', $route);
}
/**
* Add a new data tab
*
* @param DataTab $tab
*/
public function addTab(DataTab $tab)
{
$this->tabs[] = $tab;
}
}

View File

@@ -31,14 +31,14 @@ use SP\DataModel\ItemSearchData;
use SP\Http\Request;
use SP\Modules\Web\Controllers\Helpers\ItemsGridHelper;
use SP\Modules\Web\Controllers\Helpers\TabsGridHelper;
use SP\Repositories\Account\AccountFileRepository;
use SP\Repositories\Account\AccountHistoryRepository;
use SP\Repositories\Account\AccountRepository;
use SP\Repositories\Category\CategoryRepository;
use SP\Repositories\Client\ClientRepository;
use SP\Repositories\CustomField\CustomFieldDefRepository;
use SP\Repositories\Plugin\PluginRepository;
use SP\Repositories\Tag\TagRepository;
use SP\Services\Account\AccountFileService;
use SP\Services\Account\AccountHistoryService;
use SP\Services\Account\AccountService;
use SP\Services\Category\CategoryService;
use SP\Services\Client\ClientService;
use SP\Services\CustomField\CustomFieldDefService;
use SP\Services\Tag\TagService;
/**
* Class ItemManagerController
@@ -125,70 +125,84 @@ class ItemManagerController extends ControllerBase
/**
* Returns categories' data tab
*
* @throws \SP\Core\Dic\ContainerException
*/
protected function getCategoriesList()
{
$service = new CategoryRepository();
$service = new CategoryService();
return $this->itemsGridHelper->getCategoriesGrid($service->search($this->itemSearchData))->updatePager();
}
/**
* Returns tags' data tab
*
* @throws \SP\Core\Dic\ContainerException
*/
protected function getTagsList()
{
$service = new TagRepository();
$service = new TagService();
return $this->itemsGridHelper->getTagsGrid($service->search($this->itemSearchData))->updatePager();
}
/**
* Returns clients' data tab
*
* @throws \SP\Core\Dic\ContainerException
*/
protected function getClientsList()
{
$service = new ClientRepository();
$service = new ClientService();
return $this->itemsGridHelper->getClientsGrid($service->search($this->itemSearchData))->updatePager();
}
/**
* Returns custom fields' data tab
*
* @throws \SP\Core\Dic\ContainerException
*/
protected function getCustomFieldsList()
{
$service = new CustomFieldDefRepository();
$service = new CustomFieldDefService();
return $this->itemsGridHelper->getCustomFieldsGrid($service->search($this->itemSearchData))->updatePager();
}
/**
* Returns account files' data tab
*
* @throws \SP\Core\Dic\ContainerException
*/
protected function getAccountFilesList()
{
$service = new AccountFileRepository();
$service = new AccountFileService();
return $this->itemsGridHelper->getFilesGrid($service->search($this->itemSearchData))->updatePager();
}
/**
* Returns accounts' data tab
*
* @throws \SP\Core\Dic\ContainerException
*/
protected function getAccountsList()
{
$service = new AccountRepository();
$service = new AccountService();
return $this->itemsGridHelper->getAccountsGrid($service->search($this->itemSearchData))->updatePager();
}
/**
* Returns accounts' history data tab
*
* @throws \SP\Core\Dic\ContainerException
*/
protected function getAccountsHistoryList()
{
$service = new AccountHistoryRepository();
$service = new AccountHistoryService();
return $this->itemsGridHelper->getAccountsHistoryGrid($service->search($this->itemSearchData))->updatePager();
}
@@ -198,6 +212,7 @@ class ItemManagerController extends ControllerBase
*/
protected function getPluginsList()
{
// FIXME: create Plugin Service
$service = new PluginRepository();
return $this->itemsGridHelper->getPluginsGrid($service->search($this->itemSearchData))->updatePager();

View File

@@ -0,0 +1,27 @@
<?php
/**
* @var $icons SP\Core\UI\ThemeIconsBase
* @var $this \SP\Mvc\View\Template
* @var $tabs \SP\Mvc\View\Components\DataTab[]
*/
?>
<!-- Start Tabs-->
<div class="mdl-tabs mdl-js-tabs mdl-js-ripple-effect">
<div id="tabsHeader" class="mdl-tabs__tab-bar"></div>
<?php foreach ($tabs as $index => $tab): ?>
<div id="tabs-<?php echo $index; ?>"
class="mdl-tabs__panel"
data-tab-route="<?php echo $tabsRoute; ?>"
data-tab-index="<?php echo $index; ?>">
<div class="tab-data">
<?php echo $tab->render(); ?>
</div>
</div>
<script type="text/javascript">
sysPassApp.theme().html.tabs.add("#tabsHeader", <?php echo $index; ?>, "<?php echo $tab->getTitle(); ?>", <?php echo $index === $activeTab ? 1 : 0; ?>);
</script>
<?php endforeach; ?>
</div>
<!-- End Tabs-->

View File

@@ -1,334 +1,328 @@
<?php /** @var $icons \Theme\Icons */ ?>
<div id="tabs-<?php echo $accounts_tabIndex; ?>" class="mdl-tabs__panel">
<div class="tab-data">
<form method="post" name="frmAccounts" id="frmAccounts" class="form-action"
data-onsubmit="config/save"
data-type="general"
data-reload="1"
data-hash="">
<form method="post" name="frmAccounts" id="frmAccounts" class="form-action"
data-onsubmit="config/save"
data-type="general"
data-reload="1"
data-hash="">
<div id="title" class="midroundup titleNormal">
<?php echo __('Búsqueda'); ?>
</div>
<table id="tblAccounts" class="data tblConfig round">
<tr>
<td class="descField">
<?php echo __('Resultados por página'); ?>
<div id="help-account_count"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-account_count">
<p>
<?php echo __('Número de resultados por página a mostrar, al realizar una búsqueda.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="account_count" name="account_count" type="number" step="6"
pattern="[0-9]{1,5}" class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="5"
value="<?php echo $ConfigData->getAccountCount(); ?>" required/>
<label class="mdl-textfield__label"
for="account_count"><?php echo __('Número de resultados por página'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-account_link"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-account_link">
<p>
<?php echo __('Habilita el nombre de la cuenta de la búsqueda, como enlace a los detalles de la cuenta.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="account_link">
<input type="checkbox" id="account_link"
class="mdl-switch__input mdl-color-text--indigo-400"
name="account_link" <?php echo $ConfigData->isAccountLink() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Nombre de cuenta como enlace'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-globalsearch"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-globalsearch">
<p>
<?php echo __('Permite que todos los usuarios puedan realizar búsquedas en todas las cuentas, pero no pueden ver el contenido de las que no tienen permisos.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="globalsearch">
<input type="checkbox" id="globalsearch"
class="mdl-switch__input mdl-color-text--indigo-400"
name="globalsearch" <?php echo $ConfigData->isGlobalSearch() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Búsquedas globales'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-account_passtoimage"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-account_passtoimage">
<p>
<?php echo __('Generar una imagen con el texto de la clave de la cuenta.'); ?>
</p>
<p>
<?php echo __('Util para entornos donde copiar la clave supone un riesgo de seguridad.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="account_passtoimage">
<input type="checkbox" id="account_passtoimage"
class="mdl-switch__input mdl-color-text--indigo-400"
name="account_passtoimage"
<?php echo $ConfigData->isAccountPassToImage() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Imagen para mostrar clave'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-resultsascards"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-resultsascards">
<p>
<?php echo __('Muestra los resultados de búsqueda de cuentas en formato tarjeta.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="resultsascards">
<input type="checkbox" id="resultsascards"
class="mdl-switch__input mdl-color-text--indigo-400"
name="resultsascards"
<?php echo $ConfigData->isResultsAsCards() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Resultados en Tarjetas'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-account_fullgroup_access"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-account_fullgroup_access">
<p>
<?php echo __('Habilita el acceso a los usuarios que estén incluidos en los grupos secundarios.'); ?>
</p>
<p>
<?php echo __('Por defecto el usuario de un grupo secundario es permitido si el grupo secundario está establecido como el primario del usuario.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="account_fullgroup_access">
<input type="checkbox" id="account_fullgroup_access"
class="mdl-switch__input mdl-color-text--indigo-400"
name="account_fullgroup_access"
<?php echo $ConfigData->isAccountFullGroupAccess() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Acceso Grupos Secundarios'); ?></span>
</label>
</td>
</tr>
</table>
<div id="title" class="midroundup titleNormal">
<?php echo __('Enlaces Públicos'); ?>
</div>
<table id="tblFiles" class="data tblConfig round">
<tr>
<td class="descField">
<div id="help-publinks"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-publinks">
<p>
<?php echo __('Habilita la posibilidad de generar enlaces públicos para ver los detalles de una cuenta.'); ?>
</p>
<p>
<?php echo __('Las cuentas enlazadas serán visibles por cualquiera que disponga del enlace.'); ?>
</p>
<p>
<?php echo __('Para crear enlaces, los usuarios tienen que tener activada la opción en su perfl.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="publinks_enabled">
<input type="checkbox" id="publinks_enabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="publinks_enabled"
<?php echo $ConfigData->isPublinksEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar Enlaces Públicos'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Tiempo de caducidad'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="publinks_maxtime" name="publinks_maxtime" type="number" step="5"
pattern="[0-9]{1,5}" class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="5"
value="<?php echo $ConfigData->getPublinksMaxTime() / 60; ?>"/>
<label class="mdl-textfield__label"
for="publinks_maxtime"><?php echo __('Tiempo de caducidad'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Número máximo de visitas'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="publinks_maxviews" name="publinks_maxviews" type="number" step="1"
pattern="[0-9]{1,5}" class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="5"
value="<?php echo $ConfigData->getPublinksMaxViews(); ?>"/>
<label class="mdl-textfield__label"
for="publinks_maxviews"><?php echo __('Número máximo de visitas'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-publinksimage"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-publinksimage">
<p>
<?php echo __('La clave de la cuenta es visualizada como una imagen.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="publinks_image_enabled">
<input type="checkbox" id="publinks_image_enabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="publinks_image_enabled"
<?php echo $ConfigData->isPublinksImageEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Usar imagen para clave'); ?></span>
</label>
</td>
</tr>
</table>
<div id="title" class="midroundup titleNormal">
<?php echo __('Archivos'); ?>
</div>
<table id="tblFiles" class="data tblConfig round">
<tr>
<td class="descField">
<div id="help-files"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-files">
<p>
<?php echo __('Habilita la subida/descarga de archivos para las cuentas.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="files_enabled">
<input type="checkbox" id="files_enabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="files_enabled"
<?php echo $ConfigData->isFilesEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Gestión de archivos'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Extensiones de archivos permitidas'); ?>
<div id="help-allowed_exts"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-allowed_exts">
<p>
<?php echo __('Extensiones permitidas para la subida de archivos.'); ?>
</p>
<p>
<?php echo __('Se permite un máximo de 4 caracteres.'); ?>
</p>
<p>
<?php echo __('Escribir extensión y pulsar intro para añadir. Es necesario guardar la configuración.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Extensiones de archivos permitidas'); ?></div>
<input type="text" name="files_allowed_exts" id="allowed_exts"
value="<?php echo implode(',', $ConfigData->getFilesAllowedExts()); ?>"/>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Tamaño máximo de archivo'); ?>
<div id="help-files_allowed_size"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-files_allowed_size">
<p>
<?php echo __('Establece el tamaño máximo para subir archivos.'); ?>
</p>
<p>
<?php echo __('El máximo absuluto es de 16MB.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="files_allowed_size" name="files_allowed_size" type="number" step="512"
pattern="[0-9]{1,5}" class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="5"
value="<?php echo $ConfigData->getFilesAllowedSize(); ?>"/>
<label class="mdl-textfield__label"
for="files_allowed_size"><?php echo __('Tamaño máximo de archivo en kilobytes'); ?></label>
</div>
</td>
</tr>
</table>
<input type="hidden" name="activeTab" value="<?php echo $accounts_tabIndex; ?>"/>
<input type="hidden" name="actionId" value="<?php echo $accounts_actionId; ?>"/>
<input type="hidden" name="sk" value="">
<input type="hidden" name="isAjax" value="1"/>
</form>
<div class="tab-actions">
<ul>
<li>
<button id="btnBack" type="button"
class="btn-back mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
title="<?php echo __('Atrás'); ?>">
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
</button>
</li>
<li>
<button form="frmAccounts"
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
title="<?php echo $icons->getIconSave()->getTitle(); ?>">
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
</button>
</li>
</ul>
</div>
<div id="title" class="midroundup titleNormal">
<?php echo __('Búsqueda'); ?>
</div>
</div>
<table id="tblAccounts" class="data tblConfig round">
<tr>
<td class="descField">
<?php echo __('Resultados por página'); ?>
<div id="help-account_count"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-account_count">
<p>
<?php echo __('Número de resultados por página a mostrar, al realizar una búsqueda.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="account_count" name="account_count" type="number" step="6"
pattern="[0-9]{1,5}" class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="5"
value="<?php echo $configData->getAccountCount(); ?>" required/>
<label class="mdl-textfield__label"
for="account_count"><?php echo __('Número de resultados por página'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-account_link"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-account_link">
<p>
<?php echo __('Habilita el nombre de la cuenta de la búsqueda, como enlace a los detalles de la cuenta.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="account_link">
<input type="checkbox" id="account_link"
class="mdl-switch__input mdl-color-text--indigo-400"
name="account_link" <?php echo $configData->isAccountLink() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Nombre de cuenta como enlace'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-globalsearch"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-globalsearch">
<p>
<?php echo __('Permite que todos los usuarios puedan realizar búsquedas en todas las cuentas, pero no pueden ver el contenido de las que no tienen permisos.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="globalsearch">
<input type="checkbox" id="globalsearch"
class="mdl-switch__input mdl-color-text--indigo-400"
name="globalsearch" <?php echo $configData->isGlobalSearch() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Búsquedas globales'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-account_passtoimage"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-account_passtoimage">
<p>
<?php echo __('Generar una imagen con el texto de la clave de la cuenta.'); ?>
</p>
<p>
<?php echo __('Util para entornos donde copiar la clave supone un riesgo de seguridad.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="account_passtoimage">
<input type="checkbox" id="account_passtoimage"
class="mdl-switch__input mdl-color-text--indigo-400"
name="account_passtoimage"
<?php echo $configData->isAccountPassToImage() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Imagen para mostrar clave'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-resultsascards"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-resultsascards">
<p>
<?php echo __('Muestra los resultados de búsqueda de cuentas en formato tarjeta.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="resultsascards">
<input type="checkbox" id="resultsascards"
class="mdl-switch__input mdl-color-text--indigo-400"
name="resultsascards"
<?php echo $configData->isResultsAsCards() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Resultados en Tarjetas'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-account_fullgroup_access"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-account_fullgroup_access">
<p>
<?php echo __('Habilita el acceso a los usuarios que estén incluidos en los grupos secundarios.'); ?>
</p>
<p>
<?php echo __('Por defecto el usuario de un grupo secundario es permitido si el grupo secundario está establecido como el primario del usuario.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="account_fullgroup_access">
<input type="checkbox" id="account_fullgroup_access"
class="mdl-switch__input mdl-color-text--indigo-400"
name="account_fullgroup_access"
<?php echo $configData->isAccountFullGroupAccess() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Acceso Grupos Secundarios'); ?></span>
</label>
</td>
</tr>
</table>
<div id="title" class="midroundup titleNormal">
<?php echo __('Enlaces Públicos'); ?>
</div>
<table id="tblFiles" class="data tblConfig round">
<tr>
<td class="descField">
<div id="help-publinks"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-publinks">
<p>
<?php echo __('Habilita la posibilidad de generar enlaces públicos para ver los detalles de una cuenta.'); ?>
</p>
<p>
<?php echo __('Las cuentas enlazadas serán visibles por cualquiera que disponga del enlace.'); ?>
</p>
<p>
<?php echo __('Para crear enlaces, los usuarios tienen que tener activada la opción en su perfl.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="publinks_enabled">
<input type="checkbox" id="publinks_enabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="publinks_enabled"
<?php echo $configData->isPublinksEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar Enlaces Públicos'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Tiempo de caducidad'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="publinks_maxtime" name="publinks_maxtime" type="number" step="5"
pattern="[0-9]{1,5}" class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="5"
value="<?php echo $configData->getPublinksMaxTime() / 60; ?>"/>
<label class="mdl-textfield__label"
for="publinks_maxtime"><?php echo __('Tiempo de caducidad'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Número máximo de visitas'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="publinks_maxviews" name="publinks_maxviews" type="number" step="1"
pattern="[0-9]{1,5}" class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="5"
value="<?php echo $configData->getPublinksMaxViews(); ?>"/>
<label class="mdl-textfield__label"
for="publinks_maxviews"><?php echo __('Número máximo de visitas'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-publinksimage"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-publinksimage">
<p>
<?php echo __('La clave de la cuenta es visualizada como una imagen.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="publinks_image_enabled">
<input type="checkbox" id="publinks_image_enabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="publinks_image_enabled"
<?php echo $configData->isPublinksImageEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Usar imagen para clave'); ?></span>
</label>
</td>
</tr>
</table>
<div id="title" class="midroundup titleNormal">
<?php echo __('Archivos'); ?>
</div>
<table id="tblFiles" class="data tblConfig round">
<tr>
<td class="descField">
<div id="help-files"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-files">
<p>
<?php echo __('Habilita la subida/descarga de archivos para las cuentas.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="files_enabled">
<input type="checkbox" id="files_enabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="files_enabled"
<?php echo $configData->isFilesEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Gestión de archivos'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Extensiones de archivos permitidas'); ?>
<div id="help-allowed_exts"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-allowed_exts">
<p>
<?php echo __('Extensiones permitidas para la subida de archivos.'); ?>
</p>
<p>
<?php echo __('Se permite un máximo de 4 caracteres.'); ?>
</p>
<p>
<?php echo __('Escribir extensión y pulsar intro para añadir. Es necesario guardar la configuración.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Extensiones de archivos permitidas'); ?></div>
<input type="text" name="files_allowed_exts" id="allowed_exts"
value="<?php echo implode(',', $configData->getFilesAllowedExts()); ?>"/>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Tamaño máximo de archivo'); ?>
<div id="help-files_allowed_size"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-files_allowed_size">
<p>
<?php echo __('Establece el tamaño máximo para subir archivos.'); ?>
</p>
<p>
<?php echo __('El máximo absuluto es de 16MB.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="files_allowed_size" name="files_allowed_size" type="number" step="512"
pattern="[0-9]{1,5}" class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="5"
value="<?php echo $configData->getFilesAllowedSize(); ?>"/>
<label class="mdl-textfield__label"
for="files_allowed_size"><?php echo __('Tamaño máximo de archivo en kilobytes'); ?></label>
</div>
</td>
</tr>
</table>
<input type="hidden" name="sk" value="">
<input type="hidden" name="isAjax" value="1"/>
</form>
<div class="tab-actions">
<ul>
<li>
<button id="btnBack" type="button"
class="btn-back mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
title="<?php echo __('Atrás'); ?>">
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
</button>
</li>
<li>
<button form="frmAccounts"
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
title="<?php echo $icons->getIconSave()->getTitle(); ?>">
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
</button>
</li>
</ul>
</div>

View File

@@ -9,7 +9,7 @@
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="authbasic_enabled">
<input type="checkbox" id="authbasic_enabled" class="mdl-switch__input mdl-color-text--indigo-400"
name="authbasic_enabled"
<?php echo $ConfigData->isAuthBasicEnabled() ? 'checked' : ''; ?>/>
<?php echo $configData->isAuthBasicEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Usar Auth Basic'); ?></span>
</label>
</td>
@@ -21,7 +21,7 @@
<input type="checkbox" id="authbasicautologin_enabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="authbasicautologin_enabled"
<?php echo $ConfigData->isAuthBasicAutoLoginEnabled() ? 'checked' : ''; ?>/>
<?php echo $configData->isAuthBasicAutoLoginEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Usar auto-login con Auth Basic'); ?></span>
</label>
</td>
@@ -41,7 +41,7 @@
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="authbasic_domain" name="authbasic_domain" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $ConfigData->getAuthBasicDomain(); ?>">
maxlength="128" value="<?php echo $configData->getAuthBasicDomain(); ?>">
<label class="mdl-textfield__label"
for="authbasic_domain"><?php echo __('Nombre de dominio'); ?></label>
</div>
@@ -64,9 +64,10 @@
<select id="sso_defaultgroup" name="sso_defaultgroup"
class="select-box sel-chosen-usergroup">
<option value=""><?php echo __('Seleccionar Grupo'); ?></option>
<?php foreach ($groups as $group): ?>
<?php /** @var \SP\Mvc\View\Components\SelectItem[] $userGroups */
foreach ($userGroups as $userGroup): ?>
<option
value="<?php echo $group->id; ?>" <?php echo $group->id === $ConfigData->getSsoDefaultGroup() ? 'selected' : ''; ?>><?php echo $group->name; ?></option>
value="<?php echo $userGroup->getId(); ?>" <?php echo $userGroup->getId() === $configData->getSsoDefaultGroup() ? 'selected' : ''; ?>><?php echo $userGroup->getName(); ?></option>
<?php endforeach; ?>
</select>
</td>
@@ -88,9 +89,10 @@
<select id="sso_defaultprofile" name="sso_defaultprofile"
class="select-box sel-chosen-profile">
<option value=""><?php echo __('Seleccionar Usuario'); ?></option>
<?php foreach ($profiles as $profile): ?>
<?php /** @var \SP\Mvc\View\Components\SelectItem[] $userProfiles */
foreach ($userProfiles as $userProfile): ?>
<option
value="<?php echo $profile->id; ?>" <?php echo ($profile->id === $ConfigData->getSsoDefaultProfile()) ? 'selected' : ''; ?>><?php echo $profile->name; ?></option>
value="<?php echo $userProfile->getId(); ?>" <?php echo ($userProfile->getId() === $configData->getSsoDefaultProfile()) ? 'selected' : ''; ?>><?php echo $userProfile->getName(); ?></option>
<?php endforeach; ?>
</select>
</td>

View File

@@ -17,7 +17,7 @@
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="log_enabled">
<input type="checkbox" id="log_enabled" class="mdl-switch__input mdl-color-text--indigo-400" name="log_enabled"
<?php echo $ConfigData->isLogEnabled() ? 'checked' : ''; ?>/>
<?php echo $configData->isLogEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar log de eventos'); ?></span>
</label>
</td>
@@ -28,7 +28,7 @@
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="syslog_enabled">
<input type="checkbox" id="syslog_enabled" class="mdl-switch__input mdl-color-text--indigo-400" name="syslog_enabled"
<?php echo $ConfigData->isSyslogEnabled() ? 'checked' : ''; ?>/>
<?php echo $configData->isSyslogEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar Syslog'); ?></span>
</label>
</td>
@@ -39,7 +39,7 @@
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="remotesyslog_enabled">
<input type="checkbox" id="remotesyslog_enabled" class="mdl-switch__input mdl-color-text--indigo-400" name="remotesyslog_enabled"
<?php echo $ConfigData->isSyslogRemoteEnabled() ? 'checked' : ''; ?>/>
<?php echo $configData->isSyslogRemoteEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar Syslog Remoto'); ?></span>
</label>
</td>
@@ -52,7 +52,7 @@
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="remotesyslog_server" name="remotesyslog_server" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
value="<?php echo $ConfigData->getSyslogServer(); ?>"/>
value="<?php echo $configData->getSyslogServer(); ?>"/>
<label class="mdl-textfield__label"
for="remotesyslog_server"><?php echo __('Nombre o dirección IP'); ?></label>
</div>
@@ -66,7 +66,7 @@
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="remotesyslog_port" name="remotesyslog_port" type="number"
pattern="[0-9]{1-5}" step="1" max="65535" class="mdl-textfield__input mdl-color-text--indigo-400"
value="<?php echo $ConfigData->getSyslogPort(); ?>"/>
value="<?php echo $configData->getSyslogPort(); ?>"/>
<label class="mdl-textfield__label"
for="remotesyslog_port"><?php echo __('Puerto'); ?></label>
</div>

View File

@@ -9,7 +9,7 @@
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="proxy_enabled">
<input type="checkbox" id="proxy_enabled" class="mdl-switch__input mdl-color-text--indigo-400"
name="proxy_enabled"
<?php echo $ConfigData->isProxyEnabled() ? 'checked' : ''; ?>/>
<?php echo $configData->isProxyEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Usar Proxy'); ?></span>
</label>
</td>
@@ -22,7 +22,7 @@
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="proxy_server" name="proxy_server" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $ConfigData->getProxyServer(); ?>">
maxlength="128" value="<?php echo $configData->getProxyServer(); ?>">
<label class="mdl-textfield__label"
for="proxy_server"><?php echo __('Servidor proxy'); ?></label>
</div>
@@ -36,7 +36,7 @@
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="proxy_port" name="proxy_port" type="number"
class="mdl-textfield__input mdl-color-text--indigo-400" pattern="[0-9]{1,5}"
maxlength="128" value="<?php echo $ConfigData->getProxyPort(); ?>">
maxlength="128" value="<?php echo $configData->getProxyPort(); ?>">
<label class="mdl-textfield__label"
for="proxy_port"><?php echo __('Puerto del servidor proxy'); ?></label>
</div>
@@ -50,7 +50,7 @@
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="proxy_user" name="proxy_user" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $ConfigData->getProxyUser(); ?>">
maxlength="128" value="<?php echo $configData->getProxyUser(); ?>">
<label class="mdl-textfield__label"
for="proxy_user"><?php echo __('Usuario del servidor proxy'); ?></label>
</div>
@@ -64,7 +64,7 @@
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="proxy_pass" name="proxy_pass" type="password"
class="mdl-textfield__input passwordfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $ConfigData->getProxyPass(); ?>">
maxlength="128" value="<?php echo $configData->getProxyPass(); ?>">
<label class="mdl-textfield__label"
for="proxy_pass"><?php echo __('Clave del servidor proxy'); ?></label>
</div>

View File

@@ -26,7 +26,7 @@
<select name="sitelang" id="sel-sitelang" size="1" class="select-box sel-chosen-ns">
<?php foreach ($langsAvailable as $langName => $langValue): ?>
<option
value='<?php echo $langValue; ?>' <?php echo ($ConfigData->getSiteLang() === $langValue) ? 'SELECTED' : ''; ?>><?php echo $langName; ?></option>
value='<?php echo $langValue; ?>' <?php echo ($configData->getSiteLang() === $langValue) ? 'SELECTED' : ''; ?>><?php echo $langName; ?></option>
<?php endforeach; ?>
</select>
</td>
@@ -49,7 +49,7 @@
class="select-box sel-chosen-ns" >
<?php foreach ($themesAvailable as $themeDir => $themeName): ?>
<option
value='<?php echo $themeDir; ?>' <?php echo ($ConfigData->getSiteTheme() === $themeDir) ? "SELECTED" : ""; ?>><?php echo $themeName; ?></option>
value='<?php echo $themeDir; ?>' <?php echo ($configData->getSiteTheme() === $themeDir) ? "SELECTED" : ""; ?>><?php echo $themeName; ?></option>
<?php endforeach; ?>
</select>
</td>
@@ -62,7 +62,7 @@
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="session_timeout" name="session_timeout" type="number" step="300"
pattern="[0-9]{2,4}" class="mdl-textfield__input mdl-color-text--indigo-400" maxlength="5"
value="<?php echo $ConfigData->getSessionTimeout(); ?>" required/>
value="<?php echo $configData->getSessionTimeout(); ?>" required/>
<label class="mdl-textfield__label"
for="session_timeout"><?php echo __('Timeout de sesión (s)'); ?></label>
</div>
@@ -82,7 +82,7 @@
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="https_enabled">
<input type="checkbox" id="https_enabled" class="mdl-switch__input mdl-color-text--indigo-400"
name="https_enabled"
<?php echo $ConfigData->isHttpsEnabled() ? 'checked' : ''; ?>/>
<?php echo $configData->isHttpsEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Forzar HTTPS'); ?></span>
</label>
</td>
@@ -100,7 +100,7 @@
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="debug">
<input type="checkbox" id="debug" class="mdl-switch__input mdl-color-text--indigo-400" name="debug"
<?php echo $ConfigData->isDebug() ? 'checked' : ''; ?>/>
<?php echo $configData->isDebug() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar depuración'); ?></span>
</label>
</td>
@@ -118,7 +118,7 @@
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="maintenance">
<input type="checkbox" id="maintenance" class="mdl-switch__input mdl-color-text--indigo-400" name="maintenance"
<?php echo $ConfigData->isMaintenance() ? 'checked' : ''; ?>/>
<?php echo $configData->isMaintenance() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Modo mantenimiento'); ?></span>
</label>
</td>
@@ -136,7 +136,7 @@
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="updates">
<input type="checkbox" id="updates" class="mdl-switch__input mdl-color-text--indigo-400" name="updates"
<?php echo $ConfigData->isCheckUpdates() ? 'checked' : ''; ?>/>
<?php echo $configData->isCheckUpdates() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Comprobar actualizaciones'); ?></span>
</label>
</td>
@@ -154,7 +154,7 @@
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="notices">
<input type="checkbox" id="notices" class="mdl-switch__input mdl-color-text--indigo-400" name="notices"
<?php echo $ConfigData->isChecknotices() ? 'checked' : ''; ?>/>
<?php echo $configData->isChecknotices() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Comprobar notificaciones'); ?></span>
</label>
</td>
@@ -175,7 +175,7 @@
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="encryptsession">
<input type="checkbox" id="encryptsession" class="mdl-switch__input mdl-color-text--indigo-400" name="encryptsession"
<?php echo $ConfigData->isEncryptSession() ? 'checked' : ''; ?>/>
<?php echo $configData->isEncryptSession() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Encriptar Sesión'); ?></span>
</label>
</td>

View File

@@ -1,44 +1,37 @@
<!-- Start Tab - Config -->
<?php
/** @var $icons \Theme\Icons */
/** @var $this \SP\Mvc\View\Template */
?>
<div id="tabs-<?php echo $config_tabIndex; ?>" class="mdl-tabs__panel">
<div class="tab-data">
<form method="post" name="frmConfig" id="frmConfig" class="form-action"
data-onsubmit="config/save"
data-type="general"
data-reload="1"
data-hash="">
<form method="post" name="frmConfig" id="frmConfig" class="form-action"
data-onsubmit="config/save"
data-type="general"
data-reload="1"
data-hash="">
<?php include $this->includeTemplate('general-site');; ?>
<?php include $this->includeTemplate('general-events'); ?>
<?php include $this->includeTemplate('general-proxy'); ?>
<?php include $this->includeTemplate('general-auth'); ?>
<?php include $this->includeTemplate('general-site'); ?>
<?php include $this->includeTemplate('general-events'); ?>
<?php include $this->includeTemplate('general-proxy'); ?>
<?php include $this->includeTemplate('general-auth'); ?>
<input type="hidden" name="activeTab" value="<?php echo $config_tabIndex; ?>"/>
<input type="hidden" name="actionId" value="<?php echo $config_actionId; ?>"/>
<input type="hidden" name="sk" value="">
<input type="hidden" name="isAjax" value="1"/>
</form>
<input type="hidden" name="sk" value="">
<input type="hidden" name="isAjax" value="1"/>
</form>
<div class="tab-actions">
<ul>
<li>
<button id="btnBack" type="button"
class="btn-back mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
title="<?php echo __('Atrás'); ?>">
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
</button>
</li>
<li>
<button form="frmConfig"
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
title="<?php echo $icons->getIconSave()->getTitle(); ?>">
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
</button>
</li>
</ul>
</div>
</div>
</div> <!-- End Tab - Config -->
<div class="tab-actions">
<ul>
<li>
<button id="btnBack" type="button"
class="btn-back mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
title="<?php echo __('Atrás'); ?>">
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
</button>
</li>
<li>
<button form="frmConfig"
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
title="<?php echo $icons->getIconSave()->getTitle(); ?>">
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
</button>
</li>
</ul>
</div>

View File

@@ -1,361 +1,356 @@
<?php /** @var $icons \Theme\Icons */ ?>
<!-- Start Tab - LDAP -->
<div id="tabs-<?php echo $ldap_tabIndex; ?>" class="mdl-tabs__panel">
<div class="tab-data">
<div id="title" class="midroundup titleNormal">
<?php echo __('LDAP'); ?>
</div>
<div id="title" class="midroundup titleNormal">
<?php echo __('LDAP'); ?>
</div>
<form method="post" name="frmLdap" id="frmLdap" class="form-action"
data-onsubmit="config/save"
data-type="ldap"
data-hash="">
<table id="tblLdap" class="data tblConfig round">
<?php if ($ldapIsAvailable || $isDemoMode): ?>
<tr>
<td class="descField">
<div id="help-ldap_enabled"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_enabled">
<p>
<?php echo __('Habilita de autentificación mediante servidor LDAP.'); ?>
</p>
<form method="post" name="frmLdap" id="frmLdap" class="form-action"
data-onsubmit="config/save"
data-type="ldap"
data-hash="">
<table id="tblLdap" class="data tblConfig round">
<?php if ($ldapIsAvailable || $isDemoMode): ?>
<tr>
<td class="descField">
<div id="help-ldap_enabled"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_enabled">
<p>
<?php echo __('Habilita de autentificación mediante servidor LDAP.'); ?>
</p>
<p>
<?php echo __('Este método utilizará MySQL en caso de fallo.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="ldap_enabled">
<input type="checkbox" id="ldap_enabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="ldap_enabled"
<?php echo $ConfigData->isLdapEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar LDAP'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-ldap_ads"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_ads">
<p>
<?php echo __('Habilita el modo de conexión con LDAP de Active Directory.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="ldap_ads">
<input type="checkbox" id="ldap_ads"
class="mdl-switch__input mdl-color-text--indigo-400"
name="ldap_ads"
<?php echo $ConfigData->isLdapAds() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Active Directory'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Servidor'); ?>
<div id="help-ldap_server"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_server">
<p>
<?php echo __('Nombre o dirección IP del servidor de LDAP.'); ?>
</p>
<p>
<?php echo __('Este método utilizará MySQL en caso de fallo.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="ldap_enabled">
<input type="checkbox" id="ldap_enabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="ldap_enabled"
<?php echo $configData->isLdapEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar LDAP'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-ldap_ads"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_ads">
<p>
<?php echo __('Habilita el modo de conexión con LDAP de Active Directory.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="ldap_ads">
<input type="checkbox" id="ldap_ads"
class="mdl-switch__input mdl-color-text--indigo-400"
name="ldap_ads"
<?php echo $configData->isLdapAds() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Active Directory'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Servidor'); ?>
<div id="help-ldap_server"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_server">
<p>
<?php echo __('Nombre o dirección IP del servidor de LDAP.'); ?>
</p>
<p>
<?php echo __('Ejemplos:'); ?>
</p>
<p>
<?php echo __('Ejemplos:'); ?>
</p>
<ul>
<li>ldap.example.org</li>
<li>ldap://ldap.example.org</li>
<li>ldaps://ldap.example.org</li>
</ul>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="ldap_server" name="ldap_server" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $ConfigData->getLdapServer(); ?>"/>
<label class="mdl-textfield__label"
for="ldap_server"><?php echo __('Servidor'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Usuario de conexión'); ?>
<div id="help-ldap_binduser"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_binduser">
<p>
<?php echo __('Usuario para conectar con el servicio de LDAP.'); ?>
</p>
<ul>
<li>ldap.example.org</li>
<li>ldap://ldap.example.org</li>
<li>ldaps://ldap.example.org</li>
</ul>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="ldap_server" name="ldap_server" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $configData->getLdapServer(); ?>"/>
<label class="mdl-textfield__label"
for="ldap_server"><?php echo __('Servidor'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Usuario de conexión'); ?>
<div id="help-ldap_binduser"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_binduser">
<p>
<?php echo __('Usuario para conectar con el servicio de LDAP.'); ?>
</p>
<p>
<?php echo __('Ejemplos:'); ?>
</p>
<p>
<?php echo __('Ejemplos:'); ?>
</p>
<ul>
<li>cn=syspass,ou=Users,dc=syspass,o=org</li>
<li>syspass</li>
</ul>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="ldap_binduser" name="ldap_binduser" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $ConfigData->getLdapBindUser(); ?>"/>
<label class="mdl-textfield__label"
for="ldap_binduser"><?php echo __('Usuario'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Clave de conexión'); ?>
<div id="help-ldap_bindpass"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_bindpass">
<p>
<?php echo __('Clave del usuario de conexión a LDAP.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="ldap_bindpass" name="ldap_bindpass" type="password"
class="mdl-textfield__input passwordfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $ConfigData->getLdapBindPass(); ?>"/>
<label class="mdl-textfield__label"
for="ldap_bindpass"><?php echo __('Clave'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Base de búsqueda'); ?>
<div id="help-ldap_base"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_base">
<p>
<?php echo __('Base en la que realizar la búsqueda de usuarios de LDAP.'); ?>
</p>
<ul>
<li>cn=syspass,ou=Users,dc=syspass,o=org</li>
<li>syspass</li>
</ul>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="ldap_binduser" name="ldap_binduser" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $configData->getLdapBindUser(); ?>"/>
<label class="mdl-textfield__label"
for="ldap_binduser"><?php echo __('Usuario'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Clave de conexión'); ?>
<div id="help-ldap_bindpass"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_bindpass">
<p>
<?php echo __('Clave del usuario de conexión a LDAP.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="ldap_bindpass" name="ldap_bindpass" type="password"
class="mdl-textfield__input passwordfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $configData->getLdapBindPass(); ?>"/>
<label class="mdl-textfield__label"
for="ldap_bindpass"><?php echo __('Clave'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Base de búsqueda'); ?>
<div id="help-ldap_base"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_base">
<p>
<?php echo __('Base en la que realizar la búsqueda de usuarios de LDAP.'); ?>
</p>
<p>
<?php echo __('Ejemplos:'); ?>
</p>
<p>
<?php echo __('Ejemplos:'); ?>
</p>
<ul>
<li>cn=Users,dc=example,dc=org</li>
<li>ou=AdminUsers,dc=example,o=org</li>
</ul>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="ldap_base" name="ldap_base" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $ConfigData->getLdapBase(); ?>"/>
<label class="mdl-textfield__label"
for="ldap_base"><?php echo __('Base de búsqueda'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Grupo'); ?>
<div id="help-ldap_group"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_group">
<p>
<?php echo __('Grupo de LDAP al que debe de pertenecer el usuario para permitir el acceso.'); ?>
</p>
<ul>
<li>cn=Users,dc=example,dc=org</li>
<li>ou=AdminUsers,dc=example,o=org</li>
</ul>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="ldap_base" name="ldap_base" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $configData->getLdapBase(); ?>"/>
<label class="mdl-textfield__label"
for="ldap_base"><?php echo __('Base de búsqueda'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Grupo'); ?>
<div id="help-ldap_group"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_group">
<p>
<?php echo __('Grupo de LDAP al que debe de pertenecer el usuario para permitir el acceso.'); ?>
</p>
<p>
<?php echo __('Este grupo debe de estar ubicado en la base de búsquedas de LDAP.'); ?>
</p>
<p>
<?php echo __('Este grupo debe de estar ubicado en la base de búsquedas de LDAP.'); ?>
</p>
<p>
<?php echo __('Ejemplos:'); ?>
</p>
<p>
<?php echo __('Ejemplos:'); ?>
</p>
<ul>
<li>cn=GRP_SPUSERS,cn=Users,dc=example,dc=org</li>
<li>GRP_SPUSERS</li>
</ul>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="ldap_group" name="ldap_group" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $ConfigData->getLdapGroup(); ?>"/>
<label class="mdl-textfield__label" for="ldap_group"><?php echo __('Grupo'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Grupo por Defecto'); ?>
<div id="help-ldap_defaultgroup"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_defaultgroup">
<p>
<?php echo __('Define el grupo de usuarios por defecto para los nuevos usuarios de LDAP.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Grupo por Defecto'); ?></div>
<ul>
<li>cn=GRP_SPUSERS,cn=Users,dc=example,dc=org</li>
<li>GRP_SPUSERS</li>
</ul>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="ldap_group" name="ldap_group" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $configData->getLdapGroup(); ?>"/>
<label class="mdl-textfield__label" for="ldap_group"><?php echo __('Grupo'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Grupo por Defecto'); ?>
<div id="help-ldap_defaultgroup"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_defaultgroup">
<p>
<?php echo __('Define el grupo de usuarios por defecto para los nuevos usuarios de LDAP.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Grupo por Defecto'); ?></div>
<select id="ldap_defaultgroup" name="ldap_defaultgroup"
class="select-box sel-chosen-usergroup" required>
<option value=""><?php echo __('Seleccionar Grupo'); ?></option>
<?php foreach ($groups as $group): ?>
<option
value="<?php echo $group->id; ?>" <?php echo $group->id === $ConfigData->getLdapDefaultGroup() ? 'selected' : ''; ?>><?php echo $group->name; ?></option>
<?php endforeach; ?>
</select>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Perfil por Defecto'); ?>
<div id="help-ldap_defaultprofile"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_defaultprofile">
<p>
<?php echo __('Define el perfil de usuarios por defecto para los nuevos usuarios de LDAP.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Perfil por Defecto'); ?></div>
<select id="ldap_defaultgroup" name="ldap_defaultgroup"
class="select-box sel-chosen-usergroup" required>
<option value=""><?php echo __('Seleccionar Grupo'); ?></option>
<?php /** @var \SP\Mvc\View\Components\SelectItem[] $userGroups */
foreach ($userGroups as $userGroup): ?>
<option
value="<?php echo $userGroup->getId(); ?>" <?php echo $userGroup->getId() === $configData->getLdapDefaultGroup() ? 'selected' : ''; ?>><?php echo $userGroup->getName(); ?></option>
<?php endforeach; ?>
</select>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Perfil por Defecto'); ?>
<div id="help-ldap_defaultprofile"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_defaultprofile">
<p>
<?php echo __('Define el perfil de usuarios por defecto para los nuevos usuarios de LDAP.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Perfil por Defecto'); ?></div>
<select id="ldap_defaultprofile" name="ldap_defaultprofile"
class="select-box sel-chosen-profile" required>
<option value=""><?php echo __('Seleccionar Usuario'); ?></option>
<?php foreach ($profiles as $profile): ?>
<option
value="<?php echo $profile->id; ?>" <?php echo ($profile->id === $ConfigData->getLdapDefaultProfile()) ? 'selected' : ''; ?>><?php echo $profile->name; ?></option>
<?php endforeach; ?>
</select>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Atributo Login'); ?>
<div id="help-ldap_loginattribute"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_loginattribute">
<p>
<?php echo __('Define el atributo a utilizar para el login del usuario en la importación.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Atributo Login'); ?></div>
<select id="ldap_defaultprofile" name="ldap_defaultprofile"
class="select-box sel-chosen-profile" required>
<option value=""><?php echo __('Seleccionar Usuario'); ?></option>
<?php /** @var \SP\Mvc\View\Components\SelectItem[] $userProfiles */
foreach ($userProfiles as $userProfile): ?>
<option
value="<?php echo $userProfile->getId(); ?>" <?php echo ($userProfile->getId() === $configData->getLdapDefaultProfile()) ? 'selected' : ''; ?>><?php echo $userProfile->getName(); ?></option>
<?php endforeach; ?>
</select>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Atributo Login'); ?>
<div id="help-ldap_loginattribute"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_loginattribute">
<p>
<?php echo __('Define el atributo a utilizar para el login del usuario en la importación.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Atributo Login'); ?></div>
<select id="ldap_loginattribute" name="ldap_loginattribute"
class="select-box" required>
<option value="samaccountname" selected>sAMAccountName</option>
<option value="userprincipalname">userPrincipalName</option>
<option value="uid">uid</option>
<option value="login">login</option>
</select>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Atributo Nombre'); ?>
<div id="help-ldap_nameattribute"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_nameattribute">
<p>
<?php echo __('Define el atributo a utilizar para el nombre del usuario en la importación.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Atributo Nombre'); ?></div>
<select id="ldap_loginattribute" name="ldap_loginattribute"
class="select-box" required>
<option value="samaccountname" selected>sAMAccountName</option>
<option value="userprincipalname">userPrincipalName</option>
<option value="uid">uid</option>
<option value="login">login</option>
</select>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Atributo Nombre'); ?>
<div id="help-ldap_nameattribute"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-ldap_nameattribute">
<p>
<?php echo __('Define el atributo a utilizar para el nombre del usuario en la importación.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Atributo Nombre'); ?></div>
<select id="ldap_nameattribute" name="ldap_nameattribute"
class="select-box" required>
<option value="displayname" selected>displayName</option>
<option value="fullname">fullName</option>
<option value="cn">cn</option>
<option value="name">name</option>
</select>
</td>
</tr>
<tr id="ldap-results" style="display: none;">
<td class="descField">
<?php echo __('Resultados'); ?>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Resultados'); ?></div>
<div class="list-wrap"></div>
</td>
</tr>
<?php else: ?>
<tr>
<td class="option-disabled">
<?php echo __('Módulo no disponible'); ?>
</td>
</tr>
<?php endif; ?>
</table>
<select id="ldap_nameattribute" name="ldap_nameattribute"
class="select-box" required>
<option value="displayname" selected>displayName</option>
<option value="fullname">fullName</option>
<option value="cn">cn</option>
<option value="name">name</option>
</select>
</td>
</tr>
<tr id="ldap-results" style="display: none;">
<td class="descField">
<?php echo __('Resultados'); ?>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Resultados'); ?></div>
<div class="list-wrap"></div>
</td>
</tr>
<?php else: ?>
<tr>
<td class="option-disabled">
<?php echo __('Módulo no disponible'); ?>
</td>
</tr>
<?php endif; ?>
</table>
<input type="hidden" name="type" value="ldap"/>
<input type="hidden" name="activeTab" value="<?php echo $ldap_tabIndex; ?>"/>
<input type="hidden" name="actionId" value="<?php echo $ldap_actionId; ?>"/>
<input type="hidden" name="sk" value="">
<input type="hidden" name="isAjax" value="1"/>
</form>
<input type="hidden" name="type" value="ldap"/>
<input type="hidden" name="sk" value="">
<input type="hidden" name="isAjax" value="1"/>
</form>
<div class="tab-actions">
<ul>
<li>
<button id="btnBack" type="button"
class="btn-back mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
title="<?php echo __('Atrás'); ?>">
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
</button>
</li>
<li>
<button type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored"
data-onclick="appMgmt/ldapSync"
data-action-id="<?php echo \SP\Core\Acl\ActionsInterface::LDAP_SYNC; ?>"
title="<?php echo __('Importar usuarios de LDAP'); ?>">
<i class="material-icons">get_app</i>
</button>
</li>
<li>
<button type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconCheck()->getClassButton(); ?>"
data-onclick="checks/ldap"
data-src="#frmLdap"
title="<?php echo $icons->getIconCheck()->getTitle(); ?>">
<i class="material-icons"><?php echo $icons->getIconCheck()->getIcon(); ?></i>
</button>
</li>
<li>
<button form="frmLdap"
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
title="<?php echo $icons->getIconSave()->getTitle(); ?>">
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
</button>
</li>
</ul>
</div>
</div>
</div> <!-- End Tab - LDAP -->
<div class="tab-actions">
<ul>
<li>
<button id="btnBack" type="button"
class="btn-back mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
title="<?php echo __('Atrás'); ?>">
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
</button>
</li>
<li>
<button type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored"
data-onclick="appMgmt/ldapSync"
data-action-id="<?php echo \SP\Core\Acl\ActionsInterface::LDAP_SYNC; ?>"
title="<?php echo __('Importar usuarios de LDAP'); ?>">
<i class="material-icons">get_app</i>
</button>
</li>
<li>
<button type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconCheck()->getClassButton(); ?>"
data-onclick="checks/ldap"
data-src="#frmLdap"
title="<?php echo $icons->getIconCheck()->getTitle(); ?>">
<i class="material-icons"><?php echo $icons->getIconCheck()->getIcon(); ?></i>
</button>
</li>
<li>
<button form="frmLdap"
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
title="<?php echo $icons->getIconSave()->getTitle(); ?>">
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
</button>
</li>
</ul>
</div>

View File

@@ -1,164 +1,157 @@
<?php /** @var $icons \Theme\Icons */ ?>
<!-- Start Tab - Mail -->
<div id="tabs-<?php echo $mail_tabIndex; ?>" class="mdl-tabs__panel">
<div class="tab-data">
<div id="title" class="midroundup titleNormal">
<?php echo __('Correo'); ?>
</div>
<div id="title" class="midroundup titleNormal">
<?php echo __('Correo'); ?>
</div>
<form method="post" name="frmMail" id="frmMail" class="form-action" data-onsubmit="config/save" data-type="mail"
data-hash="">
<table id="tblMail" class="data tblConfig round">
<tr>
<td class="descField"></td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="mail_enabled">
<input type="checkbox" id="mail_enabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="mail_enabled"
<?php echo $ConfigData->isMailEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar notificaciones de correo'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Servidor'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="mail_server" name="mail_server" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $ConfigData->getMailServer(); ?>"/>
<label class="mdl-textfield__label" for="mail_server"><?php echo __('Servidor'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Puerto'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="mail_port" name="mail_port" type="number" pattern="[0-9]{1,5}"
class="mdl-textfield__input mdl-color-text--indigo-400" maxlength="5"
value="<?php echo $ConfigData->getMailPort(); ?>"/>
<label class="mdl-textfield__label" for="mail_port"><?php echo __('Puerto'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField"></td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="mail_authenabled">
<input type="checkbox" id="mail_authenabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="mail_authenabled" <?php echo $ConfigData->isMailAuthenabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar Autentificación'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Usuario'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="mail_user" name="mail_user" type="email"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="50" value="<?php echo $ConfigData->getMailUser(); ?>"/>
<label class="mdl-textfield__label" for="mail_user"><?php echo __('Usuario'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Clave'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="mail_pass" name="mail_pass" type="password"
class="mdl-textfield__input mdl-color-text--indigo-400 passwordfield__input"
maxlength="128" value="<?php echo $ConfigData->getMailPass(); ?>"/>
<label class="mdl-textfield__label" for="mail_pass"><?php echo __('Clave'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Seguridad'); ?>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Seguridad'); ?></div>
<form method="post" name="frmMail" id="frmMail" class="form-action" data-onsubmit="config/save" data-type="mail"
data-hash="">
<table id="tblMail" class="data tblConfig round">
<tr>
<td class="descField"></td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="mail_enabled">
<input type="checkbox" id="mail_enabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="mail_enabled"
<?php echo $configData->isMailEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar notificaciones de correo'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Servidor'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="mail_server" name="mail_server" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $configData->getMailServer(); ?>"/>
<label class="mdl-textfield__label" for="mail_server"><?php echo __('Servidor'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Puerto'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="mail_port" name="mail_port" type="number" pattern="[0-9]{1,5}"
class="mdl-textfield__input mdl-color-text--indigo-400" maxlength="5"
value="<?php echo $configData->getMailPort(); ?>"/>
<label class="mdl-textfield__label" for="mail_port"><?php echo __('Puerto'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField"></td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="mail_authenabled">
<input type="checkbox" id="mail_authenabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="mail_authenabled" <?php echo $configData->isMailAuthenabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar Autentificación'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Usuario'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="mail_user" name="mail_user" type="email"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="50" value="<?php echo $configData->getMailUser(); ?>"/>
<label class="mdl-textfield__label" for="mail_user"><?php echo __('Usuario'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Clave'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="mail_pass" name="mail_pass" type="password"
class="mdl-textfield__input mdl-color-text--indigo-400 passwordfield__input"
maxlength="128" value="<?php echo $configData->getMailPass(); ?>"/>
<label class="mdl-textfield__label" for="mail_pass"><?php echo __('Clave'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Seguridad'); ?>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Seguridad'); ?></div>
<select name="mail_security" id="sel-mailsecurity" size="1" class="select-box sel-chosen-ns">
<option value=""><?php echo __('Deshabilitada'); ?></option>
<?php foreach ($mailSecurity as $security): ?>
<option
value="<?php echo $security; ?>" <?php echo ($ConfigData->getMailSecurity() == $security) ? 'selected' : ''; ?>><?php echo $security; ?></option>
<?php endforeach; ?>
</select>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Dirección de correo de envío'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="mail_from" name="mail_from" type="email"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $ConfigData->getMailFrom(); ?>"/>
<label class="mdl-textfield__label"
for="mail_from"><?php echo __('Dirección de correo de envío'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-mail_requestsenabled"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-mail_requestsenabled">
<p>
<?php echo __('Habilita que los usuarios puedan solicitar modificaciones o acceso a las cuentas sin permisos.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="mail_requestsenabled">
<input type="checkbox" id="mail_requestsenabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="mail_requestsenabled" <?php echo $ConfigData->isMailRequestsEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar peticiones por correo'); ?></span>
</label>
</td>
</tr>
</table>
<select name="mail_security" id="sel-mailsecurity" size="1" class="select-box sel-chosen-ns">
<option value=""><?php echo __('Deshabilitada'); ?></option>
<?php foreach ($mailSecurity as $security): ?>
<option
value="<?php echo $security; ?>" <?php echo ($configData->getMailSecurity() === $security) ? 'selected' : ''; ?>><?php echo $security; ?></option>
<?php endforeach; ?>
</select>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Dirección de correo de envío'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="mail_from" name="mail_from" type="email"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $configData->getMailFrom(); ?>"/>
<label class="mdl-textfield__label"
for="mail_from"><?php echo __('Dirección de correo de envío'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<div id="help-mail_requestsenabled"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-mail_requestsenabled">
<p>
<?php echo __('Habilita que los usuarios puedan solicitar modificaciones o acceso a las cuentas sin permisos.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="mail_requestsenabled">
<input type="checkbox" id="mail_requestsenabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="mail_requestsenabled" <?php echo $configData->isMailRequestsEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar peticiones por correo'); ?></span>
</label>
</td>
</tr>
</table>
<input type="hidden" name="activeTab" value="<?php echo $mail_tabIndex; ?>"/>
<input type="hidden" name="actionId" value="<?php echo $mail_actionId; ?>"/>
<input type="hidden" name="sk" value="">
<input type="hidden" name="isAjax" value="1"/>
</form>
<input type="hidden" name="sk" value="">
<input type="hidden" name="isAjax" value="1"/>
</form>
<div class="tab-actions">
<ul>
<li>
<button id="btnBack" type="button"
class="btn-back mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
title="<?php echo __('Atrás'); ?>">
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
</button>
</li>
<li>
<button form="frmMail"
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
title="<?php echo $icons->getIconSave()->getTitle(); ?>">
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
</button>
</li>
</ul>
</div>
</div>
</div> <!-- End Tab - Mail -->
<div class="tab-actions">
<ul>
<li>
<button id="btnBack" type="button"
class="btn-back mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
title="<?php echo __('Atrás'); ?>">
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
</button>
</li>
<li>
<button form="frmMail"
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
title="<?php echo $icons->getIconSave()->getTitle(); ?>">
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
</button>
</li>
</ul>
</div>

View File

@@ -1,299 +1,293 @@
<?php /** @var $icons \Theme\Icons */ ?>
<!-- Start Tab - Wiki -->
<div id="tabs-<?php echo $wiki_tabIndex; ?>" class="mdl-tabs__panel">
<div class="tab-data">
<form method="post" name="frmWiki" id="frmWiki" class="form-action" data-onsubmit="config/save" data-type="wiki"
data-hash="">
<form method="post" name="frmWiki" id="frmWiki" class="form-action" data-onsubmit="config/save" data-type="wiki"
data-hash="">
<div id="title" class="midroundup titleNormal">
<?php echo __('Wiki'); ?>
</div>
<table id="tblWiki" class="data tblConfig round">
<tr>
<td class="descField">
<div id="help-wiki_enabled"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-wiki_enabled">
<p>
<?php echo __('Habilita la opción de añadir un enlace a Wiki externa para los resultados de la búsqueda.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="wiki_enabled">
<input type="checkbox" id="wiki_enabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="wiki_enabled"
<?php echo $ConfigData->isWikiEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar enlaces Wiki'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('URL de búsqueda Wiki'); ?>
<div id="help-wiki_searchurl"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-wiki_searchurl">
<p>
<?php echo __('URL que utiliza la wiki para realizar una búsqueda de una página.'); ?>
</p>
<p>
<?php echo __('Como parámetro se utiliza el nombre del cliente.'); ?>
</p>
<p>
<?php __('Ejemplo:'); ?>
</p>
<p>
https://wiki.example.org/search.php?phrase=
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="wiki_searchurl" name="wiki_searchurl" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="255" value="<?php echo $ConfigData->getWikiSearchurl(); ?>">
<label class="mdl-textfield__label"
for="wiki_searchurl"><?php echo __('URL de búsqueda Wiki'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('URL de página en Wiki'); ?>
<div id="help-wiki_pageurl"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-wiki_pageurl">
<p>
<?php echo __('URL que utiliza la wiki para acceder a los detalles de una página.'); ?>
</p>
<p>
<?php echo __('El nombre de la cuenta se utiliza como parámetro de la variable de búsqueda de la Wiki.'); ?>
</p>
<p>
<?php echo __('Ejemplo:'); ?>
</p>
<p>
https://wiki.example.org/show.php?name=
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="wiki_pageurl" name="wiki_pageurl" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="255" value="<?php echo $ConfigData->getWikiPageurl(); ?>">
<label class="mdl-textfield__label"
for="wiki_pageurl"><?php echo __('URL de página en Wiki'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Prefijo para nombre de cuenta'); ?>
<div id="help-wikifilter"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-wikifilter">
<p>
<?php echo __('Prefijo para determinar qué cuentas tienen un enlace a una página de la Wiki.'); ?>
</p>
<p>
<?php echo __('Ejemplos:') . ' serv- | srv- | vm-'; ?>
</p>
</div>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Prefijo para nombre de cuenta'); ?></div>
<input type="text" name="wiki_filter" id="wikifilter" value="<?php echo implode(',', $ConfigData->getWikiFilter()); ?>"/>
</td>
</tr>
</table>
<div id="title" class="midroundup titleNormal">
<?php echo __('DokuWiki API'); ?>
</div>
<table id="tblDokuWiki" class="data tblConfig round">
<tr>
<td class="descField">
<div id="help-dokuwiki_enabled"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-dokuwiki_enabled">
<p>
<?php echo __('Habilita la conexión a la API XML-RPC de DokuWiki para los enlaces Wiki.'); ?>
</p>
<p>
<?php echo __('Para que esta característica funcione, es necesario habilitar los enlaces Wiki para el filtrado de cuentas.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="dokuwiki_enabled">
<input type="checkbox" id="dokuwiki_enabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="dokuwiki_enabled"
<?php echo $ConfigData->isDokuwikiEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar API de DokuWiki'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('URL API'); ?>
<div id="help-dokuwiki_url"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-dokuwiki_url">
<p>
<?php echo __('URL de la API de DokuWiki.'); ?>
</p>
<p>
<?php echo __('Ejemplo:'); ?>
<ul>
<li>http://wiki.syspass.org/lib/exe/xmlrpc.php</li>
</ul>
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="dokuwiki_url" name="dokuwiki_url" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="255" value="<?php echo $ConfigData->getDokuwikiUrl(); ?>"/>
<label class="mdl-textfield__label" for="dokuwiki_url"><?php echo __('URL API'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('URL Base'); ?>
<div id="help-dokuwiki_urlbase"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-dokuwiki_urlbase">
<p>
<?php echo __('URL base de DokuWiki.'); ?>
</p>
<p>
<?php echo __('Ejemplo:'); ?>
<ul>
<li>http://wiki.syspass.org/dokuwiki</li>
</ul>
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="dokuwiki_urlbase" name="dokuwiki_urlbase" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="255" value="<?php echo $ConfigData->getDokuwikiUrlBase(); ?>"/>
<label class="mdl-textfield__label"
for="dokuwiki_urlbase"><?php echo __('URL Base'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Usuario'); ?>
<div id="help-dokuwiki_user"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-dokuwiki_user">
<p>
<?php echo __('Usuario para conectar a la API de DokuWiki.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="dokuwiki_user" name="dokuwiki_user" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $ConfigData->getDokuwikiUser(); ?>"/>
<label class="mdl-textfield__label" for="dokuwiki_user"><?php echo __('Usuario'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Clave'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="dokuwiki_pass" name="dokuwiki_pass" type="password"
class="mdl-textfield__input passwordfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $ConfigData->getDokuwikiPass(); ?>"/>
<label class="mdl-textfield__label" for="dokuwiki_pass"><?php echo __('Clave'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Namespace'); ?>
<div id="help-dokuwiki_namespace"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-dokuwiki_namespace">
<p>
<?php echo __('Namespace utilizado para buscar las páginas.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="dokuwiki_namespace" name="dokuwiki_namespace" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128"
value="<?php echo $ConfigData->getDokuwikiNamespace(); ?>"/>
<label class="mdl-textfield__label"
for="dokuwiki_namespace"><?php echo __('Namespace'); ?></label>
</div>
</td>
</tr>
</table>
<input type="hidden" name="type" value="dokuwiki"/>
<input type="hidden" name="activeTab" value="<?php echo $wiki_tabIndex; ?>"/>
<input type="hidden" name="actionId" value="<?php echo $wiki_actionId; ?>"/>
<input type="hidden" name="sk" value="">
<input type="hidden" name="isAjax" value="1"/>
</form>
<div class="tab-actions">
<ul>
<li>
<button id="btnBack" type="button"
class="btn-back mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
title="<?php echo __('Atrás'); ?>">
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
</button>
</li>
<li>
<button type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconCheck()->getClassButton(); ?>"
data-onclick="checks/wiki"
data-src="#frmWiki"
title="<?php echo $icons->getIconCheck()->getTitle(); ?>">
<i class="material-icons"><?php echo $icons->getIconCheck()->getIcon(); ?></i>
</button>
</li>
<li>
<button form="frmWiki"
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
title="<?php echo $icons->getIconSave()->getTitle(); ?>">
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
</button>
</li>
</ul>
</div>
<div id="title" class="midroundup titleNormal">
<?php echo __('Wiki'); ?>
</div>
</div> <!-- End Tab - Wiki -->
<table id="tblWiki" class="data tblConfig round">
<tr>
<td class="descField">
<div id="help-wiki_enabled"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-wiki_enabled">
<p>
<?php echo __('Habilita la opción de añadir un enlace a Wiki externa para los resultados de la búsqueda.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="wiki_enabled">
<input type="checkbox" id="wiki_enabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="wiki_enabled"
<?php echo $configData->isWikiEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar enlaces Wiki'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('URL de búsqueda Wiki'); ?>
<div id="help-wiki_searchurl"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-wiki_searchurl">
<p>
<?php echo __('URL que utiliza la wiki para realizar una búsqueda de una página.'); ?>
</p>
<p>
<?php echo __('Como parámetro se utiliza el nombre del cliente.'); ?>
</p>
<p>
<?php __('Ejemplo:'); ?>
</p>
<p>
https://wiki.example.org/search.php?phrase=
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="wiki_searchurl" name="wiki_searchurl" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="255" value="<?php echo $configData->getWikiSearchurl(); ?>">
<label class="mdl-textfield__label"
for="wiki_searchurl"><?php echo __('URL de búsqueda Wiki'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('URL de página en Wiki'); ?>
<div id="help-wiki_pageurl"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-wiki_pageurl">
<p>
<?php echo __('URL que utiliza la wiki para acceder a los detalles de una página.'); ?>
</p>
<p>
<?php echo __('El nombre de la cuenta se utiliza como parámetro de la variable de búsqueda de la Wiki.'); ?>
</p>
<p>
<?php echo __('Ejemplo:'); ?>
</p>
<p>
https://wiki.example.org/show.php?name=
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="wiki_pageurl" name="wiki_pageurl" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="255" value="<?php echo $configData->getWikiPageurl(); ?>">
<label class="mdl-textfield__label"
for="wiki_pageurl"><?php echo __('URL de página en Wiki'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Prefijo para nombre de cuenta'); ?>
<div id="help-wikifilter"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-wikifilter">
<p>
<?php echo __('Prefijo para determinar qué cuentas tienen un enlace a una página de la Wiki.'); ?>
</p>
<p>
<?php echo __('Ejemplos:') . ' serv- | srv- | vm-'; ?>
</p>
</div>
</td>
<td class="valField">
<div class="lowres-title"><?php echo __('Prefijo para nombre de cuenta'); ?></div>
<input type="text" name="wiki_filter" id="wikifilter"
value="<?php echo implode(',', $configData->getWikiFilter()); ?>"/>
</td>
</tr>
</table>
<div id="title" class="midroundup titleNormal">
<?php echo __('DokuWiki API'); ?>
</div>
<table id="tblDokuWiki" class="data tblConfig round">
<tr>
<td class="descField">
<div id="help-dokuwiki_enabled"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-dokuwiki_enabled">
<p>
<?php echo __('Habilita la conexión a la API XML-RPC de DokuWiki para los enlaces Wiki.'); ?>
</p>
<p>
<?php echo __('Para que esta característica funcione, es necesario habilitar los enlaces Wiki para el filtrado de cuentas.'); ?>
</p>
</div>
</td>
<td class="valField">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="dokuwiki_enabled">
<input type="checkbox" id="dokuwiki_enabled"
class="mdl-switch__input mdl-color-text--indigo-400"
name="dokuwiki_enabled"
<?php echo $configData->isDokuwikiEnabled() ? 'checked' : ''; ?>/>
<span class="mdl-switch__label"><?php echo __('Habilitar API de DokuWiki'); ?></span>
</label>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('URL API'); ?>
<div id="help-dokuwiki_url"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-dokuwiki_url">
<p>
<?php echo __('URL de la API de DokuWiki.'); ?>
</p>
<p>
<?php echo __('Ejemplo:'); ?>
<ul>
<li>http://wiki.syspass.org/lib/exe/xmlrpc.php</li>
</ul>
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="dokuwiki_url" name="dokuwiki_url" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="255" value="<?php echo $configData->getDokuwikiUrl(); ?>"/>
<label class="mdl-textfield__label" for="dokuwiki_url"><?php echo __('URL API'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('URL Base'); ?>
<div id="help-dokuwiki_urlbase"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-dokuwiki_urlbase">
<p>
<?php echo __('URL base de DokuWiki.'); ?>
</p>
<p>
<?php echo __('Ejemplo:'); ?>
<ul>
<li>http://wiki.syspass.org/dokuwiki</li>
</ul>
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="dokuwiki_urlbase" name="dokuwiki_urlbase" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="255" value="<?php echo $configData->getDokuwikiUrlBase(); ?>"/>
<label class="mdl-textfield__label"
for="dokuwiki_urlbase"><?php echo __('URL Base'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Usuario'); ?>
<div id="help-dokuwiki_user"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-dokuwiki_user">
<p>
<?php echo __('Usuario para conectar a la API de DokuWiki.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="dokuwiki_user" name="dokuwiki_user" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $configData->getDokuwikiUser(); ?>"/>
<label class="mdl-textfield__label" for="dokuwiki_user"><?php echo __('Usuario'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Clave'); ?>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="dokuwiki_pass" name="dokuwiki_pass" type="password"
class="mdl-textfield__input passwordfield__input mdl-color-text--indigo-400"
maxlength="128" value="<?php echo $configData->getDokuwikiPass(); ?>"/>
<label class="mdl-textfield__label" for="dokuwiki_pass"><?php echo __('Clave'); ?></label>
</div>
</td>
</tr>
<tr>
<td class="descField">
<?php echo __('Namespace'); ?>
<div id="help-dokuwiki_namespace"
class="icon material-icons <?php echo $icons->getIconHelp()->getClass(); ?>"><?php echo $icons->getIconHelp()->getIcon(); ?></div>
<div class="mdl-tooltip mdl-tooltip--large" for="help-dokuwiki_namespace">
<p>
<?php echo __('Namespace utilizado para buscar las páginas.'); ?>
</p>
</div>
</td>
<td class="valField">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="dokuwiki_namespace" name="dokuwiki_namespace" type="text"
class="mdl-textfield__input mdl-color-text--indigo-400"
maxlength="128"
value="<?php echo $configData->getDokuwikiNamespace(); ?>"/>
<label class="mdl-textfield__label"
for="dokuwiki_namespace"><?php echo __('Namespace'); ?></label>
</div>
</td>
</tr>
</table>
<input type="hidden" name="type" value="dokuwiki"/>
<input type="hidden" name="sk" value="">
<input type="hidden" name="isAjax" value="1"/>
</form>
<div class="tab-actions">
<ul>
<li>
<button id="btnBack" type="button"
class="btn-back mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
title="<?php echo __('Atrás'); ?>">
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
</button>
</li>
<li>
<button type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconCheck()->getClassButton(); ?>"
data-onclick="checks/wiki"
data-src="#frmWiki"
title="<?php echo $icons->getIconCheck()->getTitle(); ?>">
<i class="material-icons"><?php echo $icons->getIconCheck()->getIcon(); ?></i>
</button>
</li>
<li>
<button form="frmWiki"
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
title="<?php echo $icons->getIconSave()->getTitle(); ?>">
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
</button>
</li>
</ul>
</div>

View File

@@ -109,6 +109,7 @@ class AccountSearchItem
*
* @param AccountSearchVData $accountSearchVData
* @param AccountAcl $accountAcl
* @throws \SP\Core\Dic\ContainerException
*/
public function __construct(AccountSearchVData $accountSearchVData, AccountAcl $accountAcl)
{

View File

@@ -0,0 +1,47 @@
<?php
/**
* sysPass
*
* @author nuxsmin
* @link http://syspass.org
* @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org
*
* This file is part of sysPass.
*
* sysPass is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* sysPass is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with sysPass. If not, see <http://www.gnu.org/licenses/>.
*/
namespace SP\Core\Acl;
use SP\Core\Exceptions\SPException;
/**
* Class AccountPermissionException
*
* @package SP\Core\Acl
*/
class AccountPermissionException extends SPException
{
/**
* SPException constructor.
*
* @param string $type
* @param int $code
* @param \Exception|null $previous
*/
public function __construct($type, $code = 0, \Exception $previous = null)
{
parent::__construct($type, __u('No tiene permisos para acceder a esta cuenta'), __u('Consulte con el administrador'), $code, $previous);
}
}

View File

@@ -63,6 +63,8 @@ class TemporaryMasterPass
/**
* MasterPass constructor.
*
* @throws \SP\Core\Dic\ContainerException
*/
public function __construct()
{
@@ -134,6 +136,7 @@ class TemporaryMasterPass
* @param $key string con la clave utilizada para encriptar
* @return string con la clave maestra desencriptada
* @throws \Defuse\Crypto\Exception\CryptoException
* @throws \SP\Services\Config\ParameterNotFoundException
*/
public function getUsingKey($key)
{

View File

@@ -144,6 +144,7 @@ abstract class DataGridActionBase implements DataGridActionInterface
* @param string $class
* @param string $method
* @return $this
* @throws \ReflectionException
*/
public function setReflectionFilter($class, $method)
{

View File

@@ -121,6 +121,8 @@ abstract class DataGridBase implements DataGridInterface
/**
* DataGridBase constructor.
*
* @throws \SP\Core\Dic\ContainerException
*/
public function __construct()
{

View File

@@ -42,10 +42,13 @@ class DataGridTab extends DataGridBase
/**
* @param $title string
* @return DataGridTab
*/
public function setTitle($title)
{
$this->_title = $title;
return $this;
}
/**

View File

@@ -26,9 +26,9 @@ namespace SP\Log;
use SP\Config\Config;
use SP\Config\ConfigData;
use SP\Core\Crypt\Session;
use SP\Core\Language;
use SP\Core\Messages\LogMessage;
use SP\Core\Session\Session;
use SP\Core\Traits\InjectableTrait;
/**
@@ -77,6 +77,7 @@ abstract class ActionLog extends LogLevel
*
* @param LogMessage $LogMessage
* @param string $level El nivel del mensaje
* @throws \SP\Core\Dic\ContainerException
*/
public function __construct(LogMessage $LogMessage = null, $level = Log::INFO)
{
@@ -89,6 +90,7 @@ abstract class ActionLog extends LogLevel
/**
* @param Config $config
* @param Language $language
* @param Session $session
*/
public function inject(Config $config, Language $language, Session $session)
{

View File

@@ -0,0 +1,89 @@
<?php
/**
* sysPass
*
* @author nuxsmin
* @link http://syspass.org
* @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org
*
* This file is part of sysPass.
*
* sysPass is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* sysPass is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with sysPass. If not, see <http://www.gnu.org/licenses/>.
*/
namespace SP\Mvc\View\Components;
use SP\Core\Exceptions\FileNotFoundException;
use SP\Mvc\View\Template;
/**
* Class DataTab
*
* @package SP\Mvc\View\Components
*/
class DataTab
{
/**
* @var string
*/
protected $title;
/**
* @var Template
*/
protected $template;
/**
* DataTab constructor.
*
* @param string $title
* @param Template $template
*/
public function __construct($title, Template $template)
{
$this->title = $title;
$this->template = $template;
}
/**
* @return string
*/
public function getTitle()
{
return $this->title;
}
/**
* @param string $title
* @return DataTab
*/
public function setTitle($title)
{
$this->title = $title;
return $this;
}
/**
* @return string
*/
public function render()
{
try {
return $this->template->render();
} catch (FileNotFoundException $e) {
return $e->getMessage();
}
}
}

View File

@@ -50,6 +50,7 @@ class CategoryRepository extends Repository implements RepositoryItemInterface
* @throws SPException
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
* @throws \SP\Core\Dic\ContainerException
*/
public function create($itemData)
{
@@ -79,6 +80,7 @@ class CategoryRepository extends Repository implements RepositoryItemInterface
* @return bool
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
* @throws \SP\Core\Dic\ContainerException
*/
public function checkDuplicatedOnAdd($itemData)
{
@@ -103,6 +105,7 @@ class CategoryRepository extends Repository implements RepositoryItemInterface
* @throws SPException
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
* @throws \SP\Core\Dic\ContainerException
*/
public function update($itemData)
{
@@ -137,6 +140,7 @@ class CategoryRepository extends Repository implements RepositoryItemInterface
* @return bool
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
* @throws \SP\Core\Dic\ContainerException
*/
public function checkDuplicatedOnUpdate($itemData)
{
@@ -215,6 +219,7 @@ class CategoryRepository extends Repository implements RepositoryItemInterface
* @param array $ids
* @return void
* @throws SPException
* @throws \SP\Core\Dic\ContainerException
*/
public function deleteByIdBatch(array $ids)
{
@@ -230,6 +235,7 @@ class CategoryRepository extends Repository implements RepositoryItemInterface
* @return int
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
* @throws \SP\Core\Dic\ContainerException
*/
public function delete($id)
{

View File

@@ -171,7 +171,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
*/
public function checkInUse($id)
{
throw new \RuntimeException('Unimplemented');
throw new \RuntimeException('Not implemented');
}
/**
@@ -200,18 +200,21 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
PL.useInfo,
U.name AS userName,
U.login AS userLogin,
A.name AS accountName');
A.name AS accountName,
C.name AS clientName');
$Data->setFrom('PublicLink PL
INNER JOIN User U ON PL.userId = U.id
INNER JOIN Account A ON itemId = A.id');
INNER JOIN Account A ON itemId = A.id
INNER JOIN Client C ON A.clientId = C.id');
$Data->setOrder('PL.dateExpire DESC');
if ($SearchData->getSeachString() !== '') {
$Data->setWhere('U.login LIKE ? OR A.name LIKE ?');
$Data->setWhere('U.login LIKE ? OR A.name LIKE ? OR C.name LIKE ?');
$search = '%' . $SearchData->getSeachString() . '%';
$Data->addParam($search);
$Data->addParam($search);
$Data->addParam($search);
}
$Data->setLimit('?,?');
@@ -435,6 +438,10 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
throw new SPException(SPException::SP_ERROR, __u('Error al obtener enlace'));
}
if ($Data->getQueryNumRows() === 0) {
throw new SPException(SPException::SP_ERROR, __u('El enlace no existe'));
}
return $queryRes;
}
@@ -480,6 +487,10 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface
throw new SPException(SPException::SP_ERROR, __u('Error al obtener enlace'));
}
if ($Data->getQueryNumRows() === 0) {
throw new SPException(SPException::SP_ERROR, __u('El enlace no existe'));
}
return $queryRes;
}

View File

@@ -27,6 +27,7 @@ namespace SP\Services\Account;
use SP\Core\Exceptions\SPException;
use SP\Core\Traits\InjectableTrait;
use SP\DataModel\AccountHistoryData;
use SP\DataModel\ItemSearchData;
use SP\Repositories\Account\AccountHistoryRepository;
use SP\Repositories\Account\AccountToUserGroupRepository;
use SP\Repositories\Account\AccountToUserRepository;
@@ -118,4 +119,13 @@ class AccountHistoryService
{
return $this->accountToUserGroupRepository->getUserGroupsByAccountId($id);
}
/**
* @param ItemSearchData $itemSearchData
* @return mixed
*/
public function search(ItemSearchData $itemSearchData)
{
return $this->accountHistoryRepository->search($itemSearchData);
}
}

View File

@@ -36,6 +36,7 @@ use SP\Core\Exceptions\SPException;
use SP\Core\Session\Session;
use SP\Core\Traits\InjectableTrait;
use SP\DataModel\Dto\AccountDetailsResponse;
use SP\DataModel\ItemSearchData;
use SP\Log\Log;
use SP\Repositories\Account\AccountHistoryRepository;
use SP\Repositories\Account\AccountRepository;
@@ -445,4 +446,13 @@ class AccountService implements AccountServiceInterface
{
return $this->accountRepository->getAll();
}
/**
* @param ItemSearchData $itemSearchData
* @return mixed
*/
public function search(ItemSearchData $itemSearchData)
{
return $this->accountRepository->search($itemSearchData);
}
}

View File

@@ -81,6 +81,7 @@ class CategoryService
* @throws SPException
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
* @throws \SP\Core\Dic\ContainerException
*/
public function delete($id)
{
@@ -97,6 +98,7 @@ class CategoryService
* @throws SPException
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
* @throws \SP\Core\Dic\ContainerException
*/
public function create($itemData)
{
@@ -109,6 +111,7 @@ class CategoryService
* @throws SPException
* @throws \SP\Core\Exceptions\ConstraintException
* @throws \SP\Core\Exceptions\QueryException
* @throws \SP\Core\Dic\ContainerException
*/
public function update($itemData)
{

View File

@@ -272,7 +272,7 @@ class PublicLinkService
public function addLinkView(PublicLinkData $publicLinkData)
{
/** @var array $useInfo */
$useInfo = serialize($publicLinkData->getUseInfo());
$useInfo = unserialize($publicLinkData->getUseInfo());
$useInfo[] = self::getUseInfo($publicLinkData->getHash());
$publicLinkData->setUseInfo($useInfo);

View File

@@ -137,6 +137,7 @@ class DbWrapper
* @param string $query La consulta que genera el error
* @param \Exception $e
* @param string $queryFunction
* @throws \SP\Core\Dic\ContainerException
*/
private static function logDBException($query, \Exception $e, $queryFunction)
{
@@ -166,6 +167,7 @@ class DbWrapper
* @param DatabaseInterface $db
* @return PDOStatement|false
* @throws SPException
* @throws \SP\Core\Dic\ContainerException
*/
public static function getResultsRaw(QueryData $queryData, DatabaseInterface $db = null)
{
@@ -192,6 +194,7 @@ class DbWrapper
* @return bool
* @throws ConstraintException
* @throws QueryException
* @throws \SP\Core\Dic\ContainerException
*/
public static function getQuery(QueryData $queryData, DatabaseInterface $db = null)
{