diff --git a/app/locales/en_US/LC_MESSAGES/messages.mo b/app/locales/en_US/LC_MESSAGES/messages.mo index 67ee44ed..ec32c0d8 100644 Binary files a/app/locales/en_US/LC_MESSAGES/messages.mo and b/app/locales/en_US/LC_MESSAGES/messages.mo differ diff --git a/app/locales/en_US/LC_MESSAGES/messages.po b/app/locales/en_US/LC_MESSAGES/messages.po index 32fad2e3..87602d6f 100644 --- a/app/locales/en_US/LC_MESSAGES/messages.po +++ b/app/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: 2018-08-30 22:51+0100\n" -"PO-Revision-Date: 2018-08-30 22:52+0100\n" +"POT-Creation-Date: 2018-08-31 01:42+0100\n" +"PO-Revision-Date: 2018-08-31 01:44+0100\n" "Last-Translator: nuxsmin \n" "Language-Team: nuxsmin@syspass.org\n" "Language: en_US\n" @@ -103,7 +103,7 @@ msgstr "Action" #: ../../../../lib/SP/Services/Ldap/LdapImportService.php:230 #: ../../../modules/web/Controllers/Helpers/Account/AccountSearchHelper.php:235 #: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:102 -#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:101 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:102 #: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:107 #: ../../../modules/web/Controllers/LoginController.php:102 #: ../../../modules/web/Controllers/UserController.php:278 @@ -190,8 +190,8 @@ msgstr "The key file does not exist" #: ../../../../lib/SP/Repositories/AuthToken/AuthTokenRepository.php:333 #: ../../../../lib/SP/Repositories/AuthToken/AuthTokenRepository.php:388 #: ../../../../lib/SP/Repositories/AuthToken/AuthTokenRepository.php:416 -#: ../../../../lib/SP/Services/Account/AccountService.php:240 -#: ../../../../lib/SP/Services/Account/AccountService.php:245 +#: ../../../../lib/SP/Services/Account/AccountService.php:226 +#: ../../../../lib/SP/Services/Account/AccountService.php:231 #: ../../../../lib/SP/Services/Api/ApiService.php:129 #: ../../../../lib/SP/Services/Api/ApiService.php:227 #: ../../../../lib/SP/Services/Api/ApiService.php:235 @@ -227,7 +227,7 @@ msgstr "An object is needed" msgid "Observador no inicializado" msgstr "Observer not initialized" -#: ../../../../lib/SP/Core/UI/Theme.php:191 +#: ../../../../lib/SP/Core/UI/Theme.php:193 msgid "Clase no válida para iconos" msgstr "Invalid icons class" @@ -331,12 +331,12 @@ msgstr "New Plugin" #: ../../../modules/web/themes/material-blue/views/itemshow/category.inc:16 #: ../../../modules/web/themes/material-blue/views/itemshow/client.inc:19 #: ../../../modules/web/themes/material-blue/views/itemshow/custom_field.inc:19 -#: ../../../modules/web/themes/material-blue/views/itemshow/plugin.inc:13 #: ../../../modules/web/themes/material-blue/views/itemshow/tag.inc:16 #: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:29 #: ../../../modules/web/themes/material-blue/views/itemshow/user_group.inc:19 #: ../../../modules/web/themes/material-blue/views/itemshow/user_pass.inc:15 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:528 +#: ../../../modules/web/themes/material-blue/views/plugin/plugin.inc:16 msgid "Nombre" msgstr "Name" @@ -398,7 +398,7 @@ msgstr "Error while searching the group RDN" #: ../../../../lib/SP/Providers/Auth/Ldap/LdapStd.php:115 #: ../../../../lib/SP/Providers/Auth/Ldap/LdapStd.php:127 #: ../../../../lib/SP/Services/Ldap/LdapImportService.php:137 -#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:102 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:103 #: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:114 #: ../../../modules/web/Controllers/UserGroupController.php:220 #: ../../../modules/web/themes/material-blue/views/_partials/fixed-header.inc:137 @@ -500,7 +500,7 @@ msgstr "Error while deleting the account" #: ../../../../lib/SP/Repositories/Account/AccountHistoryRepository.php:292 #: ../../../../lib/SP/Repositories/Account/AccountRepository.php:455 -#: ../../../../lib/SP/Services/Account/AccountService.php:542 +#: ../../../../lib/SP/Services/Account/AccountService.php:583 msgid "Error al eliminar las cuentas" msgstr "Error while deleting the accounts" @@ -516,7 +516,7 @@ msgid "Error al crear la cuenta" msgstr "Error while creating the account" #: ../../../../lib/SP/Repositories/Account/AccountRepository.php:303 -#: ../../../../lib/SP/Services/Account/AccountService.php:508 +#: ../../../../lib/SP/Services/Account/AccountService.php:549 msgid "Error al restaurar cuenta" msgstr "Error on restoring the account" @@ -953,21 +953,21 @@ msgstr "Error while deleting the files" msgid "Archivo no encontrado" msgstr "File not found" -#: ../../../../lib/SP/Services/Account/AccountService.php:95 -#: ../../../../lib/SP/Services/Account/AccountService.php:598 -#: ../../../../lib/SP/Services/Account/AccountService.php:653 -msgid "La cuenta no existe" -msgstr "The account doesn't exist" - -#: ../../../../lib/SP/Services/Account/AccountService.php:182 -#: ../../../../lib/SP/Services/Account/AccountService.php:525 +#: ../../../../lib/SP/Services/Account/AccountService.php:164 +#: ../../../../lib/SP/Services/Account/AccountService.php:566 msgid "Cuenta no encontrada" msgstr "Account not found" -#: ../../../../lib/SP/Services/Account/AccountService.php:233 +#: ../../../../lib/SP/Services/Account/AccountService.php:219 msgid "Clave maestra no establecida" msgstr "Master password not set" +#: ../../../../lib/SP/Services/Account/AccountService.php:282 +#: ../../../../lib/SP/Services/Account/AccountService.php:639 +#: ../../../../lib/SP/Services/Account/AccountService.php:694 +msgid "La cuenta no existe" +msgstr "The account doesn't exist" + #: ../../../../lib/SP/Services/Api/ApiRequest.php:79 #: ../../../../lib/SP/Services/Api/ApiRequest.php:113 #: ../../../../lib/SP/Services/Api/ApiService.php:229 @@ -1045,10 +1045,10 @@ msgstr "The Master Password either is not saved or is wrong" #: ../../../modules/web/Controllers/AccountFileController.php:233 #: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:104 #: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:104 -#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:100 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:101 #: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:117 -#: ../../../modules/web/Controllers/ItemPresetController.php:297 -#: ../../../modules/web/Controllers/ItemPresetController.php:336 +#: ../../../modules/web/Controllers/ItemPresetController.php:299 +#: ../../../modules/web/Controllers/ItemPresetController.php:338 #: ../../../modules/web/themes/material-blue/views/itemshow/custom_field.inc:31 #: ../../../modules/web/themes/material-blue/views/itemshow/custom_field.inc:33 #: ../../../modules/web/themes/material-blue/views/notification/notification.inc:16 @@ -1246,7 +1246,7 @@ msgstr "Clients" #: ../../../../lib/SP/Services/CustomField/CustomFieldDefService.php:77 #: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:99 -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:13 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:14 #: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-permission.inc:4 #: ../../../modules/web/themes/material-blue/views/itemshow/user_group.inc:45 #: ../../../modules/web/themes/material-blue/views/itemshow/user_group.inc:47 @@ -1257,7 +1257,7 @@ msgstr "Users" #: ../../../../lib/SP/Services/CustomField/CustomFieldDefService.php:78 #: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:90 -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:51 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:52 #: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-permission.inc:43 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:261 msgid "Grupos" @@ -1882,7 +1882,7 @@ msgstr "Parameter" #: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:165 #: ../../../modules/web/Controllers/ConfigBackupController.php:118 #: ../../../modules/web/themes/material-blue/views/config/info.inc:40 -#: ../../../modules/web/themes/material-blue/views/itemshow/plugin.inc:25 +#: ../../../modules/web/themes/material-blue/views/plugin/plugin.inc:28 msgid "Versión" msgstr "Version" @@ -2158,12 +2158,12 @@ msgstr "Option unavailable" #: ../../../modules/web/Controllers/CustomFieldController.php:295 #: ../../../modules/web/Controllers/EventlogController.php:94 #: ../../../modules/web/Controllers/ItemPresetController.php:67 -#: ../../../modules/web/Controllers/ItemPresetController.php:140 -#: ../../../modules/web/Controllers/ItemPresetController.php:175 -#: ../../../modules/web/Controllers/ItemPresetController.php:213 -#: ../../../modules/web/Controllers/ItemPresetController.php:243 -#: ../../../modules/web/Controllers/ItemPresetController.php:282 -#: ../../../modules/web/Controllers/ItemPresetController.php:321 +#: ../../../modules/web/Controllers/ItemPresetController.php:142 +#: ../../../modules/web/Controllers/ItemPresetController.php:177 +#: ../../../modules/web/Controllers/ItemPresetController.php:215 +#: ../../../modules/web/Controllers/ItemPresetController.php:245 +#: ../../../modules/web/Controllers/ItemPresetController.php:284 +#: ../../../modules/web/Controllers/ItemPresetController.php:323 #: ../../../modules/web/Controllers/NotificationController.php:100 #: ../../../modules/web/Controllers/NotificationController.php:160 #: ../../../modules/web/Controllers/NotificationController.php:175 @@ -2172,7 +2172,7 @@ msgstr "Option unavailable" #: ../../../modules/web/Controllers/NotificationController.php:288 #: ../../../modules/web/Controllers/NotificationController.php:315 #: ../../../modules/web/Controllers/NotificationController.php:348 -#: ../../../modules/web/Controllers/PluginController.php:97 +#: ../../../modules/web/Controllers/PluginController.php:98 #: ../../../modules/web/Controllers/PluginController.php:117 #: ../../../modules/web/Controllers/PublicLinkController.php:68 #: ../../../modules/web/Controllers/PublicLinkController.php:100 @@ -2285,9 +2285,9 @@ msgstr "Account" #: ../../../modules/api/Controllers/ClientController.php:155 #: ../../../modules/api/Controllers/TagController.php:118 #: ../../../modules/web/Controllers/Helpers/Grid/EventlogGrid.php:100 -#: ../../../modules/web/Controllers/ItemPresetController.php:265 -#: ../../../modules/web/Controllers/ItemPresetController.php:298 -#: ../../../modules/web/Controllers/ItemPresetController.php:337 +#: ../../../modules/web/Controllers/ItemPresetController.php:267 +#: ../../../modules/web/Controllers/ItemPresetController.php:300 +#: ../../../modules/web/Controllers/ItemPresetController.php:339 #: ../../../modules/web/themes/material-blue/views/account/details.inc:138 #: ../../../modules/web/themes/material-blue/views/account/details.inc:140 msgid "ID" @@ -2516,14 +2516,16 @@ msgstr "Notes about the account" #: ../../../modules/api/Controllers/Help/AccountHelp.php:89 #: ../../../modules/api/Controllers/Help/AccountHelp.php:111 -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:126 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:130 #: ../../../modules/web/themes/material-blue/views/account/search-rows.inc:106 +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-private.inc:19 msgid "Cuenta Privada" msgstr "Private Account" #: ../../../modules/api/Controllers/Help/AccountHelp.php:90 #: ../../../modules/api/Controllers/Help/AccountHelp.php:112 -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:139 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:146 +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-private.inc:38 msgid "Cuenta Privada Grupo" msgstr "Private Account for Group" @@ -2667,7 +2669,7 @@ msgstr "HTTPS" #. (itstool) path: action/text #: ../../../modules/web/Controllers/AccountController.php:253 #: ../../../modules/web/Controllers/AccountController.php:297 -#: ../../../modules/web/Controllers/Helpers/LayoutHelper.php:275 +#: ../../../modules/web/Controllers/Helpers/LayoutHelper.php:276 #: ../../../config/actions.xml:151 msgid "Nueva Cuenta" msgstr "New Account" @@ -3227,7 +3229,7 @@ msgid "No instalado" msgstr "Not installed" #: ../../../modules/web/Controllers/ConfigManagerController.php:361 -#: ../../../modules/web/themes/material-blue/inc/Icons.php:65 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:63 msgid "Información" msgstr "Information" @@ -3337,7 +3339,7 @@ msgstr "Restore account from this point" #: ../../../modules/web/Controllers/Helpers/Account/AccountActionsHelper.php:237 #: ../../../modules/web/Controllers/Helpers/Account/AccountActionsHelper.php:238 -#: ../../../modules/web/themes/material-blue/inc/Icons.php:53 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:51 #: ../../../modules/web/themes/material-blue/views/account/account-editpass.inc:121 msgid "Guardar" msgstr "Save" @@ -3361,7 +3363,7 @@ msgstr "Create Public Link" #: ../../../modules/web/Controllers/Helpers/Account/AccountActionsHelper.php:374 #: ../../../modules/web/Controllers/Helpers/Account/AccountActionsHelper.php:418 #: ../../../modules/web/Controllers/Helpers/Account/AccountActionsHelper.php:419 -#: ../../../modules/web/themes/material-blue/inc/Icons.php:36 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:34 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:64 #: ../../../config/actions.xml:169 ../../../config/actions.xml:259 msgid "Ver Clave" @@ -3429,7 +3431,7 @@ msgstr "Sort by URL / IP" #: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:69 #: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:70 #: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:69 -#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:69 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:70 #: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:83 #: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:71 #: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:70 @@ -3515,13 +3517,11 @@ msgid "Eliminar Categoría" msgstr "Delete Category" #: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:118 -#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:124 #: ../../../config/strings.js.inc:66 msgid "SI" msgstr "YES" #: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:118 -#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:124 #: ../../../config/strings.js.inc:67 msgid "NO" msgstr "NO" @@ -3567,7 +3567,7 @@ msgstr "Delete Field" #. (itstool) path: action/text #: ../../../modules/web/Controllers/Helpers/Grid/EventlogGrid.php:88 -#: ../../../modules/web/Controllers/Helpers/LayoutHelper.php:331 +#: ../../../modules/web/Controllers/Helpers/LayoutHelper.php:318 #: ../../../modules/web/themes/material-blue/views/eventlog/index.inc:1 #: ../../../config/actions.xml:127 msgid "Registro de Eventos" @@ -3650,11 +3650,11 @@ msgstr "Download File" msgid "Eliminar Archivo" msgstr "Delete File" -#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:88 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:89 msgid "Valores Predeterminados" msgstr "Preset Values" -#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:103 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:104 #: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:113 #: ../../../modules/web/Controllers/UserProfileController.php:216 #: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:52 @@ -3665,45 +3665,50 @@ msgstr "Preset Values" msgid "Perfil" msgstr "Profile" -#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:104 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:105 #: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:70 msgid "Prioridad" msgstr "Priority" -#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:105 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:106 #: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:106 msgid "Forzado" msgstr "Forced" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:141 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:140 #: ../../../config/actions.xml:841 msgid "Buscar Valor" msgstr "Search for Value" +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:155 #: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:156 -#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:157 msgid "Nuevo Valor de Permiso" msgstr "New Permission Preset" -#. (itstool) path: action/text +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:176 #: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:177 -#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:178 -#: ../../../modules/web/Controllers/ItemPresetController.php:216 +msgid "Nuevo Valor de Cuenta Privada" +msgstr "New Private Account Preset" + +#. (itstool) path: action/text +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:197 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:198 +#: ../../../modules/web/Controllers/ItemPresetController.php:218 #: ../../../config/actions.xml:859 msgid "Editar Valor" msgstr "Edit Value" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:194 -#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:195 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:214 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:215 #: ../../../config/actions.xml:865 msgid "Eliminar Valor" msgstr "Delete Value" #. (itstool) path: action/text #: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:103 -#: ../../../modules/web/themes/material-blue/inc/Icons.php:67 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:65 #: ../../../modules/web/themes/material-blue/views/_partials/fixed-header.inc:105 #: ../../../modules/web/themes/material-blue/views/notification/index.inc:1 #: ../../../config/actions.xml:667 @@ -3769,6 +3774,8 @@ msgid "Eliminar Notificación" msgstr "Delete Notification" #: ../../../modules/web/Controllers/Helpers/Grid/PluginGrid.php:89 +#: ../../../modules/web/Controllers/Helpers/LayoutHelper.php:332 +#: ../../../modules/web/themes/material-blue/views/plugin/index.inc:1 msgid "Plugins" msgstr "Plugins" @@ -4021,26 +4028,26 @@ msgstr "Edit Profile" msgid "Eliminar Perfil" msgstr "Delete Profile" -#: ../../../modules/web/Controllers/Helpers/LayoutHelper.php:262 -#: ../../../modules/web/themes/material-blue/inc/Icons.php:60 +#: ../../../modules/web/Controllers/Helpers/LayoutHelper.php:263 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:58 msgid "Buscar" msgstr "Search" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/LayoutHelper.php:289 +#: ../../../modules/web/Controllers/Helpers/LayoutHelper.php:290 #: ../../../config/actions.xml:103 msgid "Usuarios y Accesos" msgstr "Users and Accesses" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/LayoutHelper.php:303 +#: ../../../modules/web/Controllers/Helpers/LayoutHelper.php:304 #: ../../../config/actions.xml:43 msgid "Elementos y Personalización" msgstr "Items and Customizations" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/LayoutHelper.php:317 -#: ../../../modules/web/themes/material-blue/inc/Icons.php:63 +#: ../../../modules/web/Controllers/Helpers/LayoutHelper.php:346 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:61 #: ../../../modules/web/themes/material-blue/views/config/ldap.inc:21 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:22 #: ../../../config/actions.xml:673 @@ -4066,28 +4073,28 @@ msgid "Ver Valor" msgstr "Display Value" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/ItemPresetController.php:186 +#: ../../../modules/web/Controllers/ItemPresetController.php:188 #: ../../../config/actions.xml:853 msgid "Nuevo Valor" msgstr "New Value" -#: ../../../modules/web/Controllers/ItemPresetController.php:253 -#: ../../../modules/web/Controllers/ItemPresetController.php:256 +#: ../../../modules/web/Controllers/ItemPresetController.php:255 +#: ../../../modules/web/Controllers/ItemPresetController.php:258 msgid "Valores eliminados" msgstr "Values deleted" -#: ../../../modules/web/Controllers/ItemPresetController.php:264 -#: ../../../modules/web/Controllers/ItemPresetController.php:268 +#: ../../../modules/web/Controllers/ItemPresetController.php:266 +#: ../../../modules/web/Controllers/ItemPresetController.php:270 msgid "Valor eliminado" msgstr "Value deleted" -#: ../../../modules/web/Controllers/ItemPresetController.php:296 -#: ../../../modules/web/Controllers/ItemPresetController.php:301 +#: ../../../modules/web/Controllers/ItemPresetController.php:298 +#: ../../../modules/web/Controllers/ItemPresetController.php:303 msgid "Valor creado" msgstr "Value created" -#: ../../../modules/web/Controllers/ItemPresetController.php:335 -#: ../../../modules/web/Controllers/ItemPresetController.php:340 +#: ../../../modules/web/Controllers/ItemPresetController.php:337 +#: ../../../modules/web/Controllers/ItemPresetController.php:342 msgid "Valor actualizado" msgstr "Value updated" @@ -4128,18 +4135,18 @@ msgstr "Notification created" msgid "Notificación actualizada" msgstr "Notification updated" -#: ../../../modules/web/Controllers/PluginController.php:179 -#: ../../../modules/web/Controllers/PluginController.php:182 +#: ../../../modules/web/Controllers/PluginController.php:181 +#: ../../../modules/web/Controllers/PluginController.php:184 msgid "Plugin habilitado" msgstr "Plugin enabled" -#: ../../../modules/web/Controllers/PluginController.php:204 -#: ../../../modules/web/Controllers/PluginController.php:207 +#: ../../../modules/web/Controllers/PluginController.php:206 +#: ../../../modules/web/Controllers/PluginController.php:209 msgid "Plugin deshabilitado" msgstr "Plugin disabled" -#: ../../../modules/web/Controllers/PluginController.php:229 -#: ../../../modules/web/Controllers/PluginController.php:232 +#: ../../../modules/web/Controllers/PluginController.php:231 +#: ../../../modules/web/Controllers/PluginController.php:234 msgid "Plugin restablecido" msgstr "Plugin reset" @@ -4366,15 +4373,15 @@ msgstr "Field type not set" msgid "Módulo del campo no indicado" msgstr "Field module not set" -#: ../../../modules/web/Forms/ItemsPresetForm.php:102 +#: ../../../modules/web/Forms/ItemsPresetForm.php:106 msgid "Tipo de valor no definido o incorrecto" msgstr "Value type not set or incorrect" -#: ../../../modules/web/Forms/ItemsPresetForm.php:119 +#: ../../../modules/web/Forms/ItemsPresetForm.php:123 msgid "No hay permisos definidos" msgstr "There aren't any defined permissions" -#: ../../../modules/web/Forms/ItemsPresetForm.php:136 +#: ../../../modules/web/Forms/ItemsPresetForm.php:152 msgid "Es necesario asignar un elemento del tipo usuario, grupo o perfil" msgstr "An element of type user, group or profile need to be set" @@ -4430,72 +4437,72 @@ msgstr "A group name is needed" msgid "Es necesario un nombre de perfil" msgstr "A profile name is needed" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:34 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:32 msgid "Añadir" msgstr "Add" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:35 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:33 msgid "Ver Detalles" msgstr "View Details" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:37 -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:33 -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:71 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:35 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:34 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:72 #: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-permission.inc:24 #: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-permission.inc:63 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:97 msgid "Editar" msgstr "Edit" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:38 -#: ../../../modules/web/themes/material-blue/inc/Icons.php:68 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:36 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:66 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:129 msgid "Eliminar" msgstr "Delete" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:39 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:37 msgid "Cambiar Clave" msgstr "Change Password" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:40 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:38 #: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:193 msgid "Admin Aplicación" msgstr "Application Admin" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:41 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:39 #: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:211 msgid "Admin Cuentas" msgstr "Accounts Admin" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:42 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:40 msgid "Usuario de LDAP" msgstr "LDAP User" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:43 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:41 #: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:250 msgid "Deshabilitado" msgstr "Disabled" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:44 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:42 msgid "Habilitado" msgstr "Enabled" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:45 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:43 #: ../../../modules/web/themes/material-blue/views/main/upgrade.inc:174 #: ../../../modules/web/themes/material-blue/views/upgrade/index.inc:49 msgid "Actualizar" msgstr "Update" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:46 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:44 msgid "Copiar" msgstr "Copy" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:48 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:46 #: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:78 msgid "Email" msgstr "Email" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:51 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:49 #: ../../../modules/web/themes/material-blue/views/_partials/error.inc:14 #: ../../../modules/web/themes/material-blue/views/_partials/error.inc:15 #: ../../../modules/web/themes/material-blue/views/error/error-database.inc:13 @@ -4507,53 +4514,53 @@ msgstr "Email" msgid "Volver" msgstr "Back" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:52 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:50 msgid "Restaurar" msgstr "Restore" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:54 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:52 #: ../../../config/strings.js.inc:79 msgid "Ayuda" msgstr "Help" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:55 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:53 msgid "Limpiar" msgstr "Clear" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:56 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:54 msgid "Realizar" msgstr "Perform" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:57 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:55 msgid "Descargar" msgstr "Download" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:58 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:56 #: ../../../config/strings.js.inc:85 msgid "Aviso" msgstr "Warning" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:59 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:57 msgid "Comprobar" msgstr "Check" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:66 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:64 msgid "Crítico" msgstr "Critical" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:71 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:67 msgid "Página anterior" msgstr "Previous page" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:72 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:68 msgid "Página siguiente" msgstr "Next page" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:73 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:69 msgid "Primera página" msgstr "First page" -#: ../../../modules/web/themes/material-blue/inc/Icons.php:74 +#: ../../../modules/web/themes/material-blue/inc/Icons.php:70 msgid "Última página" msgstr "Last page" @@ -4636,7 +4643,7 @@ msgid "Vaciar el registro de eventos?" msgstr "Clear event log?" #: ../../../config/strings.js.inc:47 -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:112 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:113 #: ../../../modules/web/themes/material-blue/views/config/encryption.inc:276 #: ../../../modules/web/themes/material-blue/views/config/general-auth.inc:87 #: ../../../modules/web/themes/material-blue/views/config/import.inc:57 @@ -4647,7 +4654,7 @@ msgid "Seleccionar Grupo" msgstr "Select Group" #: ../../../config/strings.js.inc:48 -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:95 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:96 #: ../../../modules/web/themes/material-blue/views/config/general-auth.inc:112 #: ../../../modules/web/themes/material-blue/views/config/import.inc:30 #: ../../../modules/web/themes/material-blue/views/config/ldap.inc:258 @@ -4951,47 +4958,47 @@ msgstr "Select date" msgid "Última Modificación" msgstr "Last Modification" -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:17 -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:55 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:18 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:56 #: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-permission.inc:8 #: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-permission.inc:47 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:48 msgid "Ver" msgstr "View" -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:21 -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:37 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:22 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:38 #: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-permission.inc:12 #: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-permission.inc:28 #: ../../../modules/web/themes/material-blue/views/itemshow/user_group.inc:51 msgid "Seleccionar Usuarios" msgstr "Select Users" -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:59 -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:75 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:60 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:76 #: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-permission.inc:51 #: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-permission.inc:67 msgid "Seleccionar Grupos" msgstr "Select Groups" -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:92 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:93 #: ../../../modules/web/themes/material-blue/views/account/details.inc:37 #: ../../../modules/web/themes/material-blue/views/account/details.inc:39 msgid "Creador" msgstr "Creator" -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:109 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:110 #: ../../../modules/web/themes/material-blue/views/account/details.inc:45 #: ../../../modules/web/themes/material-blue/views/account/details.inc:47 msgid "Grupo Principal" msgstr "Main Group" -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:131 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:135 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:177 msgid "Privada" msgstr "Private" -#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:144 +#: ../../../modules/web/themes/material-blue/views/account/account-permissions.inc:151 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:193 msgid "Privada Grupo" msgstr "Private for Group" @@ -5695,8 +5702,8 @@ msgstr "Sets the default profile for the newly created SSO users." #: ../../../modules/web/themes/material-blue/views/config/general-events.inc:99 #: ../../../modules/web/themes/material-blue/views/config/mail.inc:171 #: ../../../modules/web/themes/material-blue/views/config/mail.inc:174 -#: ../../../modules/web/themes/material-blue/views/itemshow/plugin.inc:61 -#: ../../../modules/web/themes/material-blue/views/itemshow/plugin.inc:63 +#: ../../../modules/web/themes/material-blue/views/plugin/plugin.inc:64 +#: ../../../modules/web/themes/material-blue/views/plugin/plugin.inc:66 msgid "Eventos" msgstr "Events" @@ -6442,6 +6449,19 @@ msgstr "Field help" msgid "Obligatorio" msgstr "Required" +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-private.inc:21 +msgid "Las cuentas sólo serán visibles por el usuario." +msgstr "Accounts will be only visible by the user." + +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-private.inc:23 +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-private.inc:42 +msgid "Los administradores no podrán acceder a las cuentas." +msgstr "Administrators won't be able to display the accounts." + +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset-private.inc:40 +msgid "Las cuentas sólo serán visibles por el usuario y su grupo principal." +msgstr "Accounts will be only visible by the user and his/her main group." + #: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:76 msgid "" "Prioridad de asignación en caso de coincidir con otros valores asignados por " @@ -6463,31 +6483,6 @@ msgstr "Enforces the values to be set either on creating or updating an item." msgid "Los valores serán añadidos a los existentes." msgstr "Values will be merged with the existing ones." -#: ../../../modules/web/themes/material-blue/views/itemshow/plugin.inc:20 -msgid "Nombre del plugin" -msgstr "Plugin name" - -#: ../../../modules/web/themes/material-blue/views/itemshow/plugin.inc:32 -msgid "Versión del plugin" -msgstr "Plugin version" - -#: ../../../modules/web/themes/material-blue/views/itemshow/plugin.inc:37 -msgid "Versión Compatible" -msgstr "Compatible Version" - -#: ../../../modules/web/themes/material-blue/views/itemshow/plugin.inc:44 -msgid "Versión de sysPass compatible" -msgstr "sysPass compatible version" - -#: ../../../modules/web/themes/material-blue/views/itemshow/plugin.inc:49 -#: ../../../modules/web/themes/material-blue/views/wiki/wikipage.inc:25 -msgid "Autor" -msgstr "Author" - -#: ../../../modules/web/themes/material-blue/views/itemshow/plugin.inc:56 -msgid "Autor del plugin" -msgstr "Plugin author" - #: ../../../modules/web/themes/material-blue/views/itemshow/public_link.inc:76 #: ../../../modules/web/themes/material-blue/views/itemshow/public_link.inc:78 msgid "Hash" @@ -6843,6 +6838,31 @@ msgstr "Only for application administrators" msgid "Solo Admins" msgstr "Only Admins" +#: ../../../modules/web/themes/material-blue/views/plugin/plugin.inc:23 +msgid "Nombre del plugin" +msgstr "Plugin name" + +#: ../../../modules/web/themes/material-blue/views/plugin/plugin.inc:35 +msgid "Versión del plugin" +msgstr "Plugin version" + +#: ../../../modules/web/themes/material-blue/views/plugin/plugin.inc:40 +msgid "Versión Compatible" +msgstr "Compatible Version" + +#: ../../../modules/web/themes/material-blue/views/plugin/plugin.inc:47 +msgid "Versión de sysPass compatible" +msgstr "sysPass compatible version" + +#: ../../../modules/web/themes/material-blue/views/plugin/plugin.inc:52 +#: ../../../modules/web/themes/material-blue/views/wiki/wikipage.inc:25 +msgid "Autor" +msgstr "Author" + +#: ../../../modules/web/themes/material-blue/views/plugin/plugin.inc:59 +msgid "Autor del plugin" +msgstr "Plugin author" + #: ../../../modules/web/themes/material-blue/views/upgrade/index.inc:11 msgid "La aplicación necesita actualizarse" msgstr "The application needs to be updated" diff --git a/app/modules/web/Controllers/Helpers/Account/AccountHelper.php b/app/modules/web/Controllers/Helpers/Account/AccountHelper.php index 85db694d..91878fb5 100644 --- a/app/modules/web/Controllers/Helpers/Account/AccountHelper.php +++ b/app/modules/web/Controllers/Helpers/Account/AccountHelper.php @@ -30,6 +30,7 @@ use SP\Core\Acl\ActionsInterface; use SP\Core\Acl\UnauthorizedPageException; use SP\Core\Exceptions\SPException; use SP\DataModel\AccountPermission; +use SP\DataModel\AccountPrivate; use SP\DataModel\Dto\AccountAclDto; use SP\DataModel\Dto\AccountDetailsResponse; use SP\Http\Uri; @@ -45,6 +46,7 @@ use SP\Services\Category\CategoryService; use SP\Services\Client\ClientService; use SP\Services\Crypt\MasterPassService; use SP\Services\ItemPreset\ItemPresetInterface; +use SP\Services\ItemPreset\ItemPresetService; use SP\Services\PublicLink\PublicLinkService; use SP\Services\Tag\TagService; use SP\Services\User\UpdatedMasterPassException; @@ -77,7 +79,7 @@ final class AccountHelper extends HelperBase */ private $publicLinkService; /** - * @var \SP\Services\ItemPreset\ItemPresetService + * @var ItemPresetService */ private $itemPresetService; /** @@ -182,8 +184,8 @@ final class AccountHelper extends HelperBase $userData = $this->context->getUserData(); $userProfileData = $this->context->getUserProfile(); - $this->view->assign('allowPrivate', $userProfileData->isAccPrivate() && $accountData->getUserId() === $userData->getId()); - $this->view->assign('allowPrivateGroup', $userProfileData->isAccPrivateGroup() && $accountData->getUserGroupId() === $userData->getUserGroupId()); + $this->view->assign('allowPrivate', ($userProfileData->isAccPrivate() && $accountData->getUserId() === $userData->getId()) || $userData->getIsAdminApp()); + $this->view->assign('allowPrivateGroup', ($userProfileData->isAccPrivateGroup() && $accountData->getUserGroupId() === $userData->getUserGroupId()) || $userData->getIsAdminApp()); $this->view->assign('accountPassDate', date('Y-m-d H:i:s', $accountData->getPassDate())); $this->view->assign('accountPassDateChange', $accountData->getPassDateChange() > 0 && date('Y-m-d', $accountData->getPassDateChange() ?: 0)); @@ -320,8 +322,11 @@ final class AccountHelper extends HelperBase $this->accountAcl->setShowPermission($userData->getIsAdminApp() || $userData->getIsAdminAcc() || $userProfileData->isAccPermission()); - $accountPermission = $this->itemPresetService->getForCurrentUser(ItemPresetInterface::ITEM_TYPE_PERMISSION) - ->hydrate(AccountPermission::class, 'data') ?: new AccountPermission(); + $accountPrivate = $this->itemPresetService->getForCurrentUser(ItemPresetInterface::ITEM_TYPE_ACCOUNT_PRIVATE) + ->hydrate(AccountPrivate::class) ?: new AccountPrivate(); + + $accountPermission = $this->itemPresetService->getForCurrentUser(ItemPresetInterface::ITEM_TYPE_ACCOUNT_PERMISSION) + ->hydrate(AccountPermission::class) ?: new AccountPermission(); $selectUsers = SelectItemAdapter::factory(UserService::getItemsBasic()); $selectUserGroups = SelectItemAdapter::factory(UserGroupService::getItemsBasic()); @@ -336,8 +341,9 @@ final class AccountHelper extends HelperBase $this->view->assign('userGroups', $selectUserGroups->getItemsFromModel()); $this->view->assign('tags', $selectTags->getItemsFromModel()); - $this->view->assign('allowPrivate', $userProfileData->isAccPrivate()); - $this->view->assign('allowPrivateGroup', $userProfileData->isAccPrivateGroup()); + $this->view->assign('allowPrivate', $userProfileData->isAccPrivate() || $userData->getIsAdminApp()); + $this->view->assign('allowPrivateGroup', $userProfileData->isAccPrivateGroup() || $userData->getIsAdminApp()); + $this->view->assign('accountPrivate', $accountPrivate); $this->view->assign('accountId', 0); $this->view->assign('gotData', false); @@ -395,7 +401,7 @@ final class AccountHelper extends HelperBase $this->accountService = $this->dic->get(AccountService::class); $this->accountHistoryService = $this->dic->get(AccountHistoryService::class); $this->publicLinkService = $this->dic->get(PublicLinkService::class); - $this->itemPresetService = $this->dic->get(\SP\Services\ItemPreset\ItemPresetService::class); + $this->itemPresetService = $this->dic->get(ItemPresetService::class); $this->view->assign('changesHash'); $this->view->assign('chkUserEdit'); diff --git a/app/modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php b/app/modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php index 50f2cdc7..9a948bf8 100644 --- a/app/modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php @@ -64,6 +64,7 @@ final class ItemPresetGrid extends GridBase $grid->setPager($this->getPager($searchAction)); $grid->setDataActions($this->getCreatePermissionAction(), true); + $grid->setDataActions($this->getCreatePrivateAction(), true); $grid->setDataActions($this->getEditAction()); $grid->setDataActions($this->getDeleteAction()); $grid->setDataActions($this->getDeleteAction()->setTitle(__('Eliminar Seleccionados')), true); @@ -120,9 +121,7 @@ final class ItemPresetGrid extends GridBase $gridData->addDataRowSource('userGroupName'); $gridData->addDataRowSource('userProfileName'); $gridData->addDataRowSource('priority'); - $gridData->addDataRowSource('fixed', false, function ($value) { - return $value === 1 ? __('SI') : __('NO'); - }); + $gridData->addDataRowSourceWithIcon('fixed', $this->icons->getIconEnabled()); $gridData->setData($this->queryResult); return $gridData; @@ -161,7 +160,28 @@ final class ItemPresetGrid extends GridBase $gridAction->setIcon($icon->setIcon('add_circle')); $gridAction->setSkip(true); $gridAction->setOnClickFunction('appMgmt/show'); - $gridAction->addData('action-route', Acl::getActionRoute(ActionsInterface::ITEMPRESET_CREATE) . '/permission'); + $gridAction->addData('action-route', Acl::getActionRoute(ActionsInterface::ITEMPRESET_CREATE) . '/account.permission'); + + return $gridAction; + } + + /** + * @return DataGridAction + */ + private function getCreatePrivateAction() + { + $gridAction = new DataGridAction(); + $gridAction->setId(ActionsInterface::ITEMPRESET_CREATE); + $gridAction->setType(DataGridActionType::MENUBAR_ITEM); + $gridAction->setName(__('Nuevo Valor de Cuenta Privada')); + $gridAction->setTitle(__('Nuevo Valor de Cuenta Privada')); + + $icon = clone $this->icons->getIconAdd(); + + $gridAction->setIcon($icon->setIcon('add_circle')); + $gridAction->setSkip(true); + $gridAction->setOnClickFunction('appMgmt/show'); + $gridAction->addData('action-route', Acl::getActionRoute(ActionsInterface::ITEMPRESET_CREATE) . '/account.private'); return $gridAction; } diff --git a/app/modules/web/Controllers/Helpers/ItemPresetHelper.php b/app/modules/web/Controllers/Helpers/ItemPresetHelper.php index f88e7590..34adccaa 100644 --- a/app/modules/web/Controllers/Helpers/ItemPresetHelper.php +++ b/app/modules/web/Controllers/Helpers/ItemPresetHelper.php @@ -25,6 +25,7 @@ namespace SP\Modules\Web\Controllers\Helpers; use SP\DataModel\AccountPermission; +use SP\DataModel\AccountPrivate; use SP\DataModel\ItemPresetData; use SP\Mvc\View\Components\SelectItemAdapter; use SP\Services\User\UserService; @@ -63,31 +64,37 @@ class ItemPresetHelper extends HelperBase $this->view->assign('permission', $accountPermission); - $this->view->assign('users', $this->users->getItemsFromModelSelected([$itemPresetData->getUserId()])); $this->view->assign('usersView', $this->users->getItemsFromModelSelected($accountPermission->getUsersView())); $this->view->assign('usersEdit', $this->users->getItemsFromModelSelected($accountPermission->getUsersEdit())); - - $this->view->assign('userGroups', $this->userGroups->getItemsFromModelSelected([$itemPresetData->getUserGroupId()])); $this->view->assign('userGroupsView', $this->userGroups->getItemsFromModelSelected($accountPermission->getUserGroupsView())); $this->view->assign('userGroupsEdit', $this->userGroups->getItemsFromModelSelected($accountPermission->getUserGroupsEdit())); - - $this->view->assign('userProfiles', $this->userProfiles->getItemsFromModelSelected([$itemPresetData->getUserProfileId()])); } /** - * makeDefaultPresetView + * @param ItemPresetData $itemPresetData + * + * @throws \SP\Core\Exceptions\NoSuchPropertyException */ - public function makeDefaultPresetView() + public function makeAccountPrivateView(ItemPresetData $itemPresetData) { - $this->view->assign('users', $this->users->getItemsFromModel()); - $this->view->assign('userGroups', $this->userGroups->getItemsFromModel()); - $this->view->assign('userProfiles', $this->userProfiles->getItemsFromModel()); + $accountPrivate = $itemPresetData->hydrate(AccountPrivate::class, 'data') ?: new AccountPrivate(); + + $this->view->assign('typeTemplate', 'item_preset-private'); + + $this->view->assign('private', $accountPrivate); } - protected function initialize() + /** + * @param ItemPresetData $itemPresetData + */ + public function setCommon(ItemPresetData $itemPresetData) { $this->users = SelectItemAdapter::factory(UserService::getItemsBasic()); $this->userGroups = SelectItemAdapter::factory(UserGroupService::getItemsBasic()); $this->userProfiles = SelectItemAdapter::factory(UserGroupService::getItemsBasic()); + + $this->view->assign('users', $this->users->getItemsFromModelSelected([$itemPresetData->getUserId()])); + $this->view->assign('userGroups', $this->userGroups->getItemsFromModelSelected([$itemPresetData->getUserGroupId()])); + $this->view->assign('userProfiles', $this->userProfiles->getItemsFromModelSelected([$itemPresetData->getUserProfileId()])); } } \ No newline at end of file diff --git a/app/modules/web/Controllers/Helpers/LayoutHelper.php b/app/modules/web/Controllers/Helpers/LayoutHelper.php index e246a89b..48e1796c 100644 --- a/app/modules/web/Controllers/Helpers/LayoutHelper.php +++ b/app/modules/web/Controllers/Helpers/LayoutHelper.php @@ -312,20 +312,6 @@ final class LayoutHelper extends HelperBase $actions[] = $actionItemManager; } - if ($acl->checkUserAccess(ActionsInterface::CONFIG)) { - $actionConfigManager = new DataGridAction(); - $actionConfigManager->setId('config'); - $actionConfigManager->setTitle(__('Configuración')); - $actionConfigManager->setIcon($icons->getIconSettings()); - $actionConfigManager->setData([ - 'historyReset' => 1, - 'view' => 'config', - 'route' => Acl::getActionRoute(ActionsInterface::CONFIG) - ]); - - $actions[] = $actionConfigManager; - } - if ($acl->checkUserAccess(ActionsInterface::EVENTLOG) && $this->configData->isLogEnabled()) { $actionEventlog = new DataGridAction(); $actionEventlog->setId(ActionsInterface::EVENTLOG); @@ -354,6 +340,20 @@ final class LayoutHelper extends HelperBase $actions[] = $actionPlugins; } + if ($acl->checkUserAccess(ActionsInterface::CONFIG)) { + $actionConfigManager = new DataGridAction(); + $actionConfigManager->setId('config'); + $actionConfigManager->setTitle(__('Configuración')); + $actionConfigManager->setIcon($icons->getIconSettings()); + $actionConfigManager->setData([ + 'historyReset' => 1, + 'view' => 'config', + 'route' => Acl::getActionRoute(ActionsInterface::CONFIG) + ]); + + $actions[] = $actionConfigManager; + } + $this->view->assign('actions', $actions); $this->view->assign('useMenu', true); } diff --git a/app/modules/web/Controllers/ItemPresetController.php b/app/modules/web/Controllers/ItemPresetController.php index 05a74e9c..d8f2b357 100644 --- a/app/modules/web/Controllers/ItemPresetController.php +++ b/app/modules/web/Controllers/ItemPresetController.php @@ -101,17 +101,19 @@ class ItemPresetController extends ControllerBase implements CrudControllerInter $itemPresetData = $id ? $this->itemPresetService->getById($id) : new ItemPresetData(); $itemPresetHelper = $this->dic->get(ItemPresetHelper::class); + $itemPresetHelper->setCommon($itemPresetData); if ($itemPresetData->getType() === null) { $itemPresetData->setType($type); } switch ($itemPresetData->getType()) { - case ItemPresetInterface::ITEM_TYPE_PERMISSION: + case ItemPresetInterface::ITEM_TYPE_ACCOUNT_PERMISSION: $itemPresetHelper->makeAccountPermissionView($itemPresetData); break; - default: - $itemPresetHelper->makeDefaultPresetView(); + case ItemPresetInterface::ITEM_TYPE_ACCOUNT_PRIVATE: + $itemPresetHelper->makeAccountPrivateView($itemPresetData); + break; } $this->view->assign('preset', $itemPresetData); diff --git a/app/modules/web/Forms/ItemsPresetForm.php b/app/modules/web/Forms/ItemsPresetForm.php index e31fb773..5bfca233 100644 --- a/app/modules/web/Forms/ItemsPresetForm.php +++ b/app/modules/web/Forms/ItemsPresetForm.php @@ -27,6 +27,7 @@ namespace SP\Modules\Web\Forms; use SP\Core\Acl\ActionsInterface; use SP\Core\Exceptions\ValidationException; use SP\DataModel\AccountPermission; +use SP\DataModel\AccountPrivate; use SP\DataModel\ItemPresetData; use SP\Services\ItemPreset\ItemPresetInterface; use SP\Services\ItemPreset\ItemPresetRequest; @@ -95,9 +96,12 @@ final class ItemsPresetForm extends FormBase implements FormInterface $itemPresetData->setType($this->request->analyzeString('type')); switch ($itemPresetData->getType()) { - case ItemPresetInterface::ITEM_TYPE_PERMISSION: + case ItemPresetInterface::ITEM_TYPE_ACCOUNT_PERMISSION: $this->itemPresetRequest = new ItemPresetRequest($itemPresetData, $this->makePermissionPreset()); break; + case ItemPresetInterface::ITEM_TYPE_ACCOUNT_PRIVATE: + $this->itemPresetRequest = new ItemPresetRequest($itemPresetData, $this->makePrivatePreset()); + break; default: throw new ValidationException(__u('Tipo de valor no definido o incorrecto')); } @@ -122,6 +126,18 @@ final class ItemsPresetForm extends FormBase implements FormInterface return $accountPermission; } + /** + * @return AccountPrivate + */ + private function makePrivatePreset() + { + $accountPrivate = new AccountPrivate(); + $accountPrivate->setPrivateUser($this->request->analyzeBool('private_user_enabled', false)); + $accountPrivate->setPrivateGroup($this->request->analyzeBool('private_group_enabled', false)); + + return $accountPrivate; + } + /** * @throws ValidationException */ diff --git a/app/modules/web/themes/material-blue/views/account/account-permissions.inc b/app/modules/web/themes/material-blue/views/account/account-permissions.inc index d03a5ea5..1e52e0d9 100644 --- a/app/modules/web/themes/material-blue/views/account/account-permissions.inc +++ b/app/modules/web/themes/material-blue/views/account/account-permissions.inc @@ -3,6 +3,7 @@ * @var \SP\Services\Account\AccountAcl $accountAcl * @var \SP\DataModel\AccountExtData $accountData * @var \SP\Core\UI\ThemeIcons $icons + * @var \SP\DataModel\AccountPrivate $accountPrivate */ ?> @@ -121,26 +122,32 @@ - + getIsPrivate()) + || (isset($accountPrivate) && $accountPrivate->isPrivateUser())) ? 'checked' : ''; + ?> - + getIsPrivateGroup()) + || (isset($accountPrivate) && $accountPrivate->isPrivateGroup())) ? 'checked' : ''; + ?> diff --git a/app/modules/web/themes/material-blue/views/itemshow/item_preset-private.inc b/app/modules/web/themes/material-blue/views/itemshow/item_preset-private.inc new file mode 100644 index 00000000..ee529b21 --- /dev/null +++ b/app/modules/web/themes/material-blue/views/itemshow/item_preset-private.inc @@ -0,0 +1,50 @@ + + + + + + + + + + \ No newline at end of file diff --git a/lib/SP/Bootstrap.php b/lib/SP/Bootstrap.php index 3da2b435..f207180a 100644 --- a/lib/SP/Bootstrap.php +++ b/lib/SP/Bootstrap.php @@ -191,7 +191,7 @@ final class Bootstrap /** @var \Klein\Request $request */ $route = Filter::getString($request->param('r', 'index/index')); - if (!preg_match_all('#(?P[a-zA-Z]+)(?:/(?P[a-zA-Z]+))?(?P/[a-zA-Z\d]+)?#', $route, $matches)) { + if (!preg_match_all('#(?P[a-zA-Z]+)(?:/(?P[a-zA-Z]+))?(?P/[a-zA-Z\d\.]+)?#', $route, $matches)) { throw new RuntimeException($oops); } diff --git a/lib/SP/DataModel/AccountPrivate.php b/lib/SP/DataModel/AccountPrivate.php new file mode 100644 index 00000000..1081263a --- /dev/null +++ b/lib/SP/DataModel/AccountPrivate.php @@ -0,0 +1,74 @@ +. + */ + +namespace SP\DataModel; + +/** + * Class AccountPrivate + * + * @package SP\DataModel + */ +class AccountPrivate +{ + /** + * @var bool + */ + private $privateUser = false; + /** + * @var bool + */ + private $privateGroup = false; + + /** + * @return bool + */ + public function isPrivateUser(): bool + { + return $this->privateUser; + } + + /** + * @param bool $privateUser + */ + public function setPrivateUser(bool $privateUser) + { + $this->privateUser = $privateUser; + } + + /** + * @return bool + */ + public function isPrivateGroup(): bool + { + return $this->privateGroup; + } + + /** + * @param bool $privateGroup + */ + public function setPrivateGroup(bool $privateGroup) + { + $this->privateGroup = $privateGroup; + } +} \ No newline at end of file diff --git a/lib/SP/Services/Account/AccountService.php b/lib/SP/Services/Account/AccountService.php index 6c61c3ff..ff3ed760 100644 --- a/lib/SP/Services/Account/AccountService.php +++ b/lib/SP/Services/Account/AccountService.php @@ -32,6 +32,7 @@ use SP\DataModel\AccountData; use SP\DataModel\AccountHistoryData; use SP\DataModel\AccountPassData; use SP\DataModel\AccountPermission; +use SP\DataModel\AccountPrivate; use SP\DataModel\AccountSearchVData; use SP\DataModel\Dto\AccountDetailsResponse; use SP\DataModel\Dto\AccountHistoryCreateDto; @@ -79,25 +80,6 @@ final class AccountService extends Service implements AccountServiceInterface */ protected $itemPresetService; - /** - * @param int $id - * - * @return AccountDetailsResponse - * @throws QueryException - * @throws \SP\Repositories\NoSuchItemException - * @throws \SP\Core\Exceptions\ConstraintException - */ - public function getById($id) - { - $result = $this->accountRepository->getById($id); - - if ($result->getNumRows() === 0) { - throw new NoSuchItemException(__u('La cuenta no existe')); - } - - return new AccountDetailsResponse($id, $result->getData()); - } - /** * @param AccountDetailsResponse $accountDetailsResponse * @@ -192,6 +174,7 @@ final class AccountService extends Service implements AccountServiceInterface * @throws QueryException * @throws SPException * @throws \SP\Core\Exceptions\ConstraintException + * @throws \SP\Core\Exceptions\NoSuchPropertyException */ public function create(AccountRequest $accountRequest) { @@ -205,10 +188,13 @@ final class AccountService extends Service implements AccountServiceInterface $accountRequest->key = $pass['key']; } + $this->setPresetPrivate($accountRequest); + $accountRequest->id = $this->accountRepository->create($accountRequest); $this->addItems($accountRequest); - $this->addDefaultPermissions($accountRequest->id); + + $this->addPresetPermissions($accountRequest->id); return $accountRequest->id; } @@ -246,6 +232,59 @@ final class AccountService extends Service implements AccountServiceInterface } } + /** + * @param AccountRequest $accountRequest + * + * @throws QueryException + * @throws \SP\Core\Exceptions\ConstraintException + * @throws \SP\Core\Exceptions\NoSuchPropertyException + * @throws NoSuchItemException + */ + private function setPresetPrivate(AccountRequest $accountRequest) + { + $userData = $this->context->getUserData(); + $itemPreset = $this->itemPresetService->getForCurrentUser(ItemPresetInterface::ITEM_TYPE_ACCOUNT_PRIVATE); + + if ($itemPreset !== null + && $itemPreset->getFixed() + ) { + $accountPrivate = $itemPreset->hydrate(AccountPrivate::class); + + $userId = $accountRequest->userId; + + if ($userId === null && $accountRequest->id > 0) { + $userId = $this->getById($accountRequest->id)->getAccountVData()->getUserId(); + } + + if ($userData->getId() === $userId) { + $accountRequest->isPrivate = (int)$accountPrivate->isPrivateUser(); + } + + if ($userData->getUserGroupId() === $accountRequest->userGroupId) { + $accountRequest->isPrivateGroup = (int)$accountPrivate->isPrivateGroup(); + } + } + } + + /** + * @param int $id + * + * @return AccountDetailsResponse + * @throws QueryException + * @throws \SP\Repositories\NoSuchItemException + * @throws \SP\Core\Exceptions\ConstraintException + */ + public function getById($id) + { + $result = $this->accountRepository->getById($id); + + if ($result->getNumRows() === 0) { + throw new NoSuchItemException(__u('La cuenta no existe')); + } + + return new AccountDetailsResponse($id, $result->getData()); + } + /** * Adds external items to the account * @@ -298,9 +337,9 @@ final class AccountService extends Service implements AccountServiceInterface * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\NoSuchPropertyException */ - private function addDefaultPermissions(int $accountId) + private function addPresetPermissions(int $accountId) { - $itemPresetData = $this->itemPresetService->getForCurrentUser(ItemPresetInterface::ITEM_TYPE_PERMISSION); + $itemPresetData = $this->itemPresetService->getForCurrentUser(ItemPresetInterface::ITEM_TYPE_ACCOUNT_PERMISSION); if ($itemPresetData !== null && $itemPresetData->getFixed() @@ -379,11 +418,13 @@ final class AccountService extends Service implements AccountServiceInterface $this->addHistory($accountRequest->id); + $this->setPresetPrivate($accountRequest); + $this->accountRepository->update($accountRequest); $this->updateItems($accountRequest); - $this->addDefaultPermissions($accountRequest->id); + $this->addPresetPermissions($accountRequest->id); }); } diff --git a/lib/SP/Services/ItemPreset/ItemPresetInterface.php b/lib/SP/Services/ItemPreset/ItemPresetInterface.php index 06b29a37..f8472b60 100644 --- a/lib/SP/Services/ItemPreset/ItemPresetInterface.php +++ b/lib/SP/Services/ItemPreset/ItemPresetInterface.php @@ -2,8 +2,8 @@ /** * sysPass * - * @author nuxsmin - * @link https://syspass.org + * @author nuxsmin + * @link https://syspass.org * @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org * * This file is part of sysPass. @@ -31,8 +31,8 @@ namespace SP\Services\ItemPreset; */ interface ItemPresetInterface { - const ITEM_TYPE_PERMISSION = 'permission'; - const ITEM_TYPE_TAGS = 'tag'; + const ITEM_TYPE_ACCOUNT_PERMISSION = 'account.permission'; + const ITEM_TYPE_ACCOUNT_TAG = 'account.tag'; const ITEM_TYPE_PASSWORD = 'password'; - const ITEM_TYPE_PRIVATE_ACCOUNT = 'private_account'; + const ITEM_TYPE_ACCOUNT_PRIVATE = 'account.private'; } \ No newline at end of file diff --git a/schemas/30018083002.sql b/schemas/30018083002.sql index 51903790..b507d378 100644 --- a/schemas/30018083002.sql +++ b/schemas/30018083002.sql @@ -47,7 +47,7 @@ FOREIGN KEY (userProfileId) REFERENCES UserProfile (id) ON DELETE CASCADE ON UPDATE CASCADE $$ UPDATE ItemPreset -SET type = 'permission' +SET type = 'account.permission' WHERE type = '' $$ UPDATE ItemPreset set hash = sha1(CONCAT(type, coalesce(userId, 0), coalesce(userGroupId, 0), coalesce(userProfileId, 0), priority)) $$ \ No newline at end of file diff --git a/tests/res/config/config.xml b/tests/res/config/config.xml index e0825a18..2b887800 100644 --- a/tests/res/config/config.xml +++ b/tests/res/config/config.xml @@ -9,11 +9,11 @@ 1 1 - c8fe86b8b3f1ac71e62daf6c731065910f775dcf + aac98603ec5e4687b1c7aa4698d46f4ed0d1f69a 0 0 - 1535637654 - c6cfea1957d8c1b4e30c916f724197a432159564 + 1535672911 + c2bcaa6196a692aaf3a7dfee49186b577d44efcc @@ -32,7 +32,7 @@ 0 - d635cf0e628e8214b00aff938a09f5be6158e590 + 7e54c872dca490dfbfae83baf6d045ccf92f2073 PDF JPG