From 215b216ee609342ee4342c8686f49dd2291ae963 Mon Sep 17 00:00:00 2001 From: nuxsmin Date: Thu, 6 Aug 2015 02:36:58 +0200 Subject: [PATCH] * [ADD] New notices feature that query if there are security or warnings about sysPass (only enabled for app admin users) --- ajax/ajax_configSave.php | 2 + inc/Config.class.php | 26 +- inc/Util.class.php | 153 +++--- inc/locales/en_US/LC_MESSAGES/messages.mo | Bin 65030 -> 65438 bytes inc/locales/en_US/LC_MESSAGES/messages.po | 588 +++++++++++----------- inc/themes/classic/config.inc | 16 + inc/themes/classic/css/styles.css | 2 + inc/themes/classic/update.inc | 37 +- inc/themes/classic/userspass.inc | 2 +- inc/themes/material-blue/config.inc | 18 + inc/themes/material-blue/css/styles.css | 2 + inc/themes/material-blue/searchbox.inc | 3 +- inc/themes/material-blue/update.inc | 36 +- inc/themes/material-blue/users.inc | 2 +- inc/themes/material-blue/userspass.inc | 4 +- web/ConfigC.class.php | 1 + web/MainC.class.php | 31 +- 17 files changed, 541 insertions(+), 382 deletions(-) diff --git a/ajax/ajax_configSave.php b/ajax/ajax_configSave.php index 09ec77b6..d036d40a 100644 --- a/ajax/ajax_configSave.php +++ b/ajax/ajax_configSave.php @@ -68,6 +68,7 @@ if ($actionId === SP\Controller\ActionsInterface::ACTION_CFG_GENERAL $debugEnabled = SP\Request::analyze('debug', false, false, true); $maintenanceEnabled = SP\Request::analyze('maintenance', false, false, true); $checkUpdatesEnabled = SP\Request::analyze('updates', false, false, true); + $checkNoticesEnabled = SP\Request::analyze('notices', false, false, true); SP\Config::setValue('sitelang', $siteLang); SP\Config::setValue('sitetheme', $siteTheme); @@ -76,6 +77,7 @@ if ($actionId === SP\Controller\ActionsInterface::ACTION_CFG_GENERAL SP\Config::setValue('debug', $debugEnabled); SP\Config::setValue('maintenance', $maintenanceEnabled); SP\Config::setValue('checkupdates', $checkUpdatesEnabled); + SP\Config::setValue('checknotices', $checkNoticesEnabled); // Accounts $globalSearchEnabled = SP\Request::analyze('globalsearch', false, false, true); diff --git a/inc/Config.class.php b/inc/Config.class.php index d6821f22..08b6eee3 100644 --- a/inc/Config.class.php +++ b/inc/Config.class.php @@ -290,14 +290,19 @@ class Config */ public static function setDefaultValues() { - self::setValue('log_enabled', 1); - self::setValue('debug', 0); - self::setValue('ldap_enabled', 0); - self::setValue('mail_enabled', 0); - self::setValue('wiki_enabled', 0); - self::setValue('demo_enabled', 0); - self::setValue('files_enabled', 1); - self::setValue('checkupdates', 1); + self::setValue('debug', false); + self::setValue('log_enabled', true); + self::setValue('ldap_enabled', false); + self::setValue('mail_enabled', false); + self::setValue('wiki_enabled', false); + self::setValue('demo_enabled', false); + self::setValue('files_enabled', true); + self::setValue('proxy_enabled', false); + self::setValue('checkupdates', true); + self::setValue('checknotices', true); + self::setValue('globalsearch', false); + self::setValue('account_passtoimage', false); + self::setValue('resultsascards', false); self::setValue('files_allowed_exts', 'PDF,JPG,GIF,PNG,ODT,ODS,DOC,DOCX,XLS,XSL,VSD,TXT,CSV,BAK'); self::setValue('files_allowed_size', 1024); self::setValue('wiki_searchurl', ''); @@ -313,6 +318,11 @@ class Config self::setValue('session_timeout', '300'); self::setValue('account_link', 1); self::setValue('account_count', 12); + self::setValue('sitetheme', 'material-blue'); + self::setValue('proxy_server', ''); + self::setValue('proxy_port', ''); + self::setValue('proxy_user', ''); + self::setValue('proxy_pass', ''); } /** diff --git a/inc/Util.class.php b/inc/Util.class.php index 32295a66..b469ba95 100644 --- a/inc/Util.class.php +++ b/inc/Util.class.php @@ -134,7 +134,6 @@ class Util */ public static function checkModules() { -// $modsAvail = array_map('strtolower', get_loaded_extensions()); $modsNeed = array( 'ldap', 'mcrypt', @@ -148,7 +147,8 @@ class Util 'gettext', 'openssl', 'pcre', - 'session' + 'session', + 'gd' ); $error = array(); @@ -156,7 +156,7 @@ class Util if (!extension_loaded($module)) { $error[] = array( 'type' => SPException::SP_WARNING, - 'description' => _('Módulo no disponible') . " ($module)", + 'description' => sprintf('%s (%s)', _('Módulo no disponible'), $module), 'hint' => _('Sin este módulo la aplicación puede no funcionar correctamente.') ); } @@ -216,72 +216,86 @@ class Util } $githubUrl = 'https://api.github.com/repos/nuxsmin/sysPass/releases/latest'; - $ch = curl_init($githubUrl); - if (Config::getValue('proxy_enabled')){ - curl_setopt($ch, CURLOPT_PROXY, Config::getValue('proxy_server')); - curl_setopt($ch, CURLOPT_PROXYPORT, Config::getValue('proxy_port')); - curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); + $data = self::getDataFromUrl($githubUrl); - $proxyUser = Config::getValue('proxy_user'); + if ($data) { + $updateInfo = json_decode($data); - if ($proxyUser) { - $proxyAuth = $proxyUser . ':' . Config::getValue('proxy_pass'); - curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyAuth); - } - } + // $updateInfo[0]->tag_name + // $updateInfo[0]->name + // $updateInfo[0]->body + // $updateInfo[0]->tarball_url + // $updateInfo[0]->zipball_url + // $updateInfo[0]->published_at + // $updateInfo[0]->html_url - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_HEADER, 0); - curl_setopt($ch, CURLOPT_USERAGENT, "sysPass App Updater"); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); - curl_setopt($ch, CURLOPT_TIMEOUT, 60); + $version = $updateInfo->tag_name; + $url = $updateInfo->html_url; + $title = $updateInfo->name; + $description = $updateInfo->body; + $date = $updateInfo->published_at; - $data = curl_exec($ch); + preg_match("/v?(\d+)\.(\d+)\.(\d+)\.(\d+)(\-[a-z0-9.]+)?$/", $version, $realVer); - if ($data === false) { - Log::writeNewLog(__FUNCTION__, curl_error($ch)); + if (is_array($realVer) && Init::isLoggedIn()) { + $appVersion = implode('', self::getVersion(true)); + $pubVersion = $realVer[1] . $realVer[2] . $realVer[3] . $realVer[4]; - return false; - } - - curl_close($ch); - - $updateInfo = json_decode($data); - - // $updateInfo[0]->tag_name - // $updateInfo[0]->name - // $updateInfo[0]->body - // $updateInfo[0]->tarball_url - // $updateInfo[0]->zipball_url - // $updateInfo[0]->published_at - // $updateInfo[0]->html_url - - $version = $updateInfo->tag_name; - $url = $updateInfo->html_url; - $title = $updateInfo->name; - $description = $updateInfo->body; - $date = $updateInfo->published_at; - - preg_match("/v?(\d+)\.(\d+)\.(\d+)\.(\d+)(\-[a-z0-9.]+)?$/", $version, $realVer); - - if (is_array($realVer) && Init::isLoggedIn()) { - $appVersion = implode('', self::getVersion(true)); - $pubVersion = $realVer[1] . $realVer[2] . $realVer[3] . $realVer[4]; - - if ($pubVersion > $appVersion) { - return array( - 'version' => $version, - 'url' => $url, - 'title' => $title, - 'description' => $description, - 'date' => $date); + if ($pubVersion > $appVersion) { + return array( + 'version' => $version, + 'url' => $url, + 'title' => $title, + 'description' => $description, + 'date' => $date); + } else { + return true; + } } else { - return true; + return false; } - } else { + } + + return false; + } + + /** + * Comprobar si hay notificaciones de sysPass disponibles desde internet (github.com) + * Esta función hace una petición a GitHub y parsea el JSON devuelto + * + * @return array|bool + */ + public static function checkNotices() + { + if (!Config::getValue('checknotices')) { return false; } + + $githubUrl = 'https://api.github.com/repos/nuxsmin/sysPass/issues?milestone=none&state=open&labels=Notices'; + + $data = self::getDataFromUrl($githubUrl); + + if ($data) { + $noticesData = json_decode($data); + $notices = array(); + + // $noticesData[0]->title + // $noticesData[0]->body + // $noticesData[0]->created_at + + foreach ($noticesData as $notice) { + $notices[] = array( + $notice->title, +// $notice->body, + $notice->created_at + ); + } + + return $notices; + } + + return false; } /** @@ -684,10 +698,33 @@ class Util return $appinfo; } + /** + * Obtener datos desde una URL + * + * @param $url string La URL + * @return bool|string + */ private static function getDataFromUrl($url) { + if (!self::curlIsAvailable() || !Config::getValue('checkupdates')) { + return false; + } + $ch = curl_init($url); + if (Config::getValue('proxy_enabled')){ + curl_setopt($ch, CURLOPT_PROXY, Config::getValue('proxy_server')); + curl_setopt($ch, CURLOPT_PROXYPORT, Config::getValue('proxy_port')); + curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); + + $proxyUser = Config::getValue('proxy_user'); + + if ($proxyUser) { + $proxyAuth = $proxyUser . ':' . Config::getValue('proxy_pass'); + curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyAuth); + } + } + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_USERAGENT, "sysPass-App"); diff --git a/inc/locales/en_US/LC_MESSAGES/messages.mo b/inc/locales/en_US/LC_MESSAGES/messages.mo index 819f99720d79f57ffc6b01499c4d566231385596..0da4ba4fdc6d371cff1021a88ad6847a514a107e 100644 GIT binary patch delta 18747 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 delta 18411 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 diff --git a/inc/locales/en_US/LC_MESSAGES/messages.po b/inc/locales/en_US/LC_MESSAGES/messages.po index 1a61476b..61a42613 100644 --- a/inc/locales/en_US/LC_MESSAGES/messages.po +++ b/inc/locales/en_US/LC_MESSAGES/messages.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: sysPass\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-08-03 12:30+0200\n" -"PO-Revision-Date: 2015-08-03 12:31+0200\n" +"POT-Creation-Date: 2015-08-06 02:33+0100\n" +"PO-Revision-Date: 2015-08-06 02:36+0100\n" "Last-Translator: nuxsmin \n" "Language-Team: nuxsmin@syspass.org\n" "Language: en_US\n" @@ -19,20 +19,17 @@ msgstr "" "X-Poedit-KeywordsList: _;gettext;gettext_noop\n" "X-Poedit-Basepath: .\n" "X-Poedit-SourceCharset: UTF-8\n" -"X-Generator: Poedit 1.8.3\n" +"X-Generator: Poedit 1.6.10\n" "X-Poedit-SearchPath-0: ../../../..\n" -#: ../../../../js/jquery-ui.min.js:10 -msgid "'" -msgstr "" - #: ../../../../ajax/ajax_2fa.php:35 ../../../../ajax/ajax_accountSave.php:41 -#: ../../../../ajax/ajax_appMgmtSave.php:43 ../../../../ajax/ajax_backup.php:39 -#: ../../../../ajax/ajax_checkLdap.php:41 +#: ../../../../ajax/ajax_appMgmtSave.php:43 +#: ../../../../ajax/ajax_backup.php:39 ../../../../ajax/ajax_checkLdap.php:41 #: ../../../../ajax/ajax_configSave.php:41 ../../../../ajax/ajax_files.php:41 #: ../../../../ajax/ajax_getFiles.php:46 ../../../../ajax/ajax_import.php:49 #: ../../../../ajax/ajax_migrate.php:45 ../../../../ajax/ajax_passReset.php:37 -#: ../../../../ajax/ajax_search.php:41 ../../../../ajax/ajax_sendRequest.php:41 +#: ../../../../ajax/ajax_search.php:41 +#: ../../../../ajax/ajax_sendRequest.php:41 #: ../../../../ajax/ajax_userPrefsSave.php:42 msgid "CONSULTA INVÁLIDA" msgstr "INVALID QUERY" @@ -46,8 +43,8 @@ msgid "Código incorrecto" msgstr "Wrong code" #: ../../../../ajax/ajax_accountSave.php:35 -#: ../../../../ajax/ajax_appMgmtSave.php:37 ../../../../ajax/ajax_backup.php:33 -#: ../../../../ajax/ajax_checkLdap.php:35 +#: ../../../../ajax/ajax_appMgmtSave.php:37 +#: ../../../../ajax/ajax_backup.php:33 ../../../../ajax/ajax_checkLdap.php:35 #: ../../../../ajax/ajax_configSave.php:35 ../../../../ajax/ajax_import.php:35 #: ../../../../ajax/ajax_migrate.php:35 #: ../../../../ajax/ajax_sendRequest.php:35 @@ -96,13 +93,13 @@ msgid "La clave no puede estar en blanco" msgstr "Password cannot be blank" #: ../../../../ajax/ajax_accountSave.php:105 -#: ../../../../ajax/ajax_accountSave.php:237 +#: ../../../../ajax/ajax_accountSave.php:241 #: ../../../../ajax/ajax_appMgmtSave.php:187 #: ../../../../ajax/ajax_appMgmtSave.php:251 #: ../../../../ajax/ajax_appMgmtSave.php:320 #: ../../../../ajax/ajax_appMgmtSave.php:366 #: ../../../../ajax/ajax_appMgmtSave.php:413 -#: ../../../../ajax/ajax_configSave.php:288 +#: ../../../../ajax/ajax_configSave.php:290 #: ../../../../ajax/ajax_userPrefsSave.php:76 msgid "Acción Inválida" msgstr "Invalid Action" @@ -125,41 +122,41 @@ msgstr "Account added" msgid "Error al crear la cuenta" msgstr "Error on account creation" -#: ../../../../ajax/ajax_accountSave.php:193 +#: ../../../../ajax/ajax_accountSave.php:197 msgid "Sin cambios" msgstr "No changes" -#: ../../../../ajax/ajax_accountSave.php:198 +#: ../../../../ajax/ajax_accountSave.php:202 msgid "Cuenta actualizada" msgstr "Account updated" -#: ../../../../ajax/ajax_accountSave.php:201 +#: ../../../../ajax/ajax_accountSave.php:205 msgid "Error al modificar la cuenta" msgstr "Error on updating account" -#: ../../../../ajax/ajax_accountSave.php:208 +#: ../../../../ajax/ajax_accountSave.php:212 msgid "Cuenta eliminada" msgstr "Account deleted" -#: ../../../../ajax/ajax_accountSave.php:210 +#: ../../../../ajax/ajax_accountSave.php:214 msgid "Error al eliminar la cuenta" msgstr "Error on account deletion" -#: ../../../../ajax/ajax_accountSave.php:220 +#: ../../../../ajax/ajax_accountSave.php:224 #: ../../../../ajax/ajax_appMgmtSave.php:164 #: ../../../../ajax/ajax_passReset.php:74 msgid "Clave actualizada" msgstr "Password updated" -#: ../../../../ajax/ajax_accountSave.php:223 +#: ../../../../ajax/ajax_accountSave.php:227 msgid "Error al actualizar la clave" msgstr "Error on updating password" -#: ../../../../ajax/ajax_accountSave.php:230 +#: ../../../../ajax/ajax_accountSave.php:234 msgid "Cuenta restaurada" msgstr "Account restored" -#: ../../../../ajax/ajax_accountSave.php:233 +#: ../../../../ajax/ajax_accountSave.php:237 msgid "Error al restaurar cuenta" msgstr "Error on restoring account" @@ -285,8 +282,8 @@ msgstr "Error on user update" #: ../../../../ajax/ajax_appMgmtSave.php:149 #: ../../../../ajax/ajax_appMgmtSave.php:171 -#: ../../../../ajax/ajax_configSave.php:263 ../../../../ajax/ajax_import.php:39 -#: ../../../../ajax/ajax_migrate.php:39 +#: ../../../../ajax/ajax_configSave.php:265 +#: ../../../../ajax/ajax_import.php:39 ../../../../ajax/ajax_migrate.php:39 msgid "Ey, esto es una DEMO!!" msgstr "Ey, this is a DEMO!!" @@ -346,7 +343,7 @@ msgstr "Users" #: ../../../../inc/Category.class.php:266 #: ../../../../inc/Customer.class.php:150 #: ../../../../inc/themes/classic/profiles.inc:15 -#: ../../../../inc/themes/material-blue/config.inc:121 +#: ../../../../inc/themes/material-blue/config.inc:139 #: ../../../../inc/themes/material-blue/profiles.inc:19 msgid "Cuentas" msgstr "Accounts" @@ -501,109 +498,109 @@ msgstr "Edit Configuration" msgid "El tamaño máximo por archivo es de 16MB" msgstr "The maximum size per file is 16MB" -#: ../../../../ajax/ajax_configSave.php:112 +#: ../../../../ajax/ajax_configSave.php:114 msgid "Faltan parámetros de Proxy" msgstr "Missing proxy parameters " -#: ../../../../ajax/ajax_configSave.php:123 -#: ../../../../web/ConfigC.class.php:119 +#: ../../../../ajax/ajax_configSave.php:125 +#: ../../../../web/ConfigC.class.php:120 #: ../../../../inc/themes/classic/profiles.inc:61 #: ../../../../inc/themes/material-blue/profiles.inc:72 msgid "General" msgstr "General" -#: ../../../../ajax/ajax_configSave.php:135 +#: ../../../../ajax/ajax_configSave.php:137 msgid "Faltan parámetros de Wiki" msgstr "Missing Wiki parameters" -#: ../../../../ajax/ajax_configSave.php:145 -#: ../../../../web/ConfigC.class.php:250 +#: ../../../../ajax/ajax_configSave.php:147 +#: ../../../../web/ConfigC.class.php:252 #: ../../../../inc/themes/classic/wiki.inc:4 #: ../../../../inc/themes/material-blue/wiki.inc:4 msgid "Wiki" msgstr "Wiki" -#: ../../../../ajax/ajax_configSave.php:162 +#: ../../../../ajax/ajax_configSave.php:164 msgid "Faltan parámetros de LDAP" msgstr "Missing LDAP parameters" -#: ../../../../ajax/ajax_configSave.php:177 -#: ../../../../web/ConfigC.class.php:282 +#: ../../../../ajax/ajax_configSave.php:179 +#: ../../../../web/ConfigC.class.php:284 #: ../../../../inc/themes/classic/ldap.inc:4 #: ../../../../inc/themes/material-blue/ldap.inc:4 msgid "LDAP" msgstr "LDAP" -#: ../../../../ajax/ajax_configSave.php:194 +#: ../../../../ajax/ajax_configSave.php:196 msgid "Faltan parámetros de Correo" msgstr "Missing Mail parameters" -#: ../../../../ajax/ajax_configSave.php:214 -#: ../../../../web/ConfigC.class.php:312 +#: ../../../../ajax/ajax_configSave.php:216 +#: ../../../../web/ConfigC.class.php:314 #: ../../../../inc/themes/classic/mail.inc:4 #: ../../../../inc/themes/material-blue/mail.inc:4 msgid "Correo" msgstr "Mail" -#: ../../../../ajax/ajax_configSave.php:224 +#: ../../../../ajax/ajax_configSave.php:226 msgid "Configuración actualizada" msgstr "Configuration updated" -#: ../../../../ajax/ajax_configSave.php:233 -#: ../../../../ajax/ajax_configSave.php:273 +#: ../../../../ajax/ajax_configSave.php:235 +#: ../../../../ajax/ajax_configSave.php:275 #: ../../../../ajax/ajax_viewpass.php:60 #: ../../../../inc/Controller.class.php:168 msgid "Clave maestra actualizada" msgstr "Master Password updated" -#: ../../../../ajax/ajax_configSave.php:233 +#: ../../../../ajax/ajax_configSave.php:235 #: ../../../../ajax/ajax_viewpass.php:60 #: ../../../../inc/Controller.class.php:168 msgid "Reinicie la sesión para cambiarla" msgstr "Restart session to update" -#: ../../../../ajax/ajax_configSave.php:235 +#: ../../../../ajax/ajax_configSave.php:237 msgid "Clave maestra no indicada" msgstr "Master Password needed" -#: ../../../../ajax/ajax_configSave.php:237 +#: ../../../../ajax/ajax_configSave.php:239 msgid "Se ha de confirmar el cambio de clave" msgstr "The password update must be confirmed" -#: ../../../../ajax/ajax_configSave.php:239 +#: ../../../../ajax/ajax_configSave.php:241 msgid "Las claves son idénticas" msgstr "The passwords are the same" -#: ../../../../ajax/ajax_configSave.php:241 +#: ../../../../ajax/ajax_configSave.php:243 msgid "Las claves maestras no coinciden" msgstr "The master passwords do not match" -#: ../../../../ajax/ajax_configSave.php:243 +#: ../../../../ajax/ajax_configSave.php:245 msgid "La clave maestra actual no coincide" msgstr "The current master password does not match" -#: ../../../../ajax/ajax_configSave.php:252 +#: ../../../../ajax/ajax_configSave.php:254 msgid "Errores al actualizar las claves de las cuentas" msgstr "Error on updating accounts' passwords" -#: ../../../../ajax/ajax_configSave.php:258 +#: ../../../../ajax/ajax_configSave.php:260 msgid "Errores al actualizar las claves de las cuentas del histórico" msgstr "Error while updating acounts passwords in history" -#: ../../../../ajax/ajax_configSave.php:271 -#: ../../../../inc/Account.class.php:495 +#: ../../../../ajax/ajax_configSave.php:273 +#: ../../../../inc/Account.class.php:497 msgid "Actualizar Clave Maestra" msgstr "Update Master Password" -#: ../../../../ajax/ajax_configSave.php:275 +#: ../../../../ajax/ajax_configSave.php:277 msgid "Error al guardar el hash de la clave maestra" msgstr "Error on saving master password's hash" -#: ../../../../ajax/ajax_configSave.php:283 +#: ../../../../ajax/ajax_configSave.php:285 msgid "Generar Clave Temporal" msgstr "Generate Temporary Password" -#: ../../../../ajax/ajax_configSave.php:283 +#: ../../../../ajax/ajax_configSave.php:285 #: ../../../../inc/themes/classic/account.inc:83 #: ../../../../inc/themes/classic/editpass.inc:25 #: ../../../../inc/themes/classic/install.inc:38 @@ -617,14 +614,14 @@ msgstr "Generate Temporary Password" #: ../../../../inc/themes/classic/userspass.inc:11 #: ../../../../inc/themes/material-blue/account.inc:95 #: ../../../../inc/themes/material-blue/account.inc:100 -#: ../../../../inc/themes/material-blue/config.inc:342 +#: ../../../../inc/themes/material-blue/config.inc:360 #: ../../../../inc/themes/material-blue/editpass.inc:26 #: ../../../../inc/themes/material-blue/editpass.inc:31 #: ../../../../inc/themes/material-blue/editpass.inc:41 #: ../../../../inc/themes/material-blue/install.inc:44 #: ../../../../inc/themes/material-blue/ldap.inc:105 -#: ../../../../inc/themes/material-blue/login.inc:17 -#: ../../../../inc/themes/material-blue/login.inc:39 +#: ../../../../inc/themes/material-blue/login.inc:16 +#: ../../../../inc/themes/material-blue/login.inc:38 #: ../../../../inc/themes/material-blue/mail.inc:73 #: ../../../../inc/themes/material-blue/mail.inc:80 #: ../../../../inc/themes/material-blue/passreset.inc:31 @@ -635,7 +632,7 @@ msgstr "Generate Temporary Password" msgid "Clave" msgstr "Password" -#: ../../../../ajax/ajax_configSave.php:285 +#: ../../../../ajax/ajax_configSave.php:287 msgid "Clave Temporal Generada" msgstr "Temporary Password Generated" @@ -670,11 +667,12 @@ msgstr "Incorrect login" #: ../../../../ajax/ajax_doLogin.php:98 ../../../../ajax/ajax_doLogin.php:109 #: ../../../../ajax/ajax_doLogin.php:119 ../../../../ajax/ajax_doLogin.php:166 #: ../../../../inc/Init.class.php:514 ../../../../inc/UserBase.class.php:382 -#: ../../../../inc/UserBase.class.php:526 ../../../../web/SearchC.class.php:289 +#: ../../../../inc/UserBase.class.php:526 ../../../../res/test.php:64 +#: ../../../../web/SearchC.class.php:289 #: ../../../../inc/themes/classic/account.inc:70 #: ../../../../inc/themes/classic/editpass.inc:21 #: ../../../../inc/themes/classic/eventlog.inc:25 -#: ../../../../inc/themes/classic/info.inc:43 +#: ../../../../inc/themes/classic/info.inc:39 #: ../../../../inc/themes/classic/install.inc:27 #: ../../../../inc/themes/classic/install.inc:28 #: ../../../../inc/themes/classic/login.inc:7 @@ -684,12 +682,12 @@ msgstr "Incorrect login" #: ../../../../inc/themes/classic/request.inc:17 #: ../../../../inc/themes/classic/search.inc:52 #: ../../../../inc/themes/material-blue/account.inc:80 -#: ../../../../inc/themes/material-blue/config.inc:328 +#: ../../../../inc/themes/material-blue/config.inc:346 #: ../../../../inc/themes/material-blue/editpass.inc:22 #: ../../../../inc/themes/material-blue/eventlog.inc:24 -#: ../../../../inc/themes/material-blue/info.inc:43 -#: ../../../../inc/themes/material-blue/login.inc:11 -#: ../../../../inc/themes/material-blue/login.inc:33 +#: ../../../../inc/themes/material-blue/info.inc:39 +#: ../../../../inc/themes/material-blue/login.inc:10 +#: ../../../../inc/themes/material-blue/login.inc:32 #: ../../../../inc/themes/material-blue/mail.inc:61 #: ../../../../inc/themes/material-blue/mail.inc:67 #: ../../../../inc/themes/material-blue/passreset.inc:17 @@ -752,7 +750,7 @@ msgstr "Group" msgid "Gestión de archivos deshabilitada" msgstr "Files management disabled" -#: ../../../../ajax/ajax_files.php:59 ../../../../inc/Files.class.php:61 +#: ../../../../ajax/ajax_files.php:59 ../../../../inc/Files.class.php:63 msgid "Subir Archivo" msgstr "Upload File" @@ -796,32 +794,32 @@ msgid "El archivo no existe" msgstr "The file does not exist" #: ../../../../ajax/ajax_files.php:157 -#: ../../../../inc/themes/classic/files.inc:14 -#: ../../../../inc/themes/material-blue/files.inc:14 +#: ../../../../inc/themes/classic/files.inc:19 +#: ../../../../inc/themes/material-blue/files.inc:19 msgid "Descargar Archivo" msgstr "Download File" #: ../../../../ajax/ajax_files.php:158 ../../../../ajax/ajax_viewpass.php:70 -#: ../../../../inc/Files.class.php:110 +#: ../../../../inc/Files.class.php:112 #: ../../../../inc/themes/classic/eventlog.inc:16 #: ../../../../inc/themes/material-blue/eventlog.inc:15 msgid "ID" msgstr "ID" -#: ../../../../ajax/ajax_files.php:159 ../../../../inc/Files.class.php:63 -#: ../../../../inc/Files.class.php:111 +#: ../../../../ajax/ajax_files.php:159 ../../../../inc/Files.class.php:65 +#: ../../../../inc/Files.class.php:113 #: ../../../../inc/themes/classic/import.inc:155 #: ../../../../inc/themes/material-blue/import.inc:83 msgid "Archivo" msgstr "File" -#: ../../../../ajax/ajax_files.php:160 ../../../../inc/Files.class.php:64 -#: ../../../../inc/Files.class.php:112 +#: ../../../../ajax/ajax_files.php:160 ../../../../inc/Files.class.php:66 +#: ../../../../inc/Files.class.php:114 msgid "Tipo" msgstr "Type" -#: ../../../../ajax/ajax_files.php:161 ../../../../inc/Files.class.php:65 -#: ../../../../inc/Files.class.php:113 +#: ../../../../ajax/ajax_files.php:161 ../../../../inc/Files.class.php:67 +#: ../../../../inc/Files.class.php:115 msgid "Tamaño" msgstr "Size" @@ -913,19 +911,20 @@ msgid "Solicitante" msgstr "Requester" #: ../../../../ajax/ajax_sendRequest.php:63 -#: ../../../../ajax/ajax_viewpass.php:71 ../../../../inc/Account.class.php:163 -#: ../../../../inc/Account.class.php:217 ../../../../inc/Account.class.php:400 -#: ../../../../inc/Account.class.php:423 ../../../../inc/Account.class.php:665 -#: ../../../../inc/Files.class.php:62 +#: ../../../../ajax/ajax_viewpass.php:71 ../../../../inc/Account.class.php:165 +#: ../../../../inc/Account.class.php:219 ../../../../inc/Account.class.php:402 +#: ../../../../inc/Account.class.php:425 ../../../../inc/Account.class.php:667 +#: ../../../../inc/Files.class.php:64 msgid "Cuenta" msgstr "Account" #: ../../../../ajax/ajax_sendRequest.php:64 -#: ../../../../inc/Account.class.php:162 ../../../../inc/Account.class.php:216 -#: ../../../../inc/Account.class.php:399 ../../../../inc/Account.class.php:422 -#: ../../../../inc/Account.class.php:664 ../../../../inc/Customer.class.php:65 +#: ../../../../inc/Account.class.php:164 ../../../../inc/Account.class.php:218 +#: ../../../../inc/Account.class.php:401 ../../../../inc/Account.class.php:424 +#: ../../../../inc/Account.class.php:666 ../../../../inc/Customer.class.php:65 #: ../../../../inc/Customer.class.php:115 -#: ../../../../inc/Customer.class.php:163 ../../../../web/SearchC.class.php:271 +#: ../../../../inc/Customer.class.php:163 +#: ../../../../web/SearchC.class.php:271 #: ../../../../inc/themes/classic/account.inc:23 #: ../../../../inc/themes/classic/editpass.inc:12 #: ../../../../inc/themes/classic/request.inc:9 @@ -977,7 +976,7 @@ msgstr "You don't have permission to access to this account" #: ../../../../inc/themes/classic/account.inc:346 #: ../../../../inc/themes/classic/profiles.inc:23 #: ../../../../inc/themes/classic/search.inc:102 -#: ../../../../inc/themes/material-blue/account.inc:370 +#: ../../../../inc/themes/material-blue/account.inc:381 #: ../../../../inc/themes/material-blue/profiles.inc:35 #: ../../../../inc/themes/material-blue/search.inc:113 msgid "Ver Clave" @@ -999,7 +998,7 @@ msgstr "Account Password" #: ../../../../inc/CsvImport.class.php:28 #: ../../../../inc/CsvImportBase.class.php:28 #: ../../../../inc/Customer.class.php:29 ../../../../inc/DB.class.php:28 -#: ../../../../inc/DBConnectionFactory.class.php:28 +#: ../../../../inc/DBConnectionFactory.class.php:30 #: ../../../../inc/FileImport.class.php:28 ../../../../inc/Files.class.php:29 #: ../../../../inc/Groups.class.php:29 ../../../../inc/Html.class.php:28 #: ../../../../inc/ImageUtil.class.php:28 ../../../../inc/Import.class.php:29 @@ -1021,13 +1020,14 @@ msgstr "Account Password" #: ../../../../web/AccountC.class.php:38 #: ../../../../web/AccountsMgmtC.class.php:28 #: ../../../../web/ConfigC.class.php:28 ../../../../web/EventlogC.class.php:28 -#: ../../../../web/SearchC.class.php:30 ../../../../web/UsersMgmtC.class.php:37 +#: ../../../../web/SearchC.class.php:30 +#: ../../../../web/UsersMgmtC.class.php:37 #: ../../../../web/UsersPrefsC.class.php:32 msgid "No es posible acceder directamente a este archivo" msgstr "Unable to access to this file directly" -#: ../../../../inc/Account.class.php:112 ../../../../inc/Account.class.php:183 -#: ../../../../inc/Account.class.php:634 +#: ../../../../inc/Account.class.php:112 ../../../../inc/Account.class.php:185 +#: ../../../../inc/Account.class.php:636 msgid "Error al actualizar el historial" msgstr "Error on updating history" @@ -1035,102 +1035,103 @@ msgstr "Error on updating history" msgid "Actualizar Cuenta" msgstr "Update Account" -#: ../../../../inc/Account.class.php:120 ../../../../inc/Account.class.php:381 +#: ../../../../inc/Account.class.php:120 ../../../../inc/Account.class.php:383 msgid "Error al actualizar los grupos secundarios" msgstr "Error on updating secondary groups" -#: ../../../../inc/Account.class.php:126 ../../../../inc/Account.class.php:389 +#: ../../../../inc/Account.class.php:126 ../../../../inc/Account.class.php:391 msgid "Error al actualizar los usuarios de la cuenta" msgstr "Error on updating account's users" -#: ../../../../inc/Account.class.php:215 +#: ../../../../inc/Account.class.php:217 msgid "Restaurar Cuenta" msgstr "Account Restore" -#: ../../../../inc/Account.class.php:324 +#: ../../../../inc/Account.class.php:326 #: ../../../../inc/AccountHistory.class.php:343 #: ../../../../inc/AccountHistory.class.php:505 msgid "No se pudieron obtener los datos de la cuenta" msgstr "Error while retrieving account data" -#: ../../../../inc/Account.class.php:398 ../../../../web/AccountC.class.php:147 -#: ../../../../web/MainC.class.php:143 +#: ../../../../inc/Account.class.php:400 +#: ../../../../web/AccountC.class.php:147 ../../../../web/MainC.class.php:147 msgid "Nueva Cuenta" msgstr "New Account" -#: ../../../../inc/Account.class.php:416 +#: ../../../../inc/Account.class.php:418 msgid "ERROR: Error en la operación." msgstr "ERROR: Operation failed" -#: ../../../../inc/Account.class.php:421 ../../../../web/AccountC.class.php:351 +#: ../../../../inc/Account.class.php:423 +#: ../../../../web/AccountC.class.php:351 #: ../../../../inc/themes/classic/account.inc:333 #: ../../../../inc/themes/classic/search.inc:129 -#: ../../../../inc/themes/material-blue/account.inc:364 +#: ../../../../inc/themes/material-blue/account.inc:375 #: ../../../../inc/themes/material-blue/search.inc:142 msgid "Eliminar Cuenta" msgstr "Delete Account" -#: ../../../../inc/Account.class.php:434 +#: ../../../../inc/Account.class.php:436 msgid "Error al eliminar grupos asociados a la cuenta" msgstr "Error on deleting account's groups" -#: ../../../../inc/Account.class.php:438 +#: ../../../../inc/Account.class.php:440 msgid "Error al eliminar usuarios asociados a la cuenta" msgstr "Error on deleting account's users" -#: ../../../../inc/Account.class.php:442 +#: ../../../../inc/Account.class.php:444 msgid "Error al eliminar archivos asociados a la cuenta" msgstr "Error on deleting account's files" -#: ../../../../inc/Account.class.php:496 +#: ../../../../inc/Account.class.php:498 #: ../../../../inc/AccountHistory.class.php:124 #: ../../../../inc/XmlImport.class.php:62 msgid "Inicio" msgstr "Start" -#: ../../../../inc/Account.class.php:501 +#: ../../../../inc/Account.class.php:503 #: ../../../../inc/AccountHistory.class.php:130 msgid "Error en el módulo de encriptación" msgstr "Error on encryption module" -#: ../../../../inc/Account.class.php:509 +#: ../../../../inc/Account.class.php:511 #: ../../../../inc/AccountHistory.class.php:138 msgid "Error al obtener las claves de las cuentas" msgstr "Error on retrieving accounts' passwords" -#: ../../../../inc/Account.class.php:525 +#: ../../../../inc/Account.class.php:527 #: ../../../../inc/AccountHistory.class.php:160 msgid "Clave de cuenta vacía" msgstr "Account password empty" -#: ../../../../inc/Account.class.php:530 +#: ../../../../inc/Account.class.php:532 #: ../../../../inc/AccountHistory.class.php:165 msgid "IV de encriptación incorrecto" msgstr "Wrong encryption IV" -#: ../../../../inc/Account.class.php:539 +#: ../../../../inc/Account.class.php:541 #: ../../../../inc/AccountHistory.class.php:174 msgid "No es posible desencriptar la clave de la cuenta" msgstr "Unable to decrypt account password" -#: ../../../../inc/Account.class.php:545 +#: ../../../../inc/Account.class.php:547 msgid "Fallo al actualizar la clave de la cuenta" msgstr "Error on updating account's password" -#: ../../../../inc/Account.class.php:559 +#: ../../../../inc/Account.class.php:561 msgid "Cuentas actualizadas" msgstr "Accounts updated" -#: ../../../../inc/Account.class.php:564 +#: ../../../../inc/Account.class.php:566 #: ../../../../inc/AccountHistory.class.php:199 msgid "Fin" msgstr "End" -#: ../../../../inc/Account.class.php:663 +#: ../../../../inc/Account.class.php:665 msgid "Modificar Clave" msgstr "Update Password" -#: ../../../../inc/Account.class.php:698 +#: ../../../../inc/Account.class.php:700 msgid "No se pudieron obtener los datos de las cuentas" msgstr "It was unable to retrieve accounts data" @@ -1190,7 +1191,8 @@ msgstr "Unable to create backups directory" msgid "Compruebe los permisos del directorio de backups" msgstr "Check backup directory permissions" -#: ../../../../inc/Category.class.php:69 ../../../../inc/Category.class.php:165 +#: ../../../../inc/Category.class.php:69 +#: ../../../../inc/Category.class.php:165 msgid "Nombre de categoría duplicado" msgstr "Duplicated category name" @@ -1198,8 +1200,10 @@ msgstr "Duplicated category name" msgid "Error al crear la categoría" msgstr "Error on creating category" -#: ../../../../inc/Category.class.php:83 ../../../../inc/Category.class.php:132 -#: ../../../../inc/Category.class.php:182 ../../../../web/SearchC.class.php:283 +#: ../../../../inc/Category.class.php:83 +#: ../../../../inc/Category.class.php:132 +#: ../../../../inc/Category.class.php:182 +#: ../../../../web/SearchC.class.php:283 #: ../../../../inc/themes/classic/account.inc:42 #: ../../../../inc/themes/classic/search.inc:46 #: ../../../../inc/themes/material-blue/account.inc:50 @@ -1228,14 +1232,14 @@ msgstr "Error on updating category" msgid "Modificar Categoría" msgstr "Category Edit" -#: ../../../../inc/Config.class.php:118 ../../../../inc/Config.class.php:390 -#: ../../../../web/MainC.class.php:161 +#: ../../../../inc/Config.class.php:118 ../../../../inc/Config.class.php:400 +#: ../../../../web/MainC.class.php:165 #: ../../../../inc/themes/classic/profiles.inc:57 #: ../../../../inc/themes/material-blue/profiles.inc:66 msgid "Configuración" msgstr "Configuration" -#: ../../../../inc/Config.class.php:118 ../../../../inc/Config.class.php:391 +#: ../../../../inc/Config.class.php:118 ../../../../inc/Config.class.php:401 msgid "Modificar configuración" msgstr "Update Configuration" @@ -1247,11 +1251,11 @@ msgstr "Unable to write in configuration file" msgid "Compruebe los permisos del directorio \"config\"" msgstr "Please, check the \"config\" directory permissions" -#: ../../../../inc/Config.class.php:392 +#: ../../../../inc/Config.class.php:402 msgid "Parámetro" msgstr "Parameter" -#: ../../../../inc/Config.class.php:393 +#: ../../../../inc/Config.class.php:403 msgid "Valor" msgstr "Value" @@ -1287,8 +1291,10 @@ msgstr "Please, check CSV format in line %s" #: ../../../../inc/CsvImportBase.class.php:140 #: ../../../../inc/CsvImportBase.class.php:145 #: ../../../../inc/Import.class.php:118 ../../../../inc/Import.class.php:124 -#: ../../../../inc/Migrate.class.php:349 ../../../../inc/XmlImport.class.php:62 -#: ../../../../inc/XmlImport.class.php:63 ../../../../web/ConfigC.class.php:206 +#: ../../../../inc/Migrate.class.php:349 +#: ../../../../inc/XmlImport.class.php:62 +#: ../../../../inc/XmlImport.class.php:63 +#: ../../../../web/ConfigC.class.php:207 msgid "Importar Cuentas" msgstr "Import Accounts" @@ -1335,16 +1341,16 @@ msgstr "Error on customer deletion" msgid "Eliminar Cliente" msgstr "Delete Customer" -#: ../../../../inc/DBConnectionFactory.class.php:85 #: ../../../../inc/DBConnectionFactory.class.php:87 -#: ../../../../inc/DBConnectionFactory.class.php:101 +#: ../../../../inc/DBConnectionFactory.class.php:89 +#: ../../../../inc/DBConnectionFactory.class.php:103 #: ../../../../inc/Installer.class.php:251 #: ../../../../inc/Migrate.class.php:115 msgid "No es posible conectar con la BD" msgstr "Unable to connect to the DB" -#: ../../../../inc/DBConnectionFactory.class.php:85 #: ../../../../inc/DBConnectionFactory.class.php:87 +#: ../../../../inc/DBConnectionFactory.class.php:89 #: ../../../../inc/Installer.class.php:252 #: ../../../../inc/Migrate.class.php:116 msgid "Compruebe los datos de conexión" @@ -1407,9 +1413,9 @@ msgstr "Please, check PHP configuration for upload files" msgid "Compruebe los permisos del directorio temporal" msgstr "Please, check temporary directory permissions" -#: ../../../../inc/Files.class.php:109 -#: ../../../../inc/themes/classic/files.inc:10 -#: ../../../../inc/themes/material-blue/files.inc:10 +#: ../../../../inc/Files.class.php:111 +#: ../../../../inc/themes/classic/files.inc:15 +#: ../../../../inc/themes/material-blue/files.inc:16 msgid "Eliminar Archivo" msgstr "Delete File" @@ -1519,8 +1525,8 @@ msgid "Actualización de versión realizada." msgstr "Version updating done." #: ../../../../inc/Init.class.php:588 -#: ../../../../inc/themes/classic/info.inc:32 -#: ../../../../inc/themes/material-blue/info.inc:32 +#: ../../../../inc/themes/classic/info.inc:33 +#: ../../../../inc/themes/material-blue/info.inc:33 msgid "Versión" msgstr "Version" @@ -1917,7 +1923,7 @@ msgstr "Please, check the event log for more details" #: ../../../../inc/Upgrade.class.php:52 ../../../../inc/Upgrade.class.php:58 #: ../../../../inc/themes/classic/login.inc:32 #: ../../../../inc/themes/material-blue/2fa.inc:26 -#: ../../../../inc/themes/material-blue/login.inc:62 +#: ../../../../inc/themes/material-blue/login.inc:61 msgid "Acceder" msgstr "Sign in" @@ -1929,23 +1935,23 @@ msgstr "Error while applying auxiliary update" msgid "Actualizar BBDD" msgstr "Update DB" -#: ../../../../inc/Upgrade.class.php:116 +#: ../../../../inc/Upgrade.class.php:118 msgid "No es necesario actualizar la Base de Datos." msgstr "Database update not needed." -#: ../../../../inc/Upgrade.class.php:124 +#: ../../../../inc/Upgrade.class.php:126 msgid "Error al aplicar la actualización de la Base de Datos." msgstr "Error on updating database." -#: ../../../../inc/Upgrade.class.php:133 +#: ../../../../inc/Upgrade.class.php:135 msgid "Actualización de la Base de Datos realizada correctamente." msgstr "Database updating was done successfully." -#: ../../../../inc/Upgrade.class.php:210 +#: ../../../../inc/Upgrade.class.php:212 msgid "Actualizar Configuración" msgstr "Update Configuration" -#: ../../../../inc/Upgrade.class.php:210 +#: ../../../../inc/Upgrade.class.php:212 msgid "Actualización de la Configuración realizada correctamente." msgstr "Configuration updating was done successfully." @@ -2038,7 +2044,8 @@ msgstr "Error on query" msgid "Ha ocurrido un error" msgstr "There was an error" -#: ../../../../js/strings.js.php:29 ../../../../inc/themes/classic/login.inc:52 +#: ../../../../js/strings.js.php:29 +#: ../../../../inc/themes/classic/login.inc:52 #: ../../../../inc/themes/material-blue/login.inc:76 msgid "Sesión finalizada" msgstr "Session finished" @@ -2164,7 +2171,6 @@ msgstr "Password strength level" #: ../../../../js/strings.js.php:59 #: ../../../../inc/themes/classic/install.inc:75 #: ../../../../inc/themes/classic/install.inc:76 -#: ../../../../inc/themes/material-blue/install.inc:92 msgid "Mostrar Clave" msgstr "Show Password" @@ -2213,7 +2219,7 @@ msgstr "Account Details" #: ../../../../web/AccountC.class.php:467 #: ../../../../inc/themes/classic/account.inc:361 -#: ../../../../inc/themes/material-blue/account.inc:382 +#: ../../../../inc/themes/material-blue/account.inc:393 msgid "Modificar Clave de Cuenta" msgstr "Edit Account Password" @@ -2228,6 +2234,7 @@ msgstr "Edit Account Password" #: ../../../../inc/themes/classic/customers.inc:8 #: ../../../../inc/themes/classic/editpass.inc:8 #: ../../../../inc/themes/classic/groups.inc:8 +#: ../../../../inc/themes/classic/info.inc:25 #: ../../../../inc/themes/classic/profiles.inc:8 #: ../../../../inc/themes/classic/request.inc:6 #: ../../../../inc/themes/classic/search.inc:36 @@ -2237,6 +2244,7 @@ msgstr "Edit Account Password" #: ../../../../inc/themes/material-blue/customers.inc:8 #: ../../../../inc/themes/material-blue/editpass.inc:9 #: ../../../../inc/themes/material-blue/groups.inc:8 +#: ../../../../inc/themes/material-blue/info.inc:25 #: ../../../../inc/themes/material-blue/profiles.inc:8 #: ../../../../inc/themes/material-blue/request.inc:6 #: ../../../../inc/themes/material-blue/search.inc:39 @@ -2252,35 +2260,35 @@ msgstr "Categories Management" msgid "Gestión de Clientes" msgstr "Customers Management" -#: ../../../../web/ConfigC.class.php:142 +#: ../../../../web/ConfigC.class.php:143 #: ../../../../inc/themes/classic/profiles.inc:65 #: ../../../../inc/themes/material-blue/profiles.inc:77 msgid "Encriptación" msgstr "Encryption" -#: ../../../../web/ConfigC.class.php:175 +#: ../../../../web/ConfigC.class.php:176 msgid "Último backup" msgstr "Last backup" -#: ../../../../web/ConfigC.class.php:175 +#: ../../../../web/ConfigC.class.php:176 msgid "No se encontraron backups" msgstr "There are no backups available" -#: ../../../../web/ConfigC.class.php:182 +#: ../../../../web/ConfigC.class.php:183 msgid "Última exportación" msgstr "Last export" -#: ../../../../web/ConfigC.class.php:182 +#: ../../../../web/ConfigC.class.php:183 msgid "No se encontró archivo de exportación" msgstr "No export file found" -#: ../../../../web/ConfigC.class.php:184 +#: ../../../../web/ConfigC.class.php:185 #: ../../../../inc/themes/classic/backup.inc:4 #: ../../../../inc/themes/material-blue/backup.inc:4 msgid "Copia de Seguridad" msgstr "Backup" -#: ../../../../web/ConfigC.class.php:226 +#: ../../../../web/ConfigC.class.php:228 msgid "Información" msgstr "Information" @@ -2292,115 +2300,116 @@ msgstr "Event log cleared" msgid "Error al vaciar el registro de eventos" msgstr "Error on clearing event log" -#: ../../../../web/MainC.class.php:119 ../../../../web/UsersMgmtC.class.php:94 +#: ../../../../web/MainC.class.php:123 ../../../../web/UsersMgmtC.class.php:94 msgid "Admin Aplicación" msgstr "Application Admin" -#: ../../../../web/MainC.class.php:137 +#: ../../../../web/MainC.class.php:141 msgid "Buscar" msgstr "Search" -#: ../../../../web/MainC.class.php:149 ../../../../web/UsersMgmtC.class.php:157 +#: ../../../../web/MainC.class.php:153 +#: ../../../../web/UsersMgmtC.class.php:157 msgid "Gestión de Usuarios" msgstr "Users Management" -#: ../../../../web/MainC.class.php:155 +#: ../../../../web/MainC.class.php:159 msgid "Gestión de Clientes y Categorías" msgstr "Customer and Categories management" -#: ../../../../web/MainC.class.php:167 +#: ../../../../web/MainC.class.php:171 #: ../../../../inc/themes/classic/eventlog.inc:4 #: ../../../../inc/themes/material-blue/eventlog.inc:3 msgid "Registro de Eventos" msgstr "Event Log" -#: ../../../../web/MainC.class.php:187 +#: ../../../../web/MainC.class.php:191 msgid "Nuevo interface de búsqueda con estilo de lista o tipo tarjeta" msgstr "New search interface with list or card like styles" -#: ../../../../web/MainC.class.php:188 +#: ../../../../web/MainC.class.php:192 msgid "Selección de grupos y usuarios de acceso a cuentas" msgstr "Users and groups selection for account access" -#: ../../../../web/MainC.class.php:189 +#: ../../../../web/MainC.class.php:193 msgid "Drag&Drop para subida de archivos" msgstr "Drag&Drop for files uploading" -#: ../../../../web/MainC.class.php:190 +#: ../../../../web/MainC.class.php:194 msgid "Copiar clave al portapapeles" msgstr "Copy password to clipboard" -#: ../../../../web/MainC.class.php:191 +#: ../../../../web/MainC.class.php:195 msgid "Historial de cuentas y restauración" msgstr "Accounts history and restore points" -#: ../../../../web/MainC.class.php:192 +#: ../../../../web/MainC.class.php:196 msgid "Nueva gestión de categorías y clientes" msgstr "New categories and customers management" -#: ../../../../web/MainC.class.php:193 +#: ../../../../web/MainC.class.php:197 msgid "Función de olvido de claves para usuarios" msgstr "Reset password function for users" -#: ../../../../web/MainC.class.php:194 +#: ../../../../web/MainC.class.php:198 msgid "Integración con Active Directory y LDAP mejorada" msgstr "Improved Active Directory and LDAP integration" -#: ../../../../web/MainC.class.php:195 +#: ../../../../web/MainC.class.php:199 msgid "Autentificación para notificaciones por correo" msgstr "Email notifications with authentication" -#: ../../../../web/MainC.class.php:196 +#: ../../../../web/MainC.class.php:200 msgid "Búsqueda global de cuentas para usuarios sin permisos" msgstr "Global account searching for unprivileged users" -#: ../../../../web/MainC.class.php:197 +#: ../../../../web/MainC.class.php:201 msgid "Solicitudes de modificación de cuentas para usuarios sin permisos" msgstr "Requests for account modification for unprivileged users" -#: ../../../../web/MainC.class.php:198 +#: ../../../../web/MainC.class.php:202 msgid "Importación de cuentas desde KeePass, KeePassX y CSV" msgstr "Accounts import from KeePass, KeePassX and CSV" -#: ../../../../web/MainC.class.php:199 +#: ../../../../web/MainC.class.php:203 msgid "Función de copiar cuentas" msgstr "Clone account function" -#: ../../../../web/MainC.class.php:200 +#: ../../../../web/MainC.class.php:204 msgid "Optimización del código y mayor rapidez de carga" msgstr "Code optimization and faster loading" -#: ../../../../web/MainC.class.php:201 +#: ../../../../web/MainC.class.php:205 msgid "Mejoras de seguridad en XSS e inyección SQL" msgstr "Improved security to prevent XSS and SQL injection" -#: ../../../../web/MainC.class.php:232 +#: ../../../../web/MainC.class.php:236 msgid "La version de PHP es vulnerable al ataque NULL Byte (CVE-2006-7243)" msgstr "This PHP version is vulnerable to NULL Byte attack CVE-2006-7243)" -#: ../../../../web/MainC.class.php:233 +#: ../../../../web/MainC.class.php:237 msgid "Actualice la versión de PHP para usar sysPass de forma segura" msgstr "Please update PHP version to run sysPass in a secure way" -#: ../../../../web/MainC.class.php:240 +#: ../../../../web/MainC.class.php:244 msgid "No se encuentra el generador de números aleatorios." msgstr "Cannot find random number generator." -#: ../../../../web/MainC.class.php:241 +#: ../../../../web/MainC.class.php:245 msgid "" "Sin esta función un atacante puede utilizar su cuenta al resetear la clave" msgstr "" "Without this function, an attacker could take your account on password reset." -#: ../../../../web/MainC.class.php:260 +#: ../../../../web/MainC.class.php:264 msgid "Instalación finalizada" msgstr "Installation finished" -#: ../../../../web/MainC.class.php:261 +#: ../../../../web/MainC.class.php:265 msgid "Pulse aquí para acceder" msgstr "Click here to sign in" -#: ../../../../web/MainC.class.php:363 +#: ../../../../web/MainC.class.php:360 msgid "Descargar nueva versión" msgstr "Download new version" @@ -2555,7 +2564,7 @@ msgstr "Permissions" #: ../../../../inc/themes/classic/account.inc:132 #: ../../../../inc/themes/classic/account.inc:163 -#: ../../../../inc/themes/material-blue/account.inc:157 +#: ../../../../inc/themes/material-blue/account.inc:159 #: ../../../../inc/themes/material-blue/account.inc:191 msgid "Hablitar edición" msgstr "Enable Edit" @@ -2581,95 +2590,96 @@ msgstr "NO" #: ../../../../inc/themes/classic/account.inc:140 #: ../../../../inc/themes/classic/profiles.inc:85 -#: ../../../../inc/themes/material-blue/account.inc:168 +#: ../../../../inc/themes/material-blue/account.inc:166 #: ../../../../inc/themes/material-blue/profiles.inc:104 msgid "Grupos" msgstr "Groups" #: ../../../../inc/themes/classic/account.inc:188 #: ../../../../inc/themes/classic/profiles.inc:50 -#: ../../../../inc/themes/material-blue/account.inc:219 -#: ../../../../inc/themes/material-blue/config.inc:208 +#: ../../../../inc/themes/material-blue/account.inc:230 +#: ../../../../inc/themes/material-blue/config.inc:226 #: ../../../../inc/themes/material-blue/profiles.inc:60 msgid "Archivos" msgstr "Files" #: ../../../../inc/themes/classic/account.inc:201 -#: ../../../../inc/themes/material-blue/account.inc:232 +#: ../../../../inc/themes/material-blue/account.inc:243 msgid "Soltar archivos aquí (max. 5) o click para seleccionar" msgstr "Drop files here (max. 5) or click to select" #: ../../../../inc/themes/classic/account.inc:201 -#: ../../../../inc/themes/classic/config.inc:177 -#: ../../../../inc/themes/material-blue/account.inc:232 -#: ../../../../inc/themes/material-blue/config.inc:256 +#: ../../../../inc/themes/classic/config.inc:193 +#: ../../../../inc/themes/material-blue/account.inc:243 +#: ../../../../inc/themes/material-blue/config.inc:274 msgid "Tamaño máximo de archivo" msgstr "Maximum file size" #: ../../../../inc/themes/classic/account.inc:213 -#: ../../../../inc/themes/material-blue/account.inc:244 +#: ../../../../inc/themes/material-blue/account.inc:255 msgid "Historial" msgstr "History" #: ../../../../inc/themes/classic/account.inc:232 -#: ../../../../inc/themes/material-blue/account.inc:263 +#: ../../../../inc/themes/material-blue/account.inc:274 msgid "Seleccionar fecha" msgstr "Select date" #: ../../../../inc/themes/classic/account.inc:241 #: ../../../../inc/themes/classic/users.inc:135 -#: ../../../../inc/themes/material-blue/account.inc:272 +#: ../../../../inc/themes/material-blue/account.inc:283 #: ../../../../inc/themes/material-blue/users.inc:171 msgid "Última Modificación" msgstr "Last Modification" #: ../../../../inc/themes/classic/account.inc:243 -#: ../../../../inc/themes/material-blue/account.inc:274 +#: ../../../../inc/themes/material-blue/account.inc:285 msgid "por" msgstr "by" #: ../../../../inc/themes/classic/account.inc:253 -#: ../../../../inc/themes/material-blue/account.inc:284 +#: ../../../../inc/themes/material-blue/account.inc:295 msgid "Visitas" msgstr "Visits" #: ../../../../inc/themes/classic/account.inc:257 -#: ../../../../inc/themes/material-blue/account.inc:288 +#: ../../../../inc/themes/material-blue/account.inc:299 msgid "Fecha Alta" msgstr "Date Added" #: ../../../../inc/themes/classic/account.inc:261 -#: ../../../../inc/themes/material-blue/account.inc:292 +#: ../../../../inc/themes/material-blue/account.inc:303 msgid "Creador" msgstr "Creator" #: ../../../../inc/themes/classic/account.inc:265 -#: ../../../../inc/themes/material-blue/account.inc:296 +#: ../../../../inc/themes/material-blue/account.inc:200 +#: ../../../../inc/themes/material-blue/account.inc:307 msgid "Grupo Principal" msgstr "Main Group" #: ../../../../inc/themes/classic/account.inc:270 -#: ../../../../inc/themes/material-blue/account.inc:301 +#: ../../../../inc/themes/material-blue/account.inc:312 msgid "Usuarios Secundarios" msgstr "Secondary Users" #: ../../../../inc/themes/classic/account.inc:289 -#: ../../../../inc/themes/material-blue/account.inc:320 +#: ../../../../inc/themes/material-blue/account.inc:331 msgid "Grupos Secundarios" msgstr "Secondary Groups" #: ../../../../inc/themes/classic/account.inc:309 -#: ../../../../inc/themes/material-blue/account.inc:340 +#: ../../../../inc/themes/material-blue/account.inc:351 msgid "Fecha Edición" msgstr "Date Modified" #: ../../../../inc/themes/classic/account.inc:313 -#: ../../../../inc/themes/material-blue/account.inc:344 +#: ../../../../inc/themes/material-blue/account.inc:355 msgid "Editor" msgstr "Editor" #: ../../../../inc/themes/classic/account.inc:340 -#: ../../../../inc/themes/material-blue/account.inc:408 +#: ../../../../inc/themes/material-blue/account.inc:419 msgid "Restaurar cuenta desde este punto" msgstr "Restore account from this point" @@ -2677,15 +2687,15 @@ msgstr "Restore account from this point" #: ../../../../inc/themes/classic/account.inc:435 #: ../../../../inc/themes/classic/search.inc:105 #: ../../../../inc/themes/classic/search.inc:184 -#: ../../../../inc/themes/material-blue/account.inc:374 -#: ../../../../inc/themes/material-blue/account.inc:445 +#: ../../../../inc/themes/material-blue/account.inc:385 +#: ../../../../inc/themes/material-blue/account.inc:456 #: ../../../../inc/themes/material-blue/search.inc:118 #: ../../../../inc/themes/material-blue/search.inc:197 msgid "Copiar Clave en Portapapeles" msgstr "Copy Password to Clipboard" #: ../../../../inc/themes/classic/account.inc:368 -#: ../../../../inc/themes/material-blue/account.inc:388 +#: ../../../../inc/themes/material-blue/account.inc:399 msgid "Ver Actual" msgstr "View Current" @@ -2698,21 +2708,21 @@ msgstr "Back" #: ../../../../inc/themes/classic/account.inc:380 #: ../../../../inc/themes/classic/search.inc:117 -#: ../../../../inc/themes/material-blue/account.inc:398 +#: ../../../../inc/themes/material-blue/account.inc:409 #: ../../../../inc/themes/material-blue/search.inc:130 msgid "Modificar Cuenta" msgstr "Edit Account" #: ../../../../inc/themes/classic/account.inc:385 #: ../../../../inc/themes/classic/search.inc:138 -#: ../../../../inc/themes/material-blue/account.inc:402 +#: ../../../../inc/themes/material-blue/account.inc:413 #: ../../../../inc/themes/material-blue/search.inc:150 msgid "Solicitar Modificación" msgstr "Request Modification" #: ../../../../inc/themes/classic/account.inc:392 #: ../../../../inc/themes/classic/categories.inc:34 -#: ../../../../inc/themes/classic/config.inc:259 +#: ../../../../inc/themes/classic/config.inc:275 #: ../../../../inc/themes/classic/customers.inc:34 #: ../../../../inc/themes/classic/editpass.inc:51 #: ../../../../inc/themes/classic/encryption.inc:102 @@ -2724,9 +2734,9 @@ msgstr "Request Modification" #: ../../../../inc/themes/classic/users.inc:160 #: ../../../../inc/themes/classic/userspass.inc:35 #: ../../../../inc/themes/classic/wiki.inc:110 -#: ../../../../inc/themes/material-blue/account.inc:414 +#: ../../../../inc/themes/material-blue/account.inc:425 #: ../../../../inc/themes/material-blue/categories.inc:43 -#: ../../../../inc/themes/material-blue/config.inc:372 +#: ../../../../inc/themes/material-blue/config.inc:390 #: ../../../../inc/themes/material-blue/customers.inc:43 #: ../../../../inc/themes/material-blue/editpass.inc:60 #: ../../../../inc/themes/material-blue/groups.inc:58 @@ -2741,18 +2751,18 @@ msgid "Guardar" msgstr "Save" #: ../../../../inc/themes/classic/account.inc:402 -#: ../../../../inc/themes/material-blue/account.inc:424 +#: ../../../../inc/themes/material-blue/account.inc:435 msgid "Seleccionar grupos secundarios" msgstr "Select secondary groups" #: ../../../../inc/themes/classic/account.inc:406 -#: ../../../../inc/themes/material-blue/account.inc:427 +#: ../../../../inc/themes/material-blue/account.inc:438 msgid "Seleccionar usuarios" msgstr "Select users" #: ../../../../inc/themes/classic/account.inc:439 #: ../../../../inc/themes/classic/search.inc:188 -#: ../../../../inc/themes/material-blue/account.inc:449 +#: ../../../../inc/themes/material-blue/account.inc:460 #: ../../../../inc/themes/material-blue/search.inc:201 msgid "Clave Copiada al Portapapeles" msgstr "Password Copied to Clipboard" @@ -2977,34 +2987,48 @@ msgid "" msgstr "Check for application updates (only for administrators)." #: ../../../../inc/themes/classic/config.inc:106 -#: ../../../../inc/themes/material-blue/config.inc:127 +#: ../../../../inc/themes/material-blue/config.inc:120 +msgid "Comprobar notificaciones" +msgstr "Check for notices" + +#: ../../../../inc/themes/classic/config.inc:110 +#: ../../../../inc/themes/material-blue/config.inc:124 +msgid "" +"Comprobar si existen notificaciones de seguridad o avisos de sysPass (sólo " +"para los usuarios administradores)." +msgstr "" +"Check if there are sysPass security or warning notices (only for " +"administrators)." + +#: ../../../../inc/themes/classic/config.inc:122 +#: ../../../../inc/themes/material-blue/config.inc:145 msgid "Nombre de cuenta como enlace" msgstr "Account name as link" -#: ../../../../inc/themes/classic/config.inc:110 -#: ../../../../inc/themes/material-blue/config.inc:131 +#: ../../../../inc/themes/classic/config.inc:126 +#: ../../../../inc/themes/material-blue/config.inc:149 msgid "" "Habilita el nombre de la cuenta de la búsqueda, como enlace a los detalles " "de la cuenta." msgstr "Enables the account name as a link to account details." -#: ../../../../inc/themes/classic/config.inc:122 -#: ../../../../inc/themes/material-blue/config.inc:214 +#: ../../../../inc/themes/classic/config.inc:138 +#: ../../../../inc/themes/material-blue/config.inc:232 msgid "Gestión de archivos" msgstr "Files management" -#: ../../../../inc/themes/classic/config.inc:126 -#: ../../../../inc/themes/material-blue/config.inc:218 +#: ../../../../inc/themes/classic/config.inc:142 +#: ../../../../inc/themes/material-blue/config.inc:236 msgid "Habilita la subida/descarga de archivos para las cuentas." msgstr "Enables the uploads/downloads of account files." -#: ../../../../inc/themes/classic/config.inc:138 -#: ../../../../inc/themes/material-blue/config.inc:146 +#: ../../../../inc/themes/classic/config.inc:154 +#: ../../../../inc/themes/material-blue/config.inc:164 msgid "Búsquedas globales" msgstr "Global searches" -#: ../../../../inc/themes/classic/config.inc:142 -#: ../../../../inc/themes/material-blue/config.inc:150 +#: ../../../../inc/themes/classic/config.inc:158 +#: ../../../../inc/themes/material-blue/config.inc:168 msgid "" "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." @@ -3012,23 +3036,23 @@ msgstr "" "Allows to the users to do searches that includes all account, even if they " "don't have permissions, but they can't view the accounts details." -#: ../../../../inc/themes/classic/config.inc:154 -#: ../../../../inc/themes/material-blue/config.inc:233 +#: ../../../../inc/themes/classic/config.inc:170 +#: ../../../../inc/themes/material-blue/config.inc:251 msgid "Extensiones de archivos permitidas" msgstr "Allowed file extensions" -#: ../../../../inc/themes/classic/config.inc:158 -#: ../../../../inc/themes/material-blue/config.inc:237 +#: ../../../../inc/themes/classic/config.inc:174 +#: ../../../../inc/themes/material-blue/config.inc:255 msgid "Extensiones permitidas para la subida de archivos." msgstr "Allowed file extensions for file uploading." -#: ../../../../inc/themes/classic/config.inc:162 -#: ../../../../inc/themes/material-blue/config.inc:241 +#: ../../../../inc/themes/classic/config.inc:178 +#: ../../../../inc/themes/material-blue/config.inc:259 msgid "Se permite un máximo de 4 caracteres." msgstr "Max 4 characters allowed." -#: ../../../../inc/themes/classic/config.inc:166 -#: ../../../../inc/themes/material-blue/config.inc:245 +#: ../../../../inc/themes/classic/config.inc:182 +#: ../../../../inc/themes/material-blue/config.inc:263 msgid "" "Escribir extensión y pulsar intro para añadir. Es necesario guardar la " "configuración." @@ -3036,57 +3060,57 @@ msgstr "" "Write the extension and press enter to add. You need to save the " "configuration." -#: ../../../../inc/themes/classic/config.inc:181 -#: ../../../../inc/themes/material-blue/config.inc:260 +#: ../../../../inc/themes/classic/config.inc:197 +#: ../../../../inc/themes/material-blue/config.inc:278 msgid "Establece el tamaño máximo para subir archivos." msgstr "Set the maximum file size for uploading." -#: ../../../../inc/themes/classic/config.inc:185 -#: ../../../../inc/themes/material-blue/config.inc:264 +#: ../../../../inc/themes/classic/config.inc:201 +#: ../../../../inc/themes/material-blue/config.inc:282 msgid "El máximo absuluto es de 16MB." msgstr "The absolute maximum is 16MB." -#: ../../../../inc/themes/classic/config.inc:196 -#: ../../../../inc/themes/material-blue/config.inc:165 +#: ../../../../inc/themes/classic/config.inc:212 +#: ../../../../inc/themes/material-blue/config.inc:183 msgid "Resultados por página" msgstr "Results per page" -#: ../../../../inc/themes/classic/config.inc:200 -#: ../../../../inc/themes/material-blue/config.inc:169 +#: ../../../../inc/themes/classic/config.inc:216 +#: ../../../../inc/themes/material-blue/config.inc:187 msgid "Número de resultados por página a mostrar, al realizar una búsqueda." msgstr "Number of results per page to show when doing searches." -#: ../../../../inc/themes/classic/config.inc:211 +#: ../../../../inc/themes/classic/config.inc:227 msgid "Resultados en Tarjetas" msgstr "Results like Cards" -#: ../../../../inc/themes/classic/config.inc:215 +#: ../../../../inc/themes/classic/config.inc:231 msgid "Muestra los resultados de búsqueda de cuentas en formato tarjeta." msgstr "Enables to show account's search results like a card format." -#: ../../../../inc/themes/classic/config.inc:227 -#: ../../../../inc/themes/material-blue/config.inc:185 +#: ../../../../inc/themes/classic/config.inc:243 +#: ../../../../inc/themes/material-blue/config.inc:203 msgid "Imagen para mostrar clave" msgstr "Image to show password" -#: ../../../../inc/themes/classic/config.inc:231 -#: ../../../../inc/themes/material-blue/config.inc:189 +#: ../../../../inc/themes/classic/config.inc:247 +#: ../../../../inc/themes/material-blue/config.inc:207 msgid "Generar una imagen con el texto de la clave de la cuenta." msgstr "Generate an image with a text of the account password." -#: ../../../../inc/themes/classic/config.inc:234 -#: ../../../../inc/themes/material-blue/config.inc:192 +#: ../../../../inc/themes/classic/config.inc:250 +#: ../../../../inc/themes/material-blue/config.inc:210 msgid "Util para entornos donde copiar la clave supone un riesgo de seguridad." msgstr "" "Useful for environments where copy password to clipboard is a security risk." -#: ../../../../inc/themes/classic/config.inc:269 -#: ../../../../inc/themes/material-blue/config.inc:382 +#: ../../../../inc/themes/classic/config.inc:285 +#: ../../../../inc/themes/material-blue/config.inc:400 msgid "Añadir extensión" msgstr "Add extension" -#: ../../../../inc/themes/classic/config.inc:270 -#: ../../../../inc/themes/material-blue/config.inc:383 +#: ../../../../inc/themes/classic/config.inc:286 +#: ../../../../inc/themes/material-blue/config.inc:401 msgid "Eliminar extensión" msgstr "Delete extension" @@ -3109,8 +3133,8 @@ msgstr "Customer description" #: ../../../../inc/themes/material-blue/encryption.inc:8 #: ../../../../inc/themes/material-blue/install.inc:49 #: ../../../../inc/themes/material-blue/install.inc:56 -#: ../../../../inc/themes/material-blue/login.inc:25 -#: ../../../../inc/themes/material-blue/login.inc:47 +#: ../../../../inc/themes/material-blue/login.inc:24 +#: ../../../../inc/themes/material-blue/login.inc:46 msgid "Clave Maestra" msgstr "Master Password" @@ -3287,8 +3311,8 @@ msgstr "Next page" msgid "Última página" msgstr "Last page" -#: ../../../../inc/themes/classic/files.inc:17 -#: ../../../../inc/themes/material-blue/files.inc:17 +#: ../../../../inc/themes/classic/files.inc:22 +#: ../../../../inc/themes/material-blue/files.inc:21 msgid "Ver Archivo" msgstr "View File" @@ -3486,26 +3510,26 @@ msgstr "sysPass version" msgid "Base de Datos" msgstr "Database" -#: ../../../../inc/themes/classic/info.inc:29 -#: ../../../../inc/themes/material-blue/info.inc:29 +#: ../../../../inc/themes/classic/info.inc:30 +#: ../../../../inc/themes/material-blue/info.inc:30 msgid "PHP" msgstr "PHP" -#: ../../../../inc/themes/classic/info.inc:34 -#: ../../../../inc/themes/material-blue/info.inc:34 +#: ../../../../inc/themes/classic/info.inc:35 +#: ../../../../inc/themes/material-blue/info.inc:35 msgid "Extensiones" msgstr "Extensions" -#: ../../../../inc/themes/classic/info.inc:41 -#: ../../../../inc/themes/material-blue/info.inc:41 +#: ../../../../inc/themes/classic/info.inc:37 +#: ../../../../inc/themes/material-blue/info.inc:37 msgid "Memoria Usada" msgstr "Used Memory" -#: ../../../../inc/themes/classic/info.inc:49 +#: ../../../../inc/themes/classic/info.inc:44 #: ../../../../inc/themes/classic/ldap.inc:32 #: ../../../../inc/themes/classic/mail.inc:21 -#: ../../../../inc/themes/material-blue/config.inc:300 -#: ../../../../inc/themes/material-blue/info.inc:49 +#: ../../../../inc/themes/material-blue/config.inc:318 +#: ../../../../inc/themes/material-blue/info.inc:44 #: ../../../../inc/themes/material-blue/ldap.inc:35 #: ../../../../inc/themes/material-blue/ldap.inc:58 #: ../../../../inc/themes/material-blue/ldap.inc:86 @@ -3539,7 +3563,7 @@ msgid "Login de usuario con permisos de administrador de MySQL" msgstr "User login with with database administrative rights" #: ../../../../inc/themes/classic/install.inc:85 -#: ../../../../inc/themes/material-blue/install.inc:103 +#: ../../../../inc/themes/material-blue/install.inc:102 msgid "Nombre de la base de datos para sysPass" msgstr "sysPass database name" @@ -3548,18 +3572,18 @@ msgid "Nombre del servidor de la base de datos de sysPass" msgstr "sysPass database server name" #: ../../../../inc/themes/classic/install.inc:99 -#: ../../../../inc/themes/material-blue/install.inc:121 +#: ../../../../inc/themes/material-blue/install.inc:120 msgid "Modo Hosting" msgstr "Hosting Mode" #: ../../../../inc/themes/classic/install.inc:106 -#: ../../../../inc/themes/material-blue/install.inc:128 +#: ../../../../inc/themes/material-blue/install.inc:127 msgid "No crea ni verifica los permisos del usuario sobre la BBDD" msgstr "It does not create or verify the user's permissions on the DB" #: ../../../../inc/themes/classic/install.inc:110 +#: ../../../../inc/themes/material-blue/install.inc:134 #: ../../../../inc/themes/material-blue/install.inc:135 -#: ../../../../inc/themes/material-blue/install.inc:136 msgid "Instalar" msgstr "Install" @@ -3694,7 +3718,7 @@ msgid "Habilitar notificaciones de correo" msgstr "Enable email notifications" #: ../../../../inc/themes/classic/mail.inc:29 -#: ../../../../inc/themes/material-blue/config.inc:314 +#: ../../../../inc/themes/material-blue/config.inc:332 #: ../../../../inc/themes/material-blue/mail.inc:36 #: ../../../../inc/themes/material-blue/mail.inc:43 msgid "Puerto" @@ -3959,7 +3983,7 @@ msgid "Descripción de la petición" msgstr "Request description" #: ../../../../inc/themes/classic/request.inc:33 -#: ../../../../inc/themes/material-blue/account.inc:392 +#: ../../../../inc/themes/material-blue/account.inc:403 #: ../../../../inc/themes/material-blue/editpass.inc:55 #: ../../../../inc/themes/material-blue/request.inc:42 msgid "Atrás" @@ -4026,18 +4050,18 @@ msgid "Buscar cuentas a las que 'group_name' tenga acceso" msgstr "Search accounts for which 'group_name' has access rights" #: ../../../../inc/themes/classic/searchbox.inc:18 -#: ../../../../inc/themes/material-blue/searchbox.inc:24 -#: ../../../../inc/themes/material-blue/searchbox.inc:27 +#: ../../../../inc/themes/material-blue/searchbox.inc:25 +#: ../../../../inc/themes/material-blue/searchbox.inc:28 msgid "Búsqueda global" msgstr "Global search" #: ../../../../inc/themes/classic/searchbox.inc:41 -#: ../../../../inc/themes/material-blue/searchbox.inc:53 +#: ../../../../inc/themes/material-blue/searchbox.inc:54 msgid "CPP" msgstr "APP" #: ../../../../inc/themes/classic/searchbox.inc:41 -#: ../../../../inc/themes/material-blue/searchbox.inc:53 +#: ../../../../inc/themes/material-blue/searchbox.inc:54 msgid "Cuentas por página" msgstr "Accounts per page" @@ -4098,13 +4122,13 @@ msgstr "Preferences" msgid "Salir" msgstr "Sign out" -#: ../../../../inc/themes/classic/update.inc:8 -#: ../../../../inc/themes/material-blue/update.inc:8 +#: ../../../../inc/themes/classic/update.inc:18 +#: ../../../../inc/themes/material-blue/update.inc:20 msgid "Actualizado" msgstr "Updated" -#: ../../../../inc/themes/classic/update.inc:10 -#: ../../../../inc/themes/material-blue/update.inc:10 +#: ../../../../inc/themes/classic/update.inc:23 +#: ../../../../inc/themes/material-blue/update.inc:22 msgid "Error al comprobar actualizaciones" msgstr "Error while checking for updates" @@ -4281,35 +4305,35 @@ msgstr "Password (Repeat)" msgid "Realizar" msgstr "Perform" -#: ../../../../inc/themes/material-blue/config.inc:179 +#: ../../../../inc/themes/material-blue/config.inc:197 msgid "Número de resultados por página" msgstr "Results per page" -#: ../../../../inc/themes/material-blue/config.inc:274 +#: ../../../../inc/themes/material-blue/config.inc:292 msgid "Tamaño máximo de archivo en bytes" msgstr "Maximum file size in bytes" -#: ../../../../inc/themes/material-blue/config.inc:281 +#: ../../../../inc/themes/material-blue/config.inc:299 msgid "Proxy" msgstr "Proxy" -#: ../../../../inc/themes/material-blue/config.inc:287 +#: ../../../../inc/themes/material-blue/config.inc:305 msgid "Usar Proxy" msgstr "Use Proxy" -#: ../../../../inc/themes/material-blue/config.inc:308 +#: ../../../../inc/themes/material-blue/config.inc:326 msgid "Servidor proxy" msgstr "Proxy server" -#: ../../../../inc/themes/material-blue/config.inc:322 +#: ../../../../inc/themes/material-blue/config.inc:340 msgid "Puerto del servidor proxy" msgstr "Proxy server port" -#: ../../../../inc/themes/material-blue/config.inc:336 +#: ../../../../inc/themes/material-blue/config.inc:354 msgid "Usuario del servidor proxy" msgstr "Proxy server user" -#: ../../../../inc/themes/material-blue/config.inc:350 +#: ../../../../inc/themes/material-blue/config.inc:368 msgid "Clave del servidor proxy" msgstr "Proxy server password" @@ -4341,15 +4365,15 @@ msgstr "An user with MySQL admin rights" msgid "Clave acceso BBDD" msgstr "DB access password" -#: ../../../../inc/themes/material-blue/install.inc:98 +#: ../../../../inc/themes/material-blue/install.inc:97 msgid "Nombre BBDD para sysPass" msgstr "sysPass database name" -#: ../../../../inc/themes/material-blue/install.inc:110 +#: ../../../../inc/themes/material-blue/install.inc:109 msgid "Servidor BBDD para sysPass" msgstr "sysPass database server" -#: ../../../../inc/themes/material-blue/install.inc:115 +#: ../../../../inc/themes/material-blue/install.inc:114 msgid "Nombre del servidor para instalar la base de datos de sysPass" msgstr "Server name to install the sysPass database" @@ -4401,6 +4425,10 @@ msgstr "Make accounts import" msgid "Importar" msgstr "Import" +#: ../../../../inc/themes/material-blue/searchbox.inc:20 +msgid "Buscar cuentas con archivos con el nombre 'file_name'" +msgstr "Search for accounts which contains a file with the name 'file_name'" + #: ../../../../inc/themes/material-blue/security.inc:4 msgid "Autentificación" msgstr "Authentication" diff --git a/inc/themes/classic/config.inc b/inc/themes/classic/config.inc index 8e4dcc1a..58c6730b 100644 --- a/inc/themes/classic/config.inc +++ b/inc/themes/classic/config.inc @@ -101,6 +101,22 @@ class="checkbox" /> + + + + + + + + + /> + + diff --git a/inc/themes/classic/css/styles.css b/inc/themes/classic/css/styles.css index 8d05a5c5..bb319f5b 100644 --- a/inc/themes/classic/css/styles.css +++ b/inc/themes/classic/css/styles.css @@ -1207,6 +1207,8 @@ footer #updates { padding-left: 20px; } +footer #updates div {display: inline-block; margin: 0 .5em} + footer #status { float: left; width: 20%; diff --git a/inc/themes/classic/update.inc b/inc/themes/classic/update.inc index e2ce4d8e..e5f532fc 100644 --- a/inc/themes/classic/update.inc +++ b/inc/themes/classic/update.inc @@ -1,12 +1,27 @@ - - - -    -
cloud_download
-
- -
check_circle
- -
warning
- + +
+ + + +    +
cloud_download
+
+ +
+ check_circle +
+ +
warning +
+ +
diff --git a/inc/themes/classic/userspass.inc b/inc/themes/classic/userspass.inc index 683d44aa..4c1bf789 100644 --- a/inc/themes/classic/userspass.inc +++ b/inc/themes/classic/userspass.inc @@ -18,7 +18,7 @@ - diff --git a/inc/themes/material-blue/config.inc b/inc/themes/material-blue/config.inc index d00e6eee..1aedecaa 100644 --- a/inc/themes/material-blue/config.inc +++ b/inc/themes/material-blue/config.inc @@ -115,6 +115,24 @@ + + + +
help_outline
+
+

+ +

+
+ + + + +
diff --git a/inc/themes/material-blue/css/styles.css b/inc/themes/material-blue/css/styles.css index cf1ef54a..476080ba 100644 --- a/inc/themes/material-blue/css/styles.css +++ b/inc/themes/material-blue/css/styles.css @@ -1154,6 +1154,8 @@ footer #updates { cursor: pointer; } +footer #updates div {display: inline-block; margin: 0 .5em} + footer #status { float: right; text-align: right; diff --git a/inc/themes/material-blue/searchbox.inc b/inc/themes/material-blue/searchbox.inc index 09796892..4157d868 100644 --- a/inc/themes/material-blue/searchbox.inc +++ b/inc/themes/material-blue/searchbox.inc @@ -16,7 +16,8 @@

  • :user [login] >
  • -
  • :group [group_name] >
  • +
  • :group [file_name] >
  • +
  • :file [file_name] >
diff --git a/inc/themes/material-blue/update.inc b/inc/themes/material-blue/update.inc index fa642000..cf396477 100644 --- a/inc/themes/material-blue/update.inc +++ b/inc/themes/material-blue/update.inc @@ -1,12 +1,26 @@ - - - -    -
cloud_download
-
- -
check_circle
- -
warning
- + +
+ + + +    +
cloud_download
+
+ +
check_circle
+ +
+ warning +
+ +
diff --git a/inc/themes/material-blue/users.inc b/inc/themes/material-blue/users.inc index 101b19e5..0af0a222 100644 --- a/inc/themes/material-blue/users.inc +++ b/inc/themes/material-blue/users.inc @@ -99,7 +99,7 @@
- diff --git a/inc/themes/material-blue/userspass.inc b/inc/themes/material-blue/userspass.inc index 46a3e12a..c0527338 100644 --- a/inc/themes/material-blue/userspass.inc +++ b/inc/themes/material-blue/userspass.inc @@ -8,7 +8,7 @@
-
@@ -19,7 +19,7 @@
- diff --git a/web/ConfigC.class.php b/web/ConfigC.class.php index 411cfacd..72f22c4b 100644 --- a/web/ConfigC.class.php +++ b/web/ConfigC.class.php @@ -94,6 +94,7 @@ class ConfigC extends Controller implements ActionsInterface $this->view->assign('chkDebug', (\SP\Config::getValue('debug')) ? 'checked="checked"' : ''); $this->view->assign('chkMaintenance', (\SP\Config::getValue('maintenance')) ? 'checked="checked"' : ''); $this->view->assign('chkUpdates', (\SP\Config::getValue('checkupdates')) ? 'checked="checked"' : ''); + $this->view->assign('chkNotices', (\SP\Config::getValue('checknotices')) ? 'checked="checked"' : ''); $this->view->assign('sessionTimeout', \SP\Config::getValue('session_timeout')); // Files diff --git a/web/MainC.class.php b/web/MainC.class.php index d1219e5e..6b72272c 100644 --- a/web/MainC.class.php +++ b/web/MainC.class.php @@ -99,7 +99,11 @@ class MainC extends Controller implements ActionsInterface */ public function getMain() { - $onLoad = array('doAction(' . self::ACTION_ACC_SEARCH . ')', 'checkUpds()'); + $onLoad = array('doAction(' . self::ACTION_ACC_SEARCH . ')'); + + if(Session::getUserIsAdminApp()){ + $onLoad[] = 'checkUpds()'; + } $this->view->assign('onLoad', implode(';', $onLoad)); @@ -342,14 +346,7 @@ class MainC extends Controller implements ActionsInterface */ public function getCheckUpdates() { - // Comprobar una vez por sesión -// if (!\SP\Session::getUpdated()) { - $updates = \SP\Util::checkUpdates(); -// \SP\Session::setUpdated(true); -// } - - // Forzar la escritura de la sesión -// session_write_close(); + $updates = \SP\Util::checkUpdates(); $this->view->addTemplate('update'); @@ -366,5 +363,21 @@ class MainC extends Controller implements ActionsInterface $this->view->assign('status', $updates); } + $notices = \SP\Util::checkNotices(); + $numNotices = count($notices); + $noticesTitle = ''; + + if ($notices !== false && $numNotices > 0){ + $noticesTitle = 'sysPass Notices

'; + + foreach ($notices as $notice){ + $noticesTitle .= sprintf('%s
', $notice[0]); + } + + } + + $this->view->assign('numNotices', $numNotices); + $this->view->assign('noticesTitle', $noticesTitle); + } } \ No newline at end of file