diff --git a/app/config/actions.xml b/app/config/actions.xml index 25f9c729..c472d2e1 100644 --- a/app/config/actions.xml +++ b/app/config/actions.xml @@ -831,38 +831,38 @@ 1801 - ACCOUNT_DEFAULT_PERMISSION + ITEMPRESET Gestión Permisos - accountDefaultPermission/index + itemPreset/index 1802 - ACCOUNT_DEFAULT_PERMISSION_SEARCH + ITEMPRESET_SEARCH Buscar Permiso - accountDefaultPermission/search + itemPreset/search 1803 - ACCOUNT_DEFAULT_PERMISSION_VIEW + ITEMPRESET_VIEW Ver Permiso - accountDefaultPermission/view + itemPreset/view 1804 - ACCOUNT_DEFAULT_PERMISSION_CREATE + ITEMPRESET_CREATE Nuevo Permiso - accountDefaultPermission/create + itemPreset/create 1805 - ACCOUNT_DEFAULT_PERMISSION_EDIT + ITEMPRESET_EDIT Editar Permiso - accountDefaultPermission/edit + itemPreset/edit 1806 - ACCOUNT_DEFAULT_PERMISSION_DELETE + ITEMPRESET_DELETE Eliminar Permiso - accountDefaultPermission/delete + itemPreset/delete \ No newline at end of file diff --git a/app/locales/en_US/LC_MESSAGES/messages.mo b/app/locales/en_US/LC_MESSAGES/messages.mo index 24a0a6e1..1981aa64 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 dee24b89..9395962e 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 01:52+0100\n" -"PO-Revision-Date: 2018-08-30 01:52+0100\n" +"POT-Creation-Date: 2018-08-30 16:16+0100\n" +"PO-Revision-Date: 2018-08-30 16:16+0100\n" "Last-Translator: nuxsmin \n" "Language-Team: nuxsmin@syspass.org\n" "Language: en_US\n" @@ -83,7 +83,7 @@ msgid "Acceso denegado" msgstr "Access denied" #: ../../../../lib/SP/Core/Acl/Acl.php:288 -#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:106 +#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:103 #: ../../../modules/web/themes/material-blue/views/itemshow/auth_token.inc:30 #: ../../../modules/web/themes/material-blue/views/itemshow/auth_token.inc:32 msgid "Acción" @@ -102,9 +102,9 @@ msgstr "Action" #: ../../../../lib/SP/Services/Auth/LoginService.php:586 #: ../../../../lib/SP/Services/Ldap/LdapImportService.php:230 #: ../../../modules/web/Controllers/Helpers/Account/AccountSearchHelper.php:235 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php:102 -#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:105 -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:109 +#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:102 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:101 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:107 #: ../../../modules/web/Controllers/LoginController.php:102 #: ../../../modules/web/Controllers/UserController.php:278 #: ../../../modules/web/Controllers/UserController.php:312 @@ -126,11 +126,11 @@ msgstr "Action" #: ../../../modules/web/themes/material-blue/views/config/mail.inc:111 #: ../../../modules/web/themes/material-blue/views/config/wiki.inc:230 #: ../../../modules/web/themes/material-blue/views/config/wiki.inc:244 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:17 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:19 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:22 #: ../../../modules/web/themes/material-blue/views/itemshow/auth_token.inc:16 #: ../../../modules/web/themes/material-blue/views/itemshow/auth_token.inc:18 +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:18 +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:20 +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:23 #: ../../../modules/web/themes/material-blue/views/itemshow/public_link.inc:60 #: ../../../modules/web/themes/material-blue/views/itemshow/public_link.inc:62 #: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:11 @@ -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:237 -#: ../../../../lib/SP/Services/Account/AccountService.php:242 +#: ../../../../lib/SP/Services/Account/AccountService.php:240 +#: ../../../../lib/SP/Services/Account/AccountService.php:245 #: ../../../../lib/SP/Services/Api/ApiService.php:129 #: ../../../../lib/SP/Services/Api/ApiService.php:227 #: ../../../../lib/SP/Services/Api/ApiService.php:235 @@ -309,16 +309,16 @@ msgstr "New Plugin" #: ../../../../lib/SP/Plugin/PluginManager.php:246 #: ../../../modules/web/Controllers/Helpers/Account/AccountSearchHelper.php:221 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountGrid.php:100 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:102 -#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:103 -#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:102 -#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:103 -#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:104 -#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:103 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:114 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:105 -#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:105 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountGrid.php:98 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:99 +#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:101 +#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:100 +#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:102 +#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:103 +#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:101 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:111 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:102 +#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:102 #: ../../../modules/web/Controllers/UserGroupController.php:254 #: ../../../modules/web/Controllers/UserGroupController.php:293 #: ../../../modules/web/themes/material-blue/views/account/account-editpass.inc:22 @@ -398,8 +398,8 @@ 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/AccountDefaultPermissionGrid.php:103 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:117 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:102 +#: ../../../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 #: ../../../modules/web/themes/material-blue/views/_partials/footer.inc:15 @@ -407,9 +407,9 @@ msgstr "Error while searching the group RDN" #: ../../../modules/web/themes/material-blue/views/config/encryption.inc:272 #: ../../../modules/web/themes/material-blue/views/config/ldap.inc:186 #: ../../../modules/web/themes/material-blue/views/config/ldap.inc:213 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:34 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:36 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:39 +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:35 +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:37 +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:40 #: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:139 #: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:141 msgid "Grupo" @@ -463,7 +463,7 @@ msgstr "Request" #: ../../../../lib/SP/Services/CustomField/CustomFieldDefService.php:74 #: ../../../modules/web/Controllers/ConfigBackupController.php:120 #: ../../../modules/web/Controllers/ConfigManagerController.php:171 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountGrid.php:88 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountGrid.php:86 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:20 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:389 #: ../../../config/actions.xml:13 @@ -476,23 +476,6 @@ msgstr "Accounts" msgid "Notificación" msgstr "Notification" -#: ../../../../lib/SP/Repositories/Account/AccountDefaultPermissionRepository.php:74 -msgid "Error al crear permiso" -msgstr "Error while creating the permission" - -#: ../../../../lib/SP/Repositories/Account/AccountDefaultPermissionRepository.php:111 -msgid "Error al actualizar permiso" -msgstr "Error while updating the permission" - -#: ../../../../lib/SP/Repositories/Account/AccountDefaultPermissionRepository.php:130 -msgid "Error al eliminar permiso" -msgstr "Error while removing the permission" - -#: ../../../../lib/SP/Repositories/Account/AccountDefaultPermissionRepository.php:244 -#: ../../../../lib/SP/Services/Account/AccountDefaultPermissionService.php:187 -msgid "Error al eliminar los permisos" -msgstr "Error while removing the permissions" - #: ../../../../lib/SP/Repositories/Account/AccountFileRepository.php:77 msgid "No se pudo guardar el archivo" msgstr "Error while saving file" @@ -517,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:538 +#: ../../../../lib/SP/Services/Account/AccountService.php:542 msgid "Error al eliminar las cuentas" msgstr "Error while deleting the accounts" @@ -533,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:504 +#: ../../../../lib/SP/Services/Account/AccountService.php:508 msgid "Error al restaurar cuenta" msgstr "Error on restoring the account" @@ -678,6 +661,22 @@ msgstr "Error while deleting the field type" msgid "Error al vaciar el registro de eventos" msgstr "Error while clearing the event log" +#: ../../../../lib/SP/Repositories/ItemPreset/ItemPresetRepository.php:76 +msgid "Error al crear permiso" +msgstr "Error while creating the permission" + +#: ../../../../lib/SP/Repositories/ItemPreset/ItemPresetRepository.php:115 +msgid "Error al actualizar permiso" +msgstr "Error while updating the permission" + +#: ../../../../lib/SP/Repositories/ItemPreset/ItemPresetRepository.php:134 +msgid "Error al eliminar permiso" +msgstr "Error while removing the permission" + +#: ../../../../lib/SP/Repositories/ItemPreset/ItemPresetRepository.php:249 +msgid "Error al eliminar los permisos" +msgstr "Error while removing the permissions" + #: ../../../../lib/SP/Repositories/Notification/NotificationRepository.php:78 msgid "Error al crear la notificación" msgstr "Error while adding the notification" @@ -946,11 +945,6 @@ msgstr "Update Master Password (H)" msgid "Errores al actualizar las claves de las cuentas del histórico" msgstr "Error while updating the accounts' passwords in history" -#: ../../../../lib/SP/Services/Account/AccountDefaultPermissionService.php:84 -#: ../../../../lib/SP/Services/Account/AccountDefaultPermissionService.php:105 -msgid "Permiso no encontrada" -msgstr "Permission not found" - #: ../../../../lib/SP/Services/Account/AccountFileService.php:145 msgid "Error al eliminar archivos" msgstr "Error while deleting the files" @@ -959,18 +953,18 @@ msgstr "Error while deleting the files" msgid "Archivo no encontrado" msgstr "File not found" -#: ../../../../lib/SP/Services/Account/AccountService.php:92 -#: ../../../../lib/SP/Services/Account/AccountService.php:594 -#: ../../../../lib/SP/Services/Account/AccountService.php:649 +#: ../../../../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:179 -#: ../../../../lib/SP/Services/Account/AccountService.php:521 +#: ../../../../lib/SP/Services/Account/AccountService.php:182 +#: ../../../../lib/SP/Services/Account/AccountService.php:525 msgid "Cuenta no encontrada" msgstr "Account not found" -#: ../../../../lib/SP/Services/Account/AccountService.php:230 +#: ../../../../lib/SP/Services/Account/AccountService.php:233 msgid "Clave maestra no establecida" msgstr "Master password not set" @@ -1049,9 +1043,12 @@ msgstr "The Master Password either is not saved or is wrong" #: ../../../../lib/SP/Services/Auth/LoginService.php:542 #: ../../../../lib/SP/Services/Auth/LoginService.php:585 #: ../../../modules/web/Controllers/AccountFileController.php:233 -#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:105 -#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:105 -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:119 +#: ../../../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/NotificationGrid.php:117 +#: ../../../modules/web/Controllers/ItemPresetController.php:297 +#: ../../../modules/web/Controllers/ItemPresetController.php:336 #: ../../../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 @@ -1235,22 +1232,22 @@ msgstr "Error while updating the custom fields data" #: ../../../../lib/SP/Services/CustomField/CustomFieldDefService.php:75 #: ../../../modules/web/Controllers/ConfigBackupController.php:122 -#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:91 +#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:89 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:293 msgid "Categorías" msgstr "Categories" #: ../../../../lib/SP/Services/CustomField/CustomFieldDefService.php:76 #: ../../../modules/web/Controllers/ConfigBackupController.php:121 -#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:90 +#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:88 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:325 msgid "Clientes" msgstr "Clients" #: ../../../../lib/SP/Services/CustomField/CustomFieldDefService.php:77 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:102 +#: ../../../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/itemshow/account_default_permission.inc:118 +#: ../../../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 #: ../../../modules/web/themes/material-blue/views/itemshow/user_group.inc:50 @@ -1259,9 +1256,9 @@ msgid "Usuarios" msgstr "Users" #: ../../../../lib/SP/Services/CustomField/CustomFieldDefService.php:78 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:93 +#: ../../../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/itemshow/account_default_permission.inc:157 +#: ../../../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" msgstr "Groups" @@ -1375,10 +1372,10 @@ msgstr "Account imported" #: ../../../modules/web/Controllers/ClientController.php:245 #: ../../../modules/web/Controllers/ClientController.php:281 #: ../../../modules/web/Controllers/Helpers/Account/AccountSearchHelper.php:214 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountGrid.php:101 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:103 -#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:103 -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:106 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountGrid.php:99 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:100 +#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:102 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:104 #: ../../../modules/web/themes/material-blue/views/account/account-editpass.inc:33 #: ../../../modules/web/themes/material-blue/views/account/account-editpass.inc:39 #: ../../../modules/web/themes/material-blue/views/account/account-history.inc:47 @@ -1473,8 +1470,8 @@ msgstr "Category imported" #: ../../../modules/web/Controllers/CategoryController.php:249 #: ../../../modules/web/Controllers/CategoryController.php:289 #: ../../../modules/web/Controllers/Helpers/Account/AccountSearchHelper.php:228 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountGrid.php:102 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:104 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountGrid.php:100 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:101 #: ../../../modules/web/themes/material-blue/views/account/account-history.inc:62 #: ../../../modules/web/themes/material-blue/views/account/account-history.inc:64 #: ../../../modules/web/themes/material-blue/views/account/account-link.inc:38 @@ -1707,6 +1704,15 @@ msgstr "Error while checking the database" msgid "Intente de nuevo la instalación" msgstr "Please, try the installation again" +#: ../../../../lib/SP/Services/ItemPreset/ItemPresetService.php:84 +#: ../../../../lib/SP/Services/ItemPreset/ItemPresetService.php:105 +msgid "Valor no encontrada" +msgstr "Value not found" + +#: ../../../../lib/SP/Services/ItemPreset/ItemPresetService.php:188 +msgid "Error al eliminar los valores" +msgstr "Error while deleting the values" + #: ../../../../lib/SP/Services/Ldap/LdapImportService.php:106 #: ../../../../lib/SP/Services/Ldap/LdapImportService.php:188 msgid "Objetos encontrados" @@ -1836,8 +1842,8 @@ msgid "Error al aplicar la actualización de la aplicación" msgstr "Error while applying the application update" #: ../../../../lib/SP/Services/Upgrade/UpgradeAppService.php:71 -#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:89 -#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:97 +#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:90 +#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:98 msgid "Compruebe el registro de eventos para más detalles" msgstr "Please, check the event log for more details" @@ -1873,7 +1879,7 @@ msgstr "Parameter" #: ../../../../lib/SP/Services/Upgrade/UpgradeConfigService.php:113 #: ../../../../lib/SP/Services/Upgrade/UpgradeConfigService.php:229 -#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:164 +#: ../../../../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 @@ -1919,27 +1925,27 @@ msgstr "Field updated" msgid "Campo" msgstr "Field" -#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:80 -#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:123 +#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:81 +#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:124 msgid "Actualizar BBDD" msgstr "Update DB" -#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:87 +#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:88 msgid "Error al aplicar la actualización auxiliar" msgstr "Error while applying an auxiliary update" -#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:95 -#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:177 -#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:181 +#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:96 +#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:178 +#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:182 msgid "Error al aplicar la actualización de la Base de Datos" msgstr "Error while updating the database" -#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:155 -#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:157 +#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:156 +#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:158 msgid "El archivo de actualización no contiene datos" msgstr "The update file does not contain data" -#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:187 +#: ../../../../lib/SP/Services/Upgrade/UpgradeDatabaseService.php:188 msgid "Actualización de la Base de Datos realizada correctamente." msgstr "Database updating was completed successfully." @@ -2119,13 +2125,6 @@ msgid "Opción no disponible" msgstr "Option unavailable" #: ../../../../lib/SP/Util/ErrorUtil.php:140 -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:68 -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:142 -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:177 -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:208 -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:238 -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:277 -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:313 #: ../../../modules/web/Controllers/AccountFileController.php:259 #: ../../../modules/web/Controllers/AccountHistoryManagerController.php:59 #: ../../../modules/web/Controllers/AccountManagerController.php:57 @@ -2158,6 +2157,13 @@ msgstr "Option unavailable" #: ../../../modules/web/Controllers/CustomFieldController.php:258 #: ../../../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/NotificationController.php:100 #: ../../../modules/web/Controllers/NotificationController.php:160 #: ../../../modules/web/Controllers/NotificationController.php:175 @@ -2255,8 +2261,8 @@ msgstr "Account displayed" #: ../../../modules/web/Controllers/AccountHistoryManagerController.php:111 #: ../../../modules/web/Controllers/AccountHistoryManagerController.php:146 #: ../../../modules/web/Controllers/AccountManagerController.php:114 -#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:102 -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:105 +#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:101 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:103 #: ../../../modules/web/themes/material-blue/views/account/account-history.inc:15 #: ../../../modules/web/themes/material-blue/views/account/account.inc:24 #: ../../../modules/web/themes/material-blue/views/itemshow/public_link.inc:16 @@ -2278,10 +2284,10 @@ msgstr "Account" #: ../../../modules/api/Controllers/ClientController.php:126 #: ../../../modules/api/Controllers/ClientController.php:155 #: ../../../modules/api/Controllers/TagController.php:118 -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:260 -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:290 -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:326 #: ../../../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/themes/material-blue/views/account/details.inc:138 #: ../../../modules/web/themes/material-blue/views/account/details.inc:140 msgid "ID" @@ -2586,8 +2592,8 @@ msgid "Descripción del cliente" msgstr "Client description" #: ../../../modules/api/Controllers/Help/ClientHelp.php:56 -#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:104 -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:144 +#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:102 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:142 #: ../../../modules/web/themes/material-blue/views/itemshow/client.inc:62 #: ../../../modules/web/themes/material-blue/views/notification/notification.inc:92 msgid "Global" @@ -2679,10 +2685,10 @@ msgstr "Edit Account" #: ../../../modules/web/Controllers/AccountController.php:386 #: ../../../modules/web/Controllers/Helpers/Account/AccountActionsHelper.php:312 #: ../../../modules/web/Controllers/Helpers/Account/AccountActionsHelper.php:313 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountGrid.php:147 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountGrid.php:148 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:175 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:176 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountGrid.php:145 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountGrid.php:146 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:172 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:173 #: ../../../config/actions.xml:163 ../../../config/actions.xml:481 #: ../../../config/actions.xml:781 msgid "Eliminar Cuenta" @@ -2725,11 +2731,11 @@ msgid "Solicitante" msgstr "Requester" #: ../../../modules/web/Controllers/AccountController.php:901 -#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:104 -#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:103 +#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:102 +#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:101 #: ../../../modules/web/Controllers/Helpers/Grid/EventlogGrid.php:106 -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:121 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:106 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:119 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:103 #: ../../../modules/web/themes/material-blue/views/itemshow/category.inc:28 #: ../../../modules/web/themes/material-blue/views/itemshow/client.inc:32 #: ../../../modules/web/themes/material-blue/views/itemshow/user_group.inc:32 @@ -2742,48 +2748,6 @@ msgstr "Description" msgid "Solicitud realizada" msgstr "Request done" -#. (itstool) path: action/text -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:71 -#: ../../../config/actions.xml:847 -msgid "Ver Permiso" -msgstr "View Permission" - -#. (itstool) path: action/text -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:181 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php:156 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php:157 -#: ../../../config/actions.xml:853 -msgid "Nuevo Permiso" -msgstr "New Permission" - -#. (itstool) path: action/text -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:211 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php:174 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php:175 -#: ../../../config/actions.xml:859 -msgid "Editar Permiso" -msgstr "Edit Permission" - -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:248 -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:251 -msgid "Permisos eliminados" -msgstr "Permissions deleted" - -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:259 -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:263 -msgid "Permiso eliminado" -msgstr "Permission deleted" - -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:289 -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:293 -msgid "Permiso creado" -msgstr "Permission added" - -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:325 -#: ../../../modules/web/Controllers/AccountDefaultPermissionController.php:329 -msgid "Permiso actualizado" -msgstr "Permission updated" - #: ../../../modules/web/Controllers/AccountFavoriteController.php:55 msgid "Favorito añadido" msgstr "Favorite added" @@ -2853,7 +2817,7 @@ msgid "Archivo guardado" msgstr "File saved" #: ../../../modules/web/Controllers/AccountFileController.php:234 -#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:106 +#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:105 msgid "Tamaño" msgstr "Size" @@ -2879,14 +2843,14 @@ msgid "No hay archivos asociados a la cuenta" msgstr "There are no linked files for the account" #: ../../../modules/web/Controllers/AuthTokenController.php:101 -#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:153 -#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:154 +#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:150 +#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:151 msgid "Nueva Autorización" msgstr "New Authorization" #: ../../../modules/web/Controllers/AuthTokenController.php:165 -#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:188 -#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:189 +#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:185 +#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:186 msgid "Editar Autorización" msgstr "Edit Authorization" @@ -2914,8 +2878,8 @@ msgstr "Authorization viewed" #. (itstool) path: action/text #: ../../../modules/web/Controllers/CategoryController.php:99 -#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:149 -#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:150 +#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:147 +#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:148 #: ../../../modules/web/themes/material-blue/views/account/account.inc:110 #: ../../../config/actions.xml:301 msgid "Nueva Categoría" @@ -2923,8 +2887,8 @@ msgstr "New Category" #. (itstool) path: action/text #: ../../../modules/web/Controllers/CategoryController.php:162 -#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:167 -#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:168 +#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:165 +#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:166 #: ../../../config/actions.xml:307 msgid "Editar Categoría" msgstr "Edit Category" @@ -2942,8 +2906,8 @@ msgstr "View Category" #. (itstool) path: action/text #: ../../../modules/web/Controllers/ClientController.php:100 -#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:152 -#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:153 +#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:150 +#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:151 #: ../../../modules/web/themes/material-blue/views/account/account.inc:86 #: ../../../config/actions.xml:331 msgid "Nuevo Cliente" @@ -2951,8 +2915,8 @@ msgstr "New Client" #. (itstool) path: action/text #: ../../../modules/web/Controllers/ClientController.php:163 -#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:170 -#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:171 +#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:168 +#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:169 #: ../../../config/actions.xml:337 msgid "Editar Cliente" msgstr "Edit Client" @@ -3012,7 +2976,7 @@ msgid "Verificación de datos exportados finalizada" msgstr "Verification of exported data finished" #: ../../../modules/web/Controllers/ConfigBackupController.php:119 -#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:124 +#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:123 #: ../../../modules/web/themes/material-blue/views/common/aux-customfields.inc:13 #: ../../../modules/web/themes/material-blue/views/itemshow/custom_field.inc:86 msgid "Encriptado" @@ -3029,7 +2993,7 @@ msgid "No" msgstr "No" #: ../../../modules/web/Controllers/ConfigBackupController.php:123 -#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:91 +#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:89 #: ../../../modules/web/themes/material-blue/views/account/account.inc:203 #: ../../../modules/web/themes/material-blue/views/account/account.inc:205 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:309 @@ -3292,14 +3256,14 @@ msgid "DokuWiki deshabilitada" msgstr "DokuWiki disabled" #: ../../../modules/web/Controllers/CustomFieldController.php:101 +#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:154 #: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:155 -#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:156 msgid "Nuevo Campo" msgstr "New Field" #: ../../../modules/web/Controllers/CustomFieldController.php:162 +#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:172 #: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:173 -#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:174 msgid "Editar Campo" msgstr "Edit Field" @@ -3458,69 +3422,36 @@ msgstr "URL / IP" msgid "Ordenar por URL / IP" msgstr "Sort by URL / IP" -#: ../../../modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php:90 -msgid "Permisos por Defecto" -msgstr "Default Permissions" - -#: ../../../modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php:104 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:116 -#: ../../../modules/web/Controllers/UserProfileController.php:216 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:51 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:53 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:56 -#: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:122 -#: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:124 -msgid "Perfil" -msgstr "Profile" - -#: ../../../modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php:105 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:69 -msgid "Prioridad" -msgstr "Priority" - -#: ../../../modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php:106 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:105 -msgid "Forzado" -msgstr "Forced" - -#: ../../../modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php:124 -#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:120 -#: ../../../config/strings.js.inc:66 -msgid "SI" -msgstr "YES" - -#: ../../../modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php:124 -#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:120 -#: ../../../config/strings.js.inc:67 -msgid "NO" -msgstr "NO" +#: ../../../modules/web/Controllers/Helpers/Grid/AccountGrid.php:67 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:68 +#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:71 +#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:70 +#: ../../../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/NotificationGrid.php:83 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:71 +#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:70 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:80 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:71 +#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:71 +msgid "Eliminar Seleccionados" +msgstr "Delete Selected" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php:141 -#: ../../../config/actions.xml:841 -msgid "Buscar Permiso" -msgstr "Search for Permission" - -#. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php:191 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php:192 -#: ../../../config/actions.xml:865 -msgid "Eliminar Permiso" -msgstr "Delete Permission" - -#. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/AccountGrid.php:132 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:143 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountGrid.php:130 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:140 #: ../../../config/actions.xml:487 ../../../config/actions.xml:787 msgid "Buscar Cuenta" msgstr "Search for Account" -#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:90 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:87 msgid "Cuentas (H)" msgstr "Accounts (H)" -#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:105 -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:118 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:102 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:116 #: ../../../modules/web/themes/material-blue/views/account/account-editpass.inc:98 #: ../../../modules/web/themes/material-blue/views/account/account-history.inc:112 #: ../../../modules/web/themes/material-blue/views/account/account.inc:182 @@ -3530,95 +3461,107 @@ msgstr "Accounts (H)" msgid "Fecha" msgstr "Date" -#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:106 -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:122 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:103 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:120 #: ../../../modules/web/Controllers/Helpers/Grid/PluginGrid.php:102 msgid "Estado" msgstr "Status" -#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:127 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:124 msgid "Modificada" msgstr "Modified" -#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:128 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:125 msgid "Eliminada" msgstr "Removed" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:158 -#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:159 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:155 +#: ../../../modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php:156 #: ../../../config/actions.xml:181 ../../../config/actions.xml:793 msgid "Restaurar Cuenta" msgstr "Account Restore" -#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:93 +#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:90 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:357 msgid "Autorizaciones API" msgstr "API Authorizations" -#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:138 +#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:135 msgid "Buscar Token" msgstr "Search for Token" -#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:171 -#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:172 +#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:168 +#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:169 msgid "Ver token de Autorización" msgstr "View Authorization token" -#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:205 -#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:206 +#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:202 +#: ../../../modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php:203 msgid "Eliminar Autorización" msgstr "Delete Authorization" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:134 +#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:132 #: ../../../config/actions.xml:319 msgid "Buscar Categoría" msgstr "Search for Category" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:184 -#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:185 +#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:182 +#: ../../../modules/web/Controllers/Helpers/Grid/CategoryGrid.php:183 #: ../../../config/actions.xml:313 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" + #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:137 +#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:135 #: ../../../config/actions.xml:349 msgid "Buscar Cliente" msgstr "Search for Client" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:187 -#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:188 +#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:185 +#: ../../../modules/web/Controllers/Helpers/Grid/ClientGrid.php:186 #: ../../../config/actions.xml:343 msgid "Eliminar Cliente" msgstr "Delete Client" -#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:91 +#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:90 #: ../../../modules/web/themes/material-blue/views/account/account.inc:27 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:341 msgid "Campos Personalizados" msgstr "Custom Fields" -#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:104 +#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:103 #: ../../../modules/web/themes/material-blue/views/itemshow/custom_field.inc:45 #: ../../../modules/web/themes/material-blue/views/itemshow/custom_field.inc:47 msgid "Módulo" msgstr "Module" -#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:106 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:118 +#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:105 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:115 msgid "Propiedades" msgstr "Properties" -#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:140 +#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:139 msgid "Buscar Campo" msgstr "Search for Field" +#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:189 #: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:190 -#: ../../../modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php:191 msgid "Eliminar Campo" msgstr "Delete Field" @@ -3643,7 +3586,7 @@ msgid "Evento" msgstr "Event" #: ../../../modules/web/Controllers/Helpers/Grid/EventlogGrid.php:104 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:115 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:112 #: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:44 #: ../../../modules/web/themes/material-blue/views/itemshow/user_pass.inc:26 msgid "Login" @@ -3668,7 +3611,7 @@ msgid "Vaciar registro de eventos" msgstr "Clear event log" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:90 +#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:89 #: ../../../modules/web/themes/material-blue/views/account/account.inc:35 #: ../../../modules/web/themes/material-blue/views/config/accounts.inc:277 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:145 @@ -3678,37 +3621,84 @@ msgid "Archivos" msgstr "Files" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:141 +#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:140 #: ../../../config/actions.xml:469 msgid "Buscar Archivo" msgstr "Search for File" #. (itstool) path: action/text +#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:155 #: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:156 -#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:157 #: ../../../modules/web/themes/material-blue/views/account/files-list.inc:45 #: ../../../config/actions.xml:199 ../../../config/actions.xml:445 msgid "Ver Archivo" msgstr "View File" #. (itstool) path: action/text +#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:172 #: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:173 -#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:174 #: ../../../modules/web/themes/material-blue/views/account/files-list.inc:38 #: ../../../config/actions.xml:211 ../../../config/actions.xml:451 msgid "Descargar Archivo" msgstr "Download File" #. (itstool) path: action/text +#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:189 #: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:190 -#: ../../../modules/web/Controllers/Helpers/Grid/FileGrid.php:191 #: ../../../modules/web/themes/material-blue/views/account/files-list.inc:30 #: ../../../config/actions.xml:217 ../../../config/actions.xml:457 msgid "Eliminar Archivo" msgstr "Delete File" +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:88 +msgid "Valores por Defecto" +msgstr "Default Values" + +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:103 +#: ../../../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 +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:54 +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:57 +#: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:122 +#: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:124 +msgid "Perfil" +msgstr "Profile" + +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:104 +#: ../../../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/themes/material-blue/views/itemshow/item_preset.inc:106 +msgid "Forzado" +msgstr "Forced" + +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:141 +msgid "Buscar Valor" +msgstr "Search for Value" + #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:105 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:156 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:157 +#: ../../../config/actions.xml:853 +msgid "Nuevo Permiso" +msgstr "New Permission" + +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:177 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:178 +#: ../../../modules/web/Controllers/ItemPresetController.php:216 +msgid "Editar Valor" +msgstr "Edit Value" + +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:194 +#: ../../../modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php:195 +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/views/_partials/fixed-header.inc:105 #: ../../../modules/web/themes/material-blue/views/notification/index.inc:1 @@ -3716,60 +3706,60 @@ msgstr "Delete File" msgid "Notificaciones" msgstr "Notifications" -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:120 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:118 #: ../../../modules/web/themes/material-blue/views/notification/notification.inc:28 #: ../../../modules/web/themes/material-blue/views/notification/notification.inc:35 msgid "Componente" msgstr "Component" -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:142 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:140 #: ../../../modules/web/themes/material-blue/views/notification/notification.inc:104 #: ../../../modules/web/themes/material-blue/views/notification/notification.inc:108 msgid "Leída" msgstr "Read" -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:143 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:141 msgid "Sólo Admins" msgstr "Only Admins" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:160 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:158 #: ../../../config/actions.xml:829 msgid "Buscar Notificación" msgstr "Search for Notification" -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:175 -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:176 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:173 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:174 #: ../../../modules/web/Controllers/NotificationController.php:179 msgid "Nueva Notificación" msgstr "New Notification" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:193 -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:194 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:191 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:192 #: ../../../modules/web/Controllers/NotificationController.php:103 #: ../../../config/actions.xml:799 msgid "Ver Notificación" msgstr "View Notification" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:223 -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:224 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:221 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:222 #: ../../../config/actions.xml:823 msgid "Marcar Notificación" msgstr "Checkout Notification" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:241 -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:242 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:239 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:240 #: ../../../modules/web/Controllers/NotificationController.php:210 #: ../../../config/actions.xml:811 msgid "Editar Notificación" msgstr "Edit Notification" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:258 -#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:259 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:256 +#: ../../../modules/web/Controllers/Helpers/Grid/NotificationGrid.php:257 #: ../../../config/actions.xml:817 msgid "Eliminar Notificación" msgstr "Delete Notification" @@ -3815,32 +3805,32 @@ msgstr "Disable" msgid "Restablecer Datos" msgstr "Reset Data" -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:93 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:91 #: ../../../modules/web/themes/material-blue/views/account/account.inc:43 msgid "Enlaces" msgstr "Links" -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:107 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:105 #: ../../../modules/web/themes/material-blue/views/itemshow/public_link.inc:44 #: ../../../modules/web/themes/material-blue/views/itemshow/public_link.inc:46 msgid "Fecha Creación" msgstr "Creation Date" -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:108 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:106 #: ../../../modules/web/themes/material-blue/views/account/search-rows.inc:182 #: ../../../modules/web/themes/material-blue/views/itemshow/public_link.inc:52 #: ../../../modules/web/themes/material-blue/views/itemshow/public_link.inc:54 msgid "Fecha Caducidad" msgstr "Expiry Date " -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:110 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:108 #: ../../../modules/web/themes/material-blue/views/itemshow/public_link.inc:31 #: ../../../modules/web/themes/material-blue/views/itemshow/public_link.inc:34 #: ../../../modules/web/themes/material-blue/views/itemshow/public_link.inc:38 msgid "Notificar" msgstr "Notify" -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:111 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:109 #: ../../../modules/web/themes/material-blue/views/account/details.inc:9 #: ../../../modules/web/themes/material-blue/views/account/details.inc:11 #: ../../../modules/web/themes/material-blue/views/account/search-rows.inc:184 @@ -3849,102 +3839,102 @@ msgstr "Notify" msgid "Visitas" msgstr "Visits" -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:146 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:144 msgid "Buscar Enlace" msgstr "Search for Link" -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:161 -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:162 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:159 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:160 msgid "Nuevo Enlace" msgstr "New Link" -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:179 -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:180 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:177 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:178 #: ../../../modules/web/Controllers/PublicLinkController.php:336 msgid "Ver Enlace" msgstr "View Link" -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:195 -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:196 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:193 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:194 msgid "Renovar Enlace" msgstr "Renew Link" -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:212 -#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:213 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:210 +#: ../../../modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php:211 msgid "Eliminar Enlace" msgstr "Delete Link" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:132 +#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:130 #: ../../../config/actions.xml:517 msgid "Buscar Etiqueta" msgstr "Search for Tag" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:147 -#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:148 +#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:145 +#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:146 #: ../../../modules/web/Controllers/TagController.php:98 #: ../../../config/actions.xml:493 msgid "Nueva Etiqueta" msgstr "New Tag" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:165 -#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:166 +#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:163 +#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:164 #: ../../../modules/web/Controllers/TagController.php:157 #: ../../../config/actions.xml:505 msgid "Editar Etiqueta" msgstr "Edit Tag" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:182 -#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:183 +#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:180 +#: ../../../modules/web/Controllers/Helpers/Grid/TagGrid.php:181 #: ../../../config/actions.xml:511 msgid "Eliminar Etiqueta" msgstr "Delete Tag" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:154 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:151 #: ../../../config/actions.xml:589 msgid "Buscar Usuario" msgstr "Search for User" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:169 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:170 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:166 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:167 #: ../../../modules/web/Controllers/UserController.php:105 #: ../../../config/actions.xml:565 msgid "Nuevo Usuario" msgstr "New User" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:187 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:188 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:184 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:185 #: ../../../modules/web/Controllers/UserController.php:190 #: ../../../config/actions.xml:571 msgid "Editar Usuario" msgstr "Edit User" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:204 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:205 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:201 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:202 #: ../../../config/actions.xml:577 msgid "Eliminar Usuario" msgstr "Delete User" -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:221 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:222 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:218 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:219 #: ../../../modules/web/themes/material-blue/views/config/ldap.inc:440 msgid "Importar usuarios de LDAP" msgstr "Import users from LDAP" -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:236 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:237 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:233 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:234 msgid "Ver Detalles de Usuario" msgstr "View User Details" -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:253 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:254 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:250 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGrid.php:251 #: ../../../modules/web/themes/material-blue/views/_partials/fixed-header.inc:62 #: ../../../modules/web/themes/material-blue/views/_partials/fixed-header.inc:120 #: ../../../modules/web/themes/material-blue/views/_partials/fixed-header.inc:126 @@ -3952,77 +3942,77 @@ msgid "Cambiar Clave de Usuario" msgstr "Change User's Password" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:136 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:133 #: ../../../config/actions.xml:619 msgid "Buscar Grupo" msgstr "Search for Group" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:151 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:152 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:148 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:149 #: ../../../modules/web/Controllers/UserGroupController.php:106 #: ../../../config/actions.xml:601 msgid "Nuevo Grupo" msgstr "New Group" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:169 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:170 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:166 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:167 #: ../../../modules/web/Controllers/UserGroupController.php:319 #: ../../../config/actions.xml:595 msgid "Ver Grupo" msgstr "View Group" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:186 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:187 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:183 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:184 #: ../../../modules/web/Controllers/UserGroupController.php:171 #: ../../../config/actions.xml:607 msgid "Editar Grupo" msgstr "Edit Group" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:203 -#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:204 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:200 +#: ../../../modules/web/Controllers/Helpers/Grid/UserGroupGrid.php:201 #: ../../../config/actions.xml:613 msgid "Eliminar Grupo" msgstr "Delete Group" -#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:93 +#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:90 #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:277 msgid "Perfiles" msgstr "Profiles" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:134 +#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:131 #: ../../../config/actions.xml:649 msgid "Buscar Perfil" msgstr "Search for Profile" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:149 -#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:150 +#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:146 +#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:147 #: ../../../modules/web/Controllers/UserProfileController.php:100 #: ../../../config/actions.xml:631 msgid "Nuevo Perfil" msgstr "New Profile" -#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:167 -#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:168 +#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:164 +#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:165 msgid "Ver Detalles de Perfil" msgstr "View Profile Details" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:184 -#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:185 +#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:181 +#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:182 #: ../../../modules/web/Controllers/UserProfileController.php:166 #: ../../../config/actions.xml:637 msgid "Editar Perfil" msgstr "Edit Profile" #. (itstool) path: action/text -#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:201 -#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:202 +#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:198 +#: ../../../modules/web/Controllers/Helpers/Grid/UserProfileGrid.php:199 #: ../../../config/actions.xml:643 msgid "Eliminar Perfil" msgstr "Delete Profile" @@ -4065,6 +4055,34 @@ msgstr "Without this module the application could not run correctly" msgid "Instalación finalizada" msgstr "Installation finished" +#: ../../../modules/web/Controllers/ItemPresetController.php:70 +msgid "Ver Valor" +msgstr "Display Value" + +#: ../../../modules/web/Controllers/ItemPresetController.php:186 +msgid "Nuevo Valor" +msgstr "New Value" + +#: ../../../modules/web/Controllers/ItemPresetController.php:253 +#: ../../../modules/web/Controllers/ItemPresetController.php:256 +msgid "Valores eliminados" +msgstr "Values deleted" + +#: ../../../modules/web/Controllers/ItemPresetController.php:264 +#: ../../../modules/web/Controllers/ItemPresetController.php:268 +msgid "Valor eliminado" +msgstr "Value deleted" + +#: ../../../modules/web/Controllers/ItemPresetController.php:296 +#: ../../../modules/web/Controllers/ItemPresetController.php:301 +msgid "Valor creado" +msgstr "Value created" + +#: ../../../modules/web/Controllers/ItemPresetController.php:335 +#: ../../../modules/web/Controllers/ItemPresetController.php:340 +msgid "Valor actualizado" +msgstr "Value updated" + #: ../../../modules/web/Controllers/LoginController.php:101 msgid "Finalizar sesión" msgstr "Logout session" @@ -4295,14 +4313,6 @@ msgstr "Preferences updated" msgid "Preferencias" msgstr "Preferences" -#: ../../../modules/web/Forms/AccountDefaultPermissionForm.php:111 -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" - -#: ../../../modules/web/Forms/AccountDefaultPermissionForm.php:115 -msgid "No hay permisos definidos" -msgstr "There aren't any defined permissions" - #: ../../../modules/web/Forms/AccountForm.php:139 msgid "Es necesaria una clave" msgstr "A key is needed" @@ -4348,6 +4358,18 @@ msgstr "Field type not set" msgid "Módulo del campo no indicado" msgstr "Field module not set" +#: ../../../modules/web/Forms/ItemsPresetForm.php:102 +msgid "Tipo de valor no definido o incorrecto" +msgstr "Value type not set or incorrect" + +#: ../../../modules/web/Forms/ItemsPresetForm.php:119 +msgid "No hay permisos definidos" +msgstr "There aren't any defined permissions" + +#: ../../../modules/web/Forms/ItemsPresetForm.php:136 +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" + #: ../../../modules/web/Forms/NotificationForm.php:92 msgid "Es necesario un componente" msgstr "A component is needed" @@ -4411,8 +4433,8 @@ 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/views/itemshow/account_default_permission.inc:138 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:177 +#: ../../../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" @@ -4611,7 +4633,7 @@ msgstr "Clear event log?" #: ../../../modules/web/themes/material-blue/views/config/general-auth.inc:87 #: ../../../modules/web/themes/material-blue/views/config/import.inc:57 #: ../../../modules/web/themes/material-blue/views/config/ldap.inc:233 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:40 +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:41 #: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:145 msgid "Seleccionar Grupo" msgstr "Select Group" @@ -4621,14 +4643,14 @@ msgstr "Select Group" #: ../../../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 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:23 #: ../../../modules/web/themes/material-blue/views/itemshow/auth_token.inc:21 +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:24 #: ../../../modules/web/themes/material-blue/views/notification/notification.inc:74 msgid "Seleccionar Usuario" msgstr "Select User" #: ../../../config/strings.js.inc:49 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:57 +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:58 #: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:128 msgid "Seleccionar Perfil" msgstr "Select Profile" @@ -4923,24 +4945,24 @@ 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/itemshow/account_default_permission.inc:122 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:161 +#: ../../../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/itemshow/account_default_permission.inc:126 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:142 +#: ../../../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/itemshow/account_default_permission.inc:165 -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:181 +#: ../../../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" @@ -6308,10 +6330,6 @@ msgstr "Namespace used to search pages." msgid "Instalar" msgstr "Install" -#: ../../../modules/web/themes/material-blue/views/grid/datagrid-grid.inc:97 -msgid "Eliminar Seleccionados" -msgstr "Delete Selected" - #: ../../../modules/web/themes/material-blue/views/grid/datagrid-nav-full.inc:11 msgid "Filtro ON" msgstr "Filter ON" @@ -6373,28 +6391,6 @@ msgstr "Hosting Mode" 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" -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:75 -msgid "" -"Prioridad de asignación en caso de coincidir con otros permisos asignados " -"por usuario, grupo o perfil." -msgstr "" -"Assignment priority if permissions match with others assigned by user, group " -"or profile." - -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:86 -msgid "Prioridad de asignación" -msgstr "Assignment Priority" - -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:107 -msgid "Indica si los permisos serán forzados al crear o modificar la cuenta." -msgstr "" -"Enforces the permissions to be set either on creating or updating an " -"account ." - -#: ../../../modules/web/themes/material-blue/views/itemshow/account_default_permission.inc:109 -msgid "Los permisos serán añadidos a los existentes." -msgstr "Permissions will be merged with the existing ones." - #: ../../../modules/web/themes/material-blue/views/itemshow/auth_token.inc:58 #: ../../../modules/web/themes/material-blue/views/itemshow/user.inc:12 #: ../../../modules/web/themes/material-blue/views/notification/notification.inc:85 @@ -6439,6 +6435,27 @@ msgstr "Field help" msgid "Obligatorio" msgstr "Required" +#: ../../../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 " +"usuario, grupo o perfil." +msgstr "" +"Assignment priority if values match with others assigned by user, group or " +"profile." + +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:87 +msgid "Prioridad de asignación" +msgstr "Assignment Priority" + +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:108 +msgid "" +"Indica si los valores serán forzados al crear o modificar los elementos." +msgstr "Enforces the values to be set either on creating or updating an item." + +#: ../../../modules/web/themes/material-blue/views/itemshow/item_preset.inc:110 +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" @@ -6665,8 +6682,8 @@ msgid "Gestión de cuentas" msgstr "Accounts management" #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:422 -msgid "Gestión de Permisos" -msgstr "Permissions Management" +msgid "Gestión de Valores por Defecto" +msgstr "Default Values Management" #. (itstool) path: action/text #: ../../../modules/web/themes/material-blue/views/itemshow/user_profile.inc:442 @@ -7199,6 +7216,26 @@ msgstr "Create Notification" msgid "Gestión Permisos" msgstr "Permissions Management" +#. (itstool) path: action/text +#: ../../../config/actions.xml:841 +msgid "Buscar Permiso" +msgstr "Search for Permission" + +#. (itstool) path: action/text +#: ../../../config/actions.xml:847 +msgid "Ver Permiso" +msgstr "View Permission" + +#. (itstool) path: action/text +#: ../../../config/actions.xml:859 +msgid "Editar Permiso" +msgstr "Edit Permission" + +#. (itstool) path: action/text +#: ../../../config/actions.xml:865 +msgid "Eliminar Permiso" +msgstr "Delete Permission" + #. (itstool) path: strings/text #: ../../../config/strings.xml:4 msgid "Color" @@ -7229,6 +7266,24 @@ msgstr "Text" msgid "Link" msgstr "Link" +#~ msgid "Permiso no encontrada" +#~ msgstr "Permission not found" + +#~ msgid "Permisos eliminados" +#~ msgstr "Permissions deleted" + +#~ msgid "Permiso eliminado" +#~ msgstr "Permission deleted" + +#~ msgid "Permiso creado" +#~ msgstr "Permission added" + +#~ msgid "Permiso actualizado" +#~ msgstr "Permission updated" + +#~ msgid "Gestión de Permisos" +#~ msgstr "Permissions Management" + #, fuzzy #~ msgid "Error al eliminar permisos" #~ msgstr "Error while removing the profile" @@ -7394,9 +7449,6 @@ msgstr "Link" #~ msgid "Modificar configuración" #~ msgstr "Update Configuration" -#~ msgid "Valor" -#~ msgstr "Value" - #~ msgid "Sección" #~ msgstr "Section" diff --git a/app/modules/web/Controllers/AccessManagerController.php b/app/modules/web/Controllers/AccessManagerController.php index 687509ab..1bdcadaa 100644 --- a/app/modules/web/Controllers/AccessManagerController.php +++ b/app/modules/web/Controllers/AccessManagerController.php @@ -27,14 +27,12 @@ namespace SP\Modules\Web\Controllers; use SP\Core\Acl\Acl; use SP\Core\Events\Event; use SP\DataModel\ItemSearchData; -use SP\Modules\Web\Controllers\Helpers\Grid\AccountDefaultPermissionGrid; use SP\Modules\Web\Controllers\Helpers\Grid\AuthTokenGrid; use SP\Modules\Web\Controllers\Helpers\Grid\PublicLinkGrid; use SP\Modules\Web\Controllers\Helpers\Grid\UserGrid; use SP\Modules\Web\Controllers\Helpers\Grid\UserGroupGrid; use SP\Modules\Web\Controllers\Helpers\Grid\UserProfileGrid; use SP\Modules\Web\Controllers\Helpers\TabsGridHelper; -use SP\Services\Account\AccountDefaultPermissionService; use SP\Services\AuthToken\AuthTokenService; use SP\Services\PublicLink\PublicLinkService; use SP\Services\User\UserService; @@ -91,10 +89,6 @@ final class AccessManagerController extends ControllerBase $this->tabsGridHelper->addTab($this->getUsersProfileList()); } - if ($this->checkAccess(Acl::ACCOUNT_DEFAULT_PERMISSION)) { - $this->tabsGridHelper->addTab($this->getAccountDefaultPermissionList()); - } - if ($this->checkAccess(Acl::AUTHTOKEN)) { $this->tabsGridHelper->addTab($this->getApiTokensList()); } @@ -181,20 +175,6 @@ final class AccessManagerController extends ControllerBase ->updatePager(); } - /** - * Returns API tokens data tab - * - * @return \SP\Html\DataGrid\DataGridTab - * @throws \SP\Core\Exceptions\ConstraintException - * @throws \SP\Core\Exceptions\QueryException - */ - protected function getAccountDefaultPermissionList() - { - return $this->dic->get(AccountDefaultPermissionGrid::class) - ->getGrid($this->dic->get(AccountDefaultPermissionService::class)->search($this->itemSearchData)) - ->updatePager(); - } - /** * @return TabsGridHelper */ diff --git a/app/modules/web/Controllers/Helpers/Account/AccountHelper.php b/app/modules/web/Controllers/Helpers/Account/AccountHelper.php index 4519959d..85db694d 100644 --- a/app/modules/web/Controllers/Helpers/Account/AccountHelper.php +++ b/app/modules/web/Controllers/Helpers/Account/AccountHelper.php @@ -39,12 +39,12 @@ use SP\Mvc\View\Components\SelectItemAdapter; use SP\Repositories\NoSuchItemException; use SP\Services\Account\AccountAcl; use SP\Services\Account\AccountAclService; -use SP\Services\Account\AccountDefaultPermissionService; use SP\Services\Account\AccountHistoryService; use SP\Services\Account\AccountService; use SP\Services\Category\CategoryService; use SP\Services\Client\ClientService; use SP\Services\Crypt\MasterPassService; +use SP\Services\ItemPreset\ItemPresetInterface; use SP\Services\PublicLink\PublicLinkService; use SP\Services\Tag\TagService; use SP\Services\User\UpdatedMasterPassException; @@ -77,9 +77,9 @@ final class AccountHelper extends HelperBase */ private $publicLinkService; /** - * @var AccountDefaultPermissionService + * @var \SP\Services\ItemPreset\ItemPresetService */ - private $accountDefaultPermissionService; + private $itemPresetService; /** * @var string */ @@ -306,6 +306,7 @@ final class AccountHelper extends HelperBase * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException * @throws \SP\Services\ServiceException + * @throws \SP\Core\Exceptions\NoSuchPropertyException */ public function setViewForBlank($actionId) { @@ -319,8 +320,8 @@ final class AccountHelper extends HelperBase $this->accountAcl->setShowPermission($userData->getIsAdminApp() || $userData->getIsAdminAcc() || $userProfileData->isAccPermission()); - $accountDefaultPermission = $this->accountDefaultPermissionService->getForCurrentUser(); - $accountPermission = $accountDefaultPermission !== null ? $accountDefaultPermission->getAccountPermission() : new AccountPermission(); + $accountPermission = $this->itemPresetService->getForCurrentUser(ItemPresetInterface::ITEM_TYPE_PERMISSION) + ->hydrate(AccountPermission::class, 'data') ?: new AccountPermission(); $selectUsers = SelectItemAdapter::factory(UserService::getItemsBasic()); $selectUserGroups = SelectItemAdapter::factory(UserGroupService::getItemsBasic()); @@ -394,7 +395,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->accountDefaultPermissionService = $this->dic->get(AccountDefaultPermissionService::class); + $this->itemPresetService = $this->dic->get(\SP\Services\ItemPreset\ItemPresetService::class); $this->view->assign('changesHash'); $this->view->assign('chkUserEdit'); diff --git a/app/modules/web/Controllers/Helpers/Grid/AccountGrid.php b/app/modules/web/Controllers/Helpers/Grid/AccountGrid.php index 6f956a12..7038c2f3 100644 --- a/app/modules/web/Controllers/Helpers/Grid/AccountGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/AccountGrid.php @@ -63,10 +63,8 @@ final class AccountGrid extends GridBase $grid->setDataActions($this->getSearchAction()); $grid->setPager($this->getPager($searchAction)); - $deleteAction = $this->getDeleteAction(); - - $grid->setDataActions($deleteAction); - $grid->setDataActions($deleteAction, true); + $grid->setDataActions($this->getDeleteAction()); + $grid->setDataActions($this->getDeleteAction()->setTitle(__('Eliminar Seleccionados')), true); $grid->setTime(round(getElapsedTime($this->queryTimeStart), 5)); diff --git a/app/modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php b/app/modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php index 53d465f8..29f09c68 100644 --- a/app/modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/AccountHistoryGrid.php @@ -64,11 +64,8 @@ final class AccountHistoryGrid extends GridBase $grid->setPager($this->getPager($searchAction)); $grid->setDataActions($this->getRestoreAction()); - - $deleteAction = $this->getDeleteAction(); - - $grid->setDataActions($deleteAction); - $grid->setDataActions($deleteAction, true); + $grid->setDataActions($this->getDeleteAction()); + $grid->setDataActions($this->getDeleteAction()->setTitle(__('Eliminar Seleccionados')), true); $grid->setTime(round(getElapsedTime($this->queryTimeStart), 5)); diff --git a/app/modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php b/app/modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php index b25dc4db..7757bb17 100644 --- a/app/modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/AuthTokenGrid.php @@ -67,11 +67,8 @@ final class AuthTokenGrid extends GridBase $grid->setDataActions($this->getCreateAction()); $grid->setDataActions($this->getViewAction()); $grid->setDataActions($this->getEditAction()); - - $deleteAction = $this->getDeleteAction(); - - $grid->setDataActions($deleteAction); - $grid->setDataActions($deleteAction, true); + $grid->setDataActions($this->getDeleteAction()); + $grid->setDataActions($this->getDeleteAction()->setTitle(__('Eliminar Seleccionados')), true); $grid->setTime(round(getElapsedTime($this->queryTimeStart), 5)); diff --git a/app/modules/web/Controllers/Helpers/Grid/CategoryGrid.php b/app/modules/web/Controllers/Helpers/Grid/CategoryGrid.php index 34b3dac0..dba47f0c 100644 --- a/app/modules/web/Controllers/Helpers/Grid/CategoryGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/CategoryGrid.php @@ -63,13 +63,11 @@ final class CategoryGrid extends GridBase $grid->setDataActions($this->getSearchAction()); $grid->setPager($this->getPager($searchAction)); + $grid->setDataActions($this->getCreateAction()); $grid->setDataActions($this->getEditAction()); - - $deleteAction = $this->getDeleteAction(); - - $grid->setDataActions($deleteAction); - $grid->setDataActions($deleteAction, true); + $grid->setDataActions($this->getDeleteAction()); + $grid->setDataActions($this->getDeleteAction()->setTitle(__('Eliminar Seleccionados')), true); $grid->setTime(round(getElapsedTime($this->queryTimeStart), 5)); diff --git a/app/modules/web/Controllers/Helpers/Grid/ClientGrid.php b/app/modules/web/Controllers/Helpers/Grid/ClientGrid.php index 7dbf92d3..db700d6e 100644 --- a/app/modules/web/Controllers/Helpers/Grid/ClientGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/ClientGrid.php @@ -62,13 +62,11 @@ final class ClientGrid extends GridBase $grid->setDataActions($this->getSearchAction()); $grid->setPager($this->getPager($searchAction)); + $grid->setDataActions($this->getCreateAction()); $grid->setDataActions($this->getEditAction()); - - $deleteAction = $this->getDeleteAction(); - - $grid->setDataActions($deleteAction); - $grid->setDataActions($deleteAction, true); + $grid->setDataActions($this->getDeleteAction()); + $grid->setDataActions($this->getDeleteAction()->setTitle(__('Eliminar Seleccionados')), true); $grid->setTime(round(getElapsedTime($this->queryTimeStart), 5)); diff --git a/app/modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php b/app/modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php index c1dba695..3382f6bf 100644 --- a/app/modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/CustomFieldGrid.php @@ -63,13 +63,12 @@ final class CustomFieldGrid extends GridBase $grid->setDataActions($this->getSearchAction()); $grid->setPager($this->getPager($searchAction)); + $grid->setDataActions($this->getCreateAction()); $grid->setDataActions($this->getEditAction()); + $grid->setDataActions($this->getDeleteAction()); + $grid->setDataActions($this->getDeleteAction()->setTitle(__('Eliminar Seleccionados')), true); - $deleteAction = $this->getDeleteAction(); - - $grid->setDataActions($deleteAction); - $grid->setDataActions($deleteAction, true); $grid->setTime(round(getElapsedTime($this->queryTimeStart), 5)); diff --git a/app/modules/web/Controllers/Helpers/Grid/FileGrid.php b/app/modules/web/Controllers/Helpers/Grid/FileGrid.php index c3fbdf08..6cc846f8 100644 --- a/app/modules/web/Controllers/Helpers/Grid/FileGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/FileGrid.php @@ -62,13 +62,12 @@ final class FileGrid extends GridBase $grid->setDataActions($this->getSearchAction()); $grid->setPager($this->getPager($searchAction)); + $grid->setDataActions($this->getViewAction()); $grid->setDataActions($this->getDownloadAction()); + $grid->setDataActions($this->getDeleteAction()); + $grid->setDataActions($this->getDeleteAction()->setTitle(__('Eliminar Seleccionados')), true); - $deleteAction = $this->getDeleteAction(); - - $grid->setDataActions($deleteAction); - $grid->setDataActions($deleteAction, true); $grid->setTime(round(getElapsedTime($this->queryTimeStart), 5)); diff --git a/app/modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php b/app/modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php similarity index 78% rename from app/modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php rename to app/modules/web/Controllers/Helpers/Grid/ItemPresetGrid.php index 1484bc78..76086b7b 100644 --- a/app/modules/web/Controllers/Helpers/Grid/AccountDefaultPermissionGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/ItemPresetGrid.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. @@ -40,7 +40,7 @@ use SP\Storage\Database\QueryResult; * * @package SP\Modules\Web\Controllers\Helpers\Grid */ -final class AccountDefaultPermissionGrid extends GridBase +final class ItemPresetGrid extends GridBase { /** * @var QueryResult @@ -62,13 +62,11 @@ final class AccountDefaultPermissionGrid extends GridBase $grid->setDataActions($this->getSearchAction()); $grid->setPager($this->getPager($searchAction)); - $grid->setDataActions($this->getCreateAction()); + + $grid->setDataActions($this->getCreatePermissionAction(), true); $grid->setDataActions($this->getEditAction()); - - $deleteAction = $this->getDeleteAction(); - - $grid->setDataActions($deleteAction); - $grid->setDataActions($deleteAction, true); + $grid->setDataActions($this->getDeleteAction()); + $grid->setDataActions($this->getDeleteAction()->setTitle(__('Eliminar Seleccionados')), true); $grid->setTime(round(getElapsedTime($this->queryTimeStart), 5)); @@ -82,12 +80,12 @@ final class AccountDefaultPermissionGrid extends GridBase { // Grid $gridTab = new DataGridTab($this->view->getTheme()); - $gridTab->setId('tblAccountDefaultPermission'); + $gridTab->setId('tblItemPreset'); $gridTab->setDataRowTemplate('datagrid-rows', 'grid'); $gridTab->setDataPagerTemplate('datagrid-nav-full', 'grid'); $gridTab->setHeader($this->getHeader()); $gridTab->setData($this->getData()); - $gridTab->setTitle(__('Permisos por Defecto')); + $gridTab->setTitle(__('Valores por Defecto')); return $gridTab; } @@ -99,6 +97,7 @@ final class AccountDefaultPermissionGrid extends GridBase { // Grid Header $gridHeader = new DataGridHeader(); + $gridHeader->addHeader(__('Tipo')); $gridHeader->addHeader(__('Usuario')); $gridHeader->addHeader(__('Grupo')); $gridHeader->addHeader(__('Perfil')); @@ -116,6 +115,7 @@ final class AccountDefaultPermissionGrid extends GridBase // Grid Data $gridData = new DataGridData(); $gridData->setDataRowSourceId('id'); + $gridData->addDataRowSource('type'); $gridData->addDataRowSource('userName'); $gridData->addDataRowSource('userGroupName'); $gridData->addDataRowSource('userProfileName'); @@ -135,12 +135,12 @@ final class AccountDefaultPermissionGrid extends GridBase { // Grid Actions $gridActionSearch = new DataGridActionSearch(); - $gridActionSearch->setId(ActionsInterface::ACCOUNT_DEFAULT_PERMISSION_SEARCH); + $gridActionSearch->setId(ActionsInterface::ITEMPRESET_SEARCH); $gridActionSearch->setType(DataGridActionType::SEARCH_ITEM); $gridActionSearch->setName('frmSearchPermission'); - $gridActionSearch->setTitle(__('Buscar Permiso')); + $gridActionSearch->setTitle(__('Buscar Valor')); $gridActionSearch->setOnSubmitFunction('appMgmt/search'); - $gridActionSearch->addData('action-route', Acl::getActionRoute(ActionsInterface::ACCOUNT_DEFAULT_PERMISSION_SEARCH)); + $gridActionSearch->addData('action-route', Acl::getActionRoute(ActionsInterface::ITEMPRESET_SEARCH)); return $gridActionSearch; } @@ -148,17 +148,20 @@ final class AccountDefaultPermissionGrid extends GridBase /** * @return DataGridAction */ - private function getCreateAction() + private function getCreatePermissionAction() { $gridAction = new DataGridAction(); - $gridAction->setId(ActionsInterface::ACCOUNT_DEFAULT_PERMISSION_CREATE); + $gridAction->setId(ActionsInterface::ITEMPRESET_CREATE); $gridAction->setType(DataGridActionType::MENUBAR_ITEM); $gridAction->setName(__('Nuevo Permiso')); $gridAction->setTitle(__('Nuevo Permiso')); - $gridAction->setIcon($this->icons->getIconAdd()); + + $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::ACCOUNT_DEFAULT_PERMISSION_CREATE)); + $gridAction->addData('action-route', Acl::getActionRoute(ActionsInterface::ITEMPRESET_CREATE) . '/permission'); return $gridAction; } @@ -169,13 +172,13 @@ final class AccountDefaultPermissionGrid extends GridBase private function getEditAction() { $gridAction = new DataGridAction(); - $gridAction->setId(ActionsInterface::ACCOUNT_DEFAULT_PERMISSION_EDIT); + $gridAction->setId(ActionsInterface::ITEMPRESET_EDIT); $gridAction->setType(DataGridActionType::EDIT_ITEM); - $gridAction->setName(__('Editar Permiso')); - $gridAction->setTitle(__('Editar Permiso')); + $gridAction->setName(__('Editar Valor')); + $gridAction->setTitle(__('Editar Valor')); $gridAction->setIcon($this->icons->getIconEdit()); $gridAction->setOnClickFunction('appMgmt/show'); - $gridAction->addData('action-route', Acl::getActionRoute(ActionsInterface::ACCOUNT_DEFAULT_PERMISSION_EDIT)); + $gridAction->addData('action-route', Acl::getActionRoute(ActionsInterface::ITEMPRESET_EDIT)); return $gridAction; } @@ -186,13 +189,13 @@ final class AccountDefaultPermissionGrid extends GridBase private function getDeleteAction() { $gridAction = new DataGridAction(); - $gridAction->setId(ActionsInterface::ACCOUNT_DEFAULT_PERMISSION_DELETE); + $gridAction->setId(ActionsInterface::ITEMPRESET_DELETE); $gridAction->setType(DataGridActionType::DELETE_ITEM); - $gridAction->setName(__('Eliminar Permiso')); - $gridAction->setTitle(__('Eliminar Permiso')); + $gridAction->setName(__('Eliminar Valor')); + $gridAction->setTitle(__('Eliminar Valor')); $gridAction->setIcon($this->icons->getIconDelete()); $gridAction->setOnClickFunction('appMgmt/delete'); - $gridAction->addData('action-route', Acl::getActionRoute(ActionsInterface::ACCOUNT_DEFAULT_PERMISSION_DELETE)); + $gridAction->addData('action-route', Acl::getActionRoute(ActionsInterface::ITEMPRESET_DELETE)); return $gridAction; } diff --git a/app/modules/web/Controllers/Helpers/Grid/NotificationGrid.php b/app/modules/web/Controllers/Helpers/Grid/NotificationGrid.php index e1536ccd..b8845a8d 100644 --- a/app/modules/web/Controllers/Helpers/Grid/NotificationGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/NotificationGrid.php @@ -79,11 +79,9 @@ final class NotificationGrid extends GridBase $grid->setDataActions($this->getViewAction()); $grid->setDataActions($this->setNonAdminFilter($this->getCheckAction())); $grid->setDataActions($this->setNonAdminFilter($this->getEditAction())); + $grid->setDataActions($this->setNonAdminFilter($this->getDeleteAction())); + $grid->setDataActions($this->setNonAdminFilter($this->getDeleteAction())->setTitle(__('Eliminar Seleccionados')), true); - $deleteAction = $this->setNonAdminFilter($this->getDeleteAction()); - - $grid->setDataActions($deleteAction); - $grid->setDataActions($deleteAction, true); $grid->setTime(round(getElapsedTime($this->queryTimeStart), 5)); diff --git a/app/modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php b/app/modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php index 2fd614e9..b222869a 100644 --- a/app/modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/PublicLinkGrid.php @@ -67,11 +67,9 @@ final class PublicLinkGrid extends GridBase $grid->setDataActions($this->getCreateAction()); $grid->setDataActions($this->getViewAction()); $grid->setDataActions($this->getRefreshAction()); + $grid->setDataActions($this->getDeleteAction()); + $grid->setDataActions($this->getDeleteAction()->setTitle(__('Eliminar Seleccionados')), true); - $deleteAction = $this->getDeleteAction(); - - $grid->setDataActions($deleteAction); - $grid->setDataActions($deleteAction, true); $grid->setTime(round(getElapsedTime($this->queryTimeStart), 5)); diff --git a/app/modules/web/Controllers/Helpers/Grid/TagGrid.php b/app/modules/web/Controllers/Helpers/Grid/TagGrid.php index a7f26b01..68a4df7a 100644 --- a/app/modules/web/Controllers/Helpers/Grid/TagGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/TagGrid.php @@ -63,13 +63,11 @@ final class TagGrid extends GridBase $grid->setDataActions($this->getSearchAction()); $grid->setPager($this->getPager($searchAction)); + $grid->setDataActions($this->getCreateAction()); $grid->setDataActions($this->getEditAction()); - - $deleteAction = $this->getDeleteAction(); - - $grid->setDataActions($deleteAction); - $grid->setDataActions($deleteAction, true); + $grid->setDataActions($this->getDeleteAction()); + $grid->setDataActions($this->getDeleteAction()->setTitle(__('Eliminar Seleccionados')), true); $grid->setTime(round(getElapsedTime($this->queryTimeStart), 5)); diff --git a/app/modules/web/Controllers/Helpers/Grid/UserGrid.php b/app/modules/web/Controllers/Helpers/Grid/UserGrid.php index 0f53c18a..3aa62618 100644 --- a/app/modules/web/Controllers/Helpers/Grid/UserGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/UserGrid.php @@ -76,11 +76,8 @@ final class UserGrid extends GridBase $grid->setDataActions($this->getViewAction()); $grid->setDataActions($this->getEditAction()); $grid->setDataActions($this->getEditPassAction()); - - $deleteAction = $this->getDeleteAction(); - - $grid->setDataActions($deleteAction); - $grid->setDataActions($deleteAction, true); + $grid->setDataActions($this->getDeleteAction()); + $grid->setDataActions($this->getDeleteAction()->setTitle(__('Eliminar Seleccionados')), true); $grid->setTime(round(getElapsedTime($this->queryTimeStart), 5)); diff --git a/app/modules/web/Controllers/Helpers/Grid/UserGroupGrid.php b/app/modules/web/Controllers/Helpers/Grid/UserGroupGrid.php index a2290bd2..b029668f 100644 --- a/app/modules/web/Controllers/Helpers/Grid/UserGroupGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/UserGroupGrid.php @@ -67,11 +67,8 @@ final class UserGroupGrid extends GridBase $grid->setDataActions($this->getCreateAction()); $grid->setDataActions($this->getViewAction()); $grid->setDataActions($this->getEditAction()); - - $deleteAction = $this->getDeleteAction(); - - $grid->setDataActions($deleteAction); - $grid->setDataActions($deleteAction, true); + $grid->setDataActions($this->getDeleteAction()); + $grid->setDataActions($this->getDeleteAction()->setTitle(__('Eliminar Seleccionados')), true); $grid->setTime(round(getElapsedTime($this->queryTimeStart), 5)); diff --git a/app/modules/web/Controllers/Helpers/Grid/UserProfileGrid.php b/app/modules/web/Controllers/Helpers/Grid/UserProfileGrid.php index 3c652637..1ee96709 100644 --- a/app/modules/web/Controllers/Helpers/Grid/UserProfileGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/UserProfileGrid.php @@ -67,11 +67,8 @@ final class UserProfileGrid extends GridBase $grid->setDataActions($this->getCreateAction()); $grid->setDataActions($this->getViewAction()); $grid->setDataActions($this->getEditAction()); - - $deleteAction = $this->getDeleteAction(); - - $grid->setDataActions($deleteAction); - $grid->setDataActions($deleteAction, true); + $grid->setDataActions($this->getDeleteAction()); + $grid->setDataActions($this->getDeleteAction()->setTitle(__('Eliminar Seleccionados')), true); $grid->setTime(round(getElapsedTime($this->queryTimeStart), 5)); diff --git a/app/modules/web/Controllers/Helpers/ItemPresetHelper.php b/app/modules/web/Controllers/Helpers/ItemPresetHelper.php new file mode 100644 index 00000000..f88e7590 --- /dev/null +++ b/app/modules/web/Controllers/Helpers/ItemPresetHelper.php @@ -0,0 +1,93 @@ +. + */ + +namespace SP\Modules\Web\Controllers\Helpers; + +use SP\DataModel\AccountPermission; +use SP\DataModel\ItemPresetData; +use SP\Mvc\View\Components\SelectItemAdapter; +use SP\Services\User\UserService; +use SP\Services\UserGroup\UserGroupService; + +/** + * Class ItemPresetHelper + * + * @package SP\Modules\Web\Controllers\Helpers + */ +class ItemPresetHelper extends HelperBase +{ + /** + * @var SelectItemAdapter + */ + private $users; + /** + * @var SelectItemAdapter + */ + private $userGroups; + /** + * @var SelectItemAdapter + */ + private $userProfiles; + + /** + * @param ItemPresetData $itemPresetData + * + * @throws \SP\Core\Exceptions\NoSuchPropertyException + */ + public function makeAccountPermissionView(ItemPresetData $itemPresetData) + { + $accountPermission = $itemPresetData->hydrate(AccountPermission::class, 'data') ?: new AccountPermission(); + + $this->view->assign('typeTemplate', 'item_preset-permission'); + + $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 + */ + public function makeDefaultPresetView() + { + $this->view->assign('users', $this->users->getItemsFromModel()); + $this->view->assign('userGroups', $this->userGroups->getItemsFromModel()); + $this->view->assign('userProfiles', $this->userProfiles->getItemsFromModel()); + } + + protected function initialize() + { + $this->users = SelectItemAdapter::factory(UserService::getItemsBasic()); + $this->userGroups = SelectItemAdapter::factory(UserGroupService::getItemsBasic()); + $this->userProfiles = SelectItemAdapter::factory(UserGroupService::getItemsBasic()); + } +} \ No newline at end of file diff --git a/app/modules/web/Controllers/ItemManagerController.php b/app/modules/web/Controllers/ItemManagerController.php index 6ab288fc..652364c1 100644 --- a/app/modules/web/Controllers/ItemManagerController.php +++ b/app/modules/web/Controllers/ItemManagerController.php @@ -33,6 +33,7 @@ use SP\Modules\Web\Controllers\Helpers\Grid\CategoryGrid; use SP\Modules\Web\Controllers\Helpers\Grid\ClientGrid; use SP\Modules\Web\Controllers\Helpers\Grid\CustomFieldGrid; use SP\Modules\Web\Controllers\Helpers\Grid\FileGrid; +use SP\Modules\Web\Controllers\Helpers\Grid\ItemPresetGrid; use SP\Modules\Web\Controllers\Helpers\Grid\PluginGrid; use SP\Modules\Web\Controllers\Helpers\Grid\TagGrid; use SP\Modules\Web\Controllers\Helpers\TabsGridHelper; @@ -42,6 +43,7 @@ use SP\Services\Account\AccountService; use SP\Services\Category\CategoryService; use SP\Services\Client\ClientService; use SP\Services\CustomField\CustomFieldDefService; +use SP\Services\ItemPreset\ItemPresetService; use SP\Services\Plugin\PluginService; use SP\Services\Tag\TagService; @@ -111,6 +113,10 @@ final class ItemManagerController extends ControllerBase $this->tabsGridHelper->addTab($this->getAccountsHistoryList()); } + if ($this->checkAccess(Acl::ITEMPRESET)) { + $this->tabsGridHelper->addTab($this->getItemPresetList()); + } + if ($this->checkAccess(Acl::PLUGIN)) { $this->tabsGridHelper->addTab($this->getPluginsList()); } @@ -220,6 +226,20 @@ final class ItemManagerController extends ControllerBase ->updatePager(); } + /** + * Returns API tokens data tab + * + * @return \SP\Html\DataGrid\DataGridTab + * @throws \SP\Core\Exceptions\ConstraintException + * @throws \SP\Core\Exceptions\QueryException + */ + protected function getItemPresetList() + { + return $this->dic->get(ItemPresetGrid::class) + ->getGrid($this->dic->get(ItemPresetService::class)->search($this->itemSearchData)) + ->updatePager(); + } + /** * Returns plugins' data tab * diff --git a/app/modules/web/Controllers/AccountDefaultPermissionController.php b/app/modules/web/Controllers/ItemPresetController.php similarity index 59% rename from app/modules/web/Controllers/AccountDefaultPermissionController.php rename to app/modules/web/Controllers/ItemPresetController.php index 76a031b3..05a74e9c 100644 --- a/app/modules/web/Controllers/AccountDefaultPermissionController.php +++ b/app/modules/web/Controllers/ItemPresetController.php @@ -28,32 +28,31 @@ use SP\Core\Acl\Acl; use SP\Core\Events\Event; use SP\Core\Events\EventMessage; use SP\Core\Exceptions\ValidationException; -use SP\DataModel\AccountDefaultPermissionData; -use SP\DataModel\AccountPermission; +use SP\DataModel\ItemPresetData; use SP\Http\JsonResponse; -use SP\Modules\Web\Controllers\Helpers\Grid\AccountDefaultPermissionGrid; +use SP\Modules\Web\Controllers\Helpers\Grid\ItemPresetGrid; +use SP\Modules\Web\Controllers\Helpers\ItemPresetHelper; use SP\Modules\Web\Controllers\Traits\ItemTrait; use SP\Modules\Web\Controllers\Traits\JsonTrait; -use SP\Modules\Web\Forms\AccountDefaultPermissionForm; +use SP\Modules\Web\Forms\ItemsPresetForm; use SP\Mvc\Controller\CrudControllerInterface; -use SP\Mvc\View\Components\SelectItemAdapter; -use SP\Services\Account\AccountDefaultPermissionService; -use SP\Services\User\UserService; -use SP\Services\UserGroup\UserGroupService; +use SP\Services\ItemPreset\ItemPresetInterface; +use SP\Services\ItemPreset\ItemPresetService; +use SP\Util\Filter; /** * Class AccountDefaultPermissionController * * @package SP\Modules\Web\Controllers */ -class AccountDefaultPermissionController extends ControllerBase implements CrudControllerInterface +class ItemPresetController extends ControllerBase implements CrudControllerInterface { use JsonTrait, ItemTrait; /** - * @var AccountDefaultPermissionService + * @var ItemPresetService */ - protected $accountDefaultPermissionService; + protected $itemPresetService; /** * View action @@ -64,17 +63,17 @@ class AccountDefaultPermissionController extends ControllerBase implements CrudC */ public function viewAction($id) { - if (!$this->acl->checkUserAccess(Acl::ACCOUNT_DEFAULT_PERMISSION_VIEW)) { + if (!$this->acl->checkUserAccess(Acl::ITEMPRESET_VIEW)) { return $this->returnJsonResponse(JsonResponse::JSON_ERROR, __u('No tiene permisos para realizar esta operación')); } - $this->view->assign('header', __('Ver Permiso')); + $this->view->assign('header', __('Ver Valor')); $this->view->assign('isView', true); try { $this->setViewData($id); - $this->eventDispatcher->notifyEvent('show.accountDefaultPermission', new Event($this)); + $this->eventDispatcher->notifyEvent('show.itemPreset', new Event($this)); return $this->returnJsonResponseData(['html' => $this->render()]); } catch (\Exception $e) { @@ -87,36 +86,35 @@ class AccountDefaultPermissionController extends ControllerBase implements CrudC /** * Sets view data for displaying permissions' data * - * @param $permissionId + * @param int $id + * @param string $type * * @throws \SP\Core\Exceptions\ConstraintException + * @throws \SP\Core\Exceptions\NoSuchPropertyException * @throws \SP\Core\Exceptions\QueryException * @throws \SP\Repositories\NoSuchItemException */ - protected function setViewData($permissionId = null) + protected function setViewData(int $id = null, string $type = null) { - $this->view->addTemplate('account_default_permission', 'itemshow'); + $this->view->addTemplate('item_preset', 'itemshow'); - $accountDefaultPermissionData = $permissionId ? $this->accountDefaultPermissionService->getById($permissionId) : new AccountDefaultPermissionData(); - $accountPermission = $accountDefaultPermissionData->getAccountPermission() ?: new AccountPermission(); + $itemPresetData = $id ? $this->itemPresetService->getById($id) : new ItemPresetData(); - $this->view->assign('permission', $accountDefaultPermissionData); + $itemPresetHelper = $this->dic->get(ItemPresetHelper::class); - $users = SelectItemAdapter::factory(UserService::getItemsBasic()); + if ($itemPresetData->getType() === null) { + $itemPresetData->setType($type); + } - $this->view->assign('users', $users->getItemsFromModelSelected([$accountDefaultPermissionData->getUserId()])); - $this->view->assign('usersView', $users->getItemsFromModelSelected($accountPermission->getUsersView())); - $this->view->assign('usersEdit', $users->getItemsFromModelSelected($accountPermission->getUsersEdit())); - - $userGroups = SelectItemAdapter::factory(UserGroupService::getItemsBasic()); - - $this->view->assign('userGroups', $userGroups->getItemsFromModelSelected([$accountDefaultPermissionData->getUserGroupId()])); - $this->view->assign('userGroupsView', $userGroups->getItemsFromModelSelected($accountPermission->getUserGroupsView())); - $this->view->assign('userGroupsEdit', $userGroups->getItemsFromModelSelected($accountPermission->getUserGroupsEdit())); - - $this->view->assign('userProfiles', SelectItemAdapter::factory(UserGroupService::getItemsBasic()) - ->getItemsFromModelSelected([$accountDefaultPermissionData->getUserProfileId()])); + switch ($itemPresetData->getType()) { + case ItemPresetInterface::ITEM_TYPE_PERMISSION: + $itemPresetHelper->makeAccountPermissionView($itemPresetData); + break; + default: + $itemPresetHelper->makeDefaultPresetView(); + } + $this->view->assign('preset', $itemPresetData); $this->view->assign('sk', $this->session->generateSecurityKey()); $this->view->assign('nextAction', Acl::getActionRoute(Acl::ACCESS_MANAGE)); @@ -138,7 +136,7 @@ class AccountDefaultPermissionController extends ControllerBase implements CrudC */ public function searchAction() { - if (!$this->acl->checkUserAccess(Acl::ACCOUNT_DEFAULT_PERMISSION_SEARCH)) { + if (!$this->acl->checkUserAccess(Acl::ITEMPRESET_SEARCH)) { return $this->returnJsonResponse(JsonResponse::JSON_ERROR, __u('No tiene permisos para realizar esta operación')); } @@ -160,10 +158,10 @@ class AccountDefaultPermissionController extends ControllerBase implements CrudC { $itemSearchData = $this->getSearchData($this->configData->getAccountCount(), $this->request); - $grid = $this->dic->get(AccountDefaultPermissionGrid::class); + $grid = $this->dic->get(ItemPresetGrid::class); return $grid->updatePager( - $grid->getGrid($this->accountDefaultPermissionService->search($itemSearchData)), + $grid->getGrid($this->itemPresetService->search($itemSearchData)), $itemSearchData ); } @@ -173,19 +171,26 @@ class AccountDefaultPermissionController extends ControllerBase implements CrudC */ public function createAction() { - if (!$this->acl->checkUserAccess(Acl::ACCOUNT_DEFAULT_PERMISSION_CREATE)) { + if (!$this->acl->checkUserAccess(Acl::ITEMPRESET_CREATE)) { return $this->returnJsonResponse(JsonResponse::JSON_ERROR, __u('No tiene permisos para realizar esta operación')); } + $args = func_get_args(); + $type = null; + + if (count($args) > 0) { + $type = Filter::getString($args[0]); + } + $this->view->assign(__FUNCTION__, 1); - $this->view->assign('header', __('Nuevo Permiso')); + $this->view->assign('header', __('Nuevo Valor')); $this->view->assign('isView', false); - $this->view->assign('route', 'accountDefaultPermission/saveCreate'); + $this->view->assign('route', 'itemPreset/saveCreate'); try { - $this->setViewData(); + $this->setViewData(null, $type); - $this->eventDispatcher->notifyEvent('show.accountDefaultPermission.create', new Event($this)); + $this->eventDispatcher->notifyEvent('show.itemPreset.create', new Event($this)); return $this->returnJsonResponseData(['html' => $this->render()]); } catch (\Exception $e) { @@ -204,18 +209,18 @@ class AccountDefaultPermissionController extends ControllerBase implements CrudC */ public function editAction($id) { - if (!$this->acl->checkUserAccess(Acl::ACCOUNT_DEFAULT_PERMISSION_EDIT)) { + if (!$this->acl->checkUserAccess(Acl::ITEMPRESET_EDIT)) { return $this->returnJsonResponse(JsonResponse::JSON_ERROR, __u('No tiene permisos para realizar esta operación')); } - $this->view->assign('header', __('Editar Permiso')); + $this->view->assign('header', __('Editar Valor')); $this->view->assign('isView', false); - $this->view->assign('route', 'accountDefaultPermission/saveEdit/' . $id); + $this->view->assign('route', 'itemPreset/saveEdit/' . $id); try { $this->setViewData($id); - $this->eventDispatcher->notifyEvent('show.accountDefaultPermission.edit', new Event($this)); + $this->eventDispatcher->notifyEvent('show.itemPreset.edit', new Event($this)); return $this->returnJsonResponseData(['html' => $this->render()]); } catch (\Exception $e) { @@ -234,33 +239,33 @@ class AccountDefaultPermissionController extends ControllerBase implements CrudC */ public function deleteAction($id = null) { - if (!$this->acl->checkUserAccess(Acl::ACCOUNT_DEFAULT_PERMISSION_DELETE)) { + if (!$this->acl->checkUserAccess(Acl::ITEMPRESET_DELETE)) { return $this->returnJsonResponse(JsonResponse::JSON_ERROR, __u('No tiene permisos para realizar esta operación')); } try { if ($id === null) { - $this->accountDefaultPermissionService->deleteByIdBatch($this->getItemsIdFromRequest($this->request)); + $this->itemPresetService->deleteByIdBatch($this->getItemsIdFromRequest($this->request)); - $this->eventDispatcher->notifyEvent('delete.accountDefaultPermission', + $this->eventDispatcher->notifyEvent('delete.itemPreset', new Event($this, EventMessage::factory() - ->addDescription(__u('Permisos eliminados'))) + ->addDescription(__u('Valores eliminados'))) ); - return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Permisos eliminados')); + return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Valores eliminados')); } - $this->accountDefaultPermissionService->delete($id); + $this->itemPresetService->delete($id); - $this->eventDispatcher->notifyEvent('delete.accountDefaultPermission', + $this->eventDispatcher->notifyEvent('delete.itemPreset', new Event($this, EventMessage::factory() - ->addDescription(__u('Permiso eliminado')) + ->addDescription(__u('Valor eliminado')) ->addDetail(__u('ID'), $id)) ); - return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Permiso eliminado')); + return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Valor eliminado')); } catch (\Exception $e) { processException($e); @@ -273,24 +278,27 @@ class AccountDefaultPermissionController extends ControllerBase implements CrudC */ public function saveCreateAction() { - if (!$this->acl->checkUserAccess(Acl::ACCOUNT_DEFAULT_PERMISSION_CREATE)) { + if (!$this->acl->checkUserAccess(Acl::ITEMPRESET_CREATE)) { return $this->returnJsonResponse(JsonResponse::JSON_ERROR, __u('No tiene permisos para realizar esta operación')); } try { - $form = new AccountDefaultPermissionForm($this->dic); - $form->validate(Acl::ACCOUNT_DEFAULT_PERMISSION_CREATE); + $form = new ItemsPresetForm($this->dic); + $form->validate(Acl::ITEMPRESET_CREATE); - $id = $this->accountDefaultPermissionService->create($form->getItemData()); + $itemData = $form->getItemData(); - $this->eventDispatcher->notifyEvent('create.accountDefaultPermission', + $id = $this->itemPresetService->create($itemData); + + $this->eventDispatcher->notifyEvent('create.itemPreset', new Event($this, EventMessage::factory() - ->addDescription(__u('Permiso creado')) + ->addDescription(__u('Valor creado')) + ->addDetail(__u('Tipo'), $itemData->getItemPresetData()->getType()) ->addDetail(__u('ID'), $id)) ); - return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Permiso creado')); + return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Valor creado')); } catch (ValidationException $e) { return $this->returnJsonResponseException($e); } catch (\Exception $e) { @@ -309,24 +317,27 @@ class AccountDefaultPermissionController extends ControllerBase implements CrudC */ public function saveEditAction($id) { - if (!$this->acl->checkUserAccess(Acl::ACCOUNT_DEFAULT_PERMISSION_EDIT)) { + if (!$this->acl->checkUserAccess(Acl::ITEMPRESET_EDIT)) { return $this->returnJsonResponse(JsonResponse::JSON_ERROR, __u('No tiene permisos para realizar esta operación')); } try { - $form = new AccountDefaultPermissionForm($this->dic, $id); - $form->validate(Acl::ACCOUNT_DEFAULT_PERMISSION_EDIT); + $form = new ItemsPresetForm($this->dic, $id); + $form->validate(Acl::ITEMPRESET_EDIT); - $this->accountDefaultPermissionService->update($form->getItemData()); + $itemData = $form->getItemData(); - $this->eventDispatcher->notifyEvent('edit.accountDefaultPermission', + $this->itemPresetService->update($itemData); + + $this->eventDispatcher->notifyEvent('edit.itemPreset', new Event($this, EventMessage::factory() - ->addDescription(__u('Permiso actualizado')) + ->addDescription(__u('Valor actualizado')) + ->addDetail(__u('Tipo'), $itemData->getItemPresetData()->getType()) ->addDetail(__u('ID'), $id)) ); - return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Permiso actualizado')); + return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Valor actualizado')); } catch (ValidationException $e) { return $this->returnJsonResponseException($e); } catch (\Exception $e) { @@ -347,6 +358,6 @@ class AccountDefaultPermissionController extends ControllerBase implements CrudC { $this->checkLoggedIn(); - $this->accountDefaultPermissionService = $this->dic->get(AccountDefaultPermissionService::class); + $this->itemPresetService = $this->dic->get(ItemPresetService::class); } } \ No newline at end of file diff --git a/app/modules/web/Forms/AccountDefaultPermissionForm.php b/app/modules/web/Forms/ItemsPresetForm.php similarity index 58% rename from app/modules/web/Forms/AccountDefaultPermissionForm.php rename to app/modules/web/Forms/ItemsPresetForm.php index 51d3f404..e31fb773 100644 --- a/app/modules/web/Forms/AccountDefaultPermissionForm.php +++ b/app/modules/web/Forms/ItemsPresetForm.php @@ -26,34 +26,36 @@ namespace SP\Modules\Web\Forms; use SP\Core\Acl\ActionsInterface; use SP\Core\Exceptions\ValidationException; -use SP\DataModel\AccountDefaultPermissionData; use SP\DataModel\AccountPermission; +use SP\DataModel\ItemPresetData; +use SP\Services\ItemPreset\ItemPresetInterface; +use SP\Services\ItemPreset\ItemPresetRequest; /** - * Class AccountDefaultPermissionForm + * Class ItemsPresetForm * * @package SP\Modules\Web\Forms */ -final class AccountDefaultPermissionForm extends FormBase implements FormInterface +final class ItemsPresetForm extends FormBase implements FormInterface { /** - * @var AccountDefaultPermissionData + * @var ItemPresetRequest */ - protected $accountDefaultPermissionData; + protected $itemPresetRequest; /** * Validar el formulario * * @param $action * - * @return AccountDefaultPermissionForm + * @return ItemsPresetForm * @throws ValidationException */ public function validate($action) { switch ($action) { - case ActionsInterface::ACCOUNT_DEFAULT_PERMISSION_CREATE: - case ActionsInterface::ACCOUNT_DEFAULT_PERMISSION_EDIT: + case ActionsInterface::ITEMPRESET_CREATE: + case ActionsInterface::ITEMPRESET_EDIT: $this->analyzeRequestData(); $this->checkCommon(); break; @@ -66,37 +68,58 @@ final class AccountDefaultPermissionForm extends FormBase implements FormInterfa * Analizar los datos de la petición HTTP * * @return void + * @throws ValidationException */ protected function analyzeRequestData() { - $this->accountDefaultPermissionData = new AccountDefaultPermissionData(); + $itemPresetData = new ItemPresetData(); if ($this->itemId > 0) { - $this->accountDefaultPermissionData->setId($this->itemId); + $itemPresetData->setId($this->itemId); } if ($userId = $this->request->analyzeInt('user_id')) { - $this->accountDefaultPermissionData->setUserId($userId); + $itemPresetData->setUserId($userId); } if ($userGroupId = $this->request->analyzeInt('user_group_id')) { - $this->accountDefaultPermissionData->setUserGroupId($userGroupId); + $itemPresetData->setUserGroupId($userGroupId); } if ($userProfileId = $this->request->analyzeInt('user_profile_id')) { - $this->accountDefaultPermissionData->setUserProfileId($userProfileId); + $itemPresetData->setUserProfileId($userProfileId); } - - $this->accountDefaultPermissionData->setFixed((int)$this->request->analyzeBool('fixed_enabled', false)); - $this->accountDefaultPermissionData->setPriority($this->request->analyzeInt('priority')); + $itemPresetData->setFixed((int)$this->request->analyzeBool('fixed_enabled', false)); + $itemPresetData->setPriority($this->request->analyzeInt('priority')); + $itemPresetData->setType($this->request->analyzeString('type')); + + switch ($itemPresetData->getType()) { + case ItemPresetInterface::ITEM_TYPE_PERMISSION: + $this->itemPresetRequest = new ItemPresetRequest($itemPresetData, $this->makePermissionPreset()); + break; + default: + throw new ValidationException(__u('Tipo de valor no definido o incorrecto')); + } + } + + /** + * @return AccountPermission + * @throws ValidationException + */ + private function makePermissionPreset() + { $accountPermission = new AccountPermission(); $accountPermission->setUsersView($this->request->analyzeArray('users_view', null, [])); $accountPermission->setUsersEdit($this->request->analyzeArray('users_edit', null, [])); $accountPermission->setUserGroupsView($this->request->analyzeArray('user_groups_view', null, [])); $accountPermission->setUserGroupsEdit($this->request->analyzeArray('user_groups_edit', null, [])); - $this->accountDefaultPermissionData->setAccountPermission($accountPermission); + if (!$accountPermission->hasItems()) { + throw new ValidationException(__u('No hay permisos definidos')); + } + + return $accountPermission; } /** @@ -104,23 +127,21 @@ final class AccountDefaultPermissionForm extends FormBase implements FormInterfa */ protected function checkCommon() { - if (!$this->accountDefaultPermissionData->getUserId() - && !$this->accountDefaultPermissionData->getUserGroupId() - && !$this->accountDefaultPermissionData->getUserProfileId() + $itemPresetData = $this->itemPresetRequest->getItemPresetData(); + + if (!$itemPresetData->getUserId() + && !$itemPresetData->getUserGroupId() + && !$itemPresetData->getUserProfileId() ) { throw new ValidationException(__u('Es necesario asignar un elemento del tipo usuario, grupo o perfil')); } - - if (!$this->accountDefaultPermissionData->getAccountPermission()->hasItems()) { - throw new ValidationException(__u('No hay permisos definidos')); - } } /** - * @return AccountDefaultPermissionData + * @return ItemPresetRequest */ public function getItemData() { - return $this->accountDefaultPermissionData; + return $this->itemPresetRequest; } } \ No newline at end of file diff --git a/app/modules/web/Forms/UserProfileForm.php b/app/modules/web/Forms/UserProfileForm.php index 09b704e9..92b2a779 100644 --- a/app/modules/web/Forms/UserProfileForm.php +++ b/app/modules/web/Forms/UserProfileForm.php @@ -97,7 +97,7 @@ final class UserProfileForm extends FormBase implements FormInterface $profileData->setMgmPublicLinks($this->request->analyzeBool('profile_publinks', false)); $profileData->setMgmAccounts($this->request->analyzeBool('profile_accounts', false)); $profileData->setMgmFiles($this->request->analyzeBool('profile_files', false)); - $profileData->setMgmAccountDefaultPermissions($this->request->analyzeBool('profile_permissions', false)); + $profileData->setMgmItemsPreset($this->request->analyzeBool('profile_items_preset', false)); $profileData->setMgmTags($this->request->analyzeBool('profile_tags', false)); $profileData->setEvl($this->request->analyzeBool('profile_eventlog', false)); diff --git a/app/modules/web/themes/material-blue/views/grid/datagrid-grid.inc b/app/modules/web/themes/material-blue/views/grid/datagrid-grid.inc index b73f8a90..7198cf0f 100644 --- a/app/modules/web/themes/material-blue/views/grid/datagrid-grid.inc +++ b/app/modules/web/themes/material-blue/views/grid/datagrid-grid.inc @@ -94,7 +94,7 @@ if (!isset($index)): $index = 0; endif; data-onclick="getOnClick(); ?>" getData() as $dataName => $dataValue): echo 'data-', $dataName, '=', '"', $dataValue, '"'; endforeach; ?>> getIcon()->getIcon(); ?> - + getTitle(); ?> diff --git a/app/modules/web/themes/material-blue/views/grid/datagrid-table.inc b/app/modules/web/themes/material-blue/views/grid/datagrid-table.inc index 593b5c94..a8832e9b 100644 --- a/app/modules/web/themes/material-blue/views/grid/datagrid-table.inc +++ b/app/modules/web/themes/material-blue/views/grid/datagrid-table.inc @@ -1,7 +1,7 @@ diff --git a/app/modules/web/themes/material-blue/views/itemshow/item_preset-permission.inc b/app/modules/web/themes/material-blue/views/itemshow/item_preset-permission.inc new file mode 100644 index 00000000..088200cf --- /dev/null +++ b/app/modules/web/themes/material-blue/views/itemshow/item_preset-permission.inc @@ -0,0 +1,81 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/modules/web/themes/material-blue/views/itemshow/account_default_permission.inc b/app/modules/web/themes/material-blue/views/itemshow/item_preset.inc similarity index 54% rename from app/modules/web/themes/material-blue/views/itemshow/account_default_permission.inc rename to app/modules/web/themes/material-blue/views/itemshow/item_preset.inc index 56b34819..056bd3b3 100644 --- a/app/modules/web/themes/material-blue/views/itemshow/account_default_permission.inc +++ b/app/modules/web/themes/material-blue/views/itemshow/item_preset.inc @@ -1,12 +1,13 @@

close

-
getIconHelp()->getIcon(); ?>

- +

@@ -81,7 +82,7 @@ + value="getPriority(); ?>"/> @@ -97,16 +98,16 @@ - +
- +
@@ -114,94 +115,19 @@ - - - -
-
-
- - -
- -
-
- - -
-
- - - - - - -
-
-
- - -
- -
-
- - -
-
- - + includeTemplate($typeTemplate, 'itemshow'); endif; ?> +
diff --git a/app/modules/web/themes/material-blue/views/itemshow/user_profile.inc b/app/modules/web/themes/material-blue/views/itemshow/user_profile.inc index 7a35fb09..c7c87574 100644 --- a/app/modules/web/themes/material-blue/views/itemshow/user_profile.inc +++ b/app/modules/web/themes/material-blue/views/itemshow/user_profile.inc @@ -419,14 +419,14 @@ vpn_key - + - diff --git a/lib/SP/Core/Acl/Acl.php b/lib/SP/Core/Acl/Acl.php index 315589f6..e8e0137b 100644 --- a/lib/SP/Core/Acl/Acl.php +++ b/lib/SP/Core/Acl/Acl.php @@ -255,13 +255,13 @@ final class Acl implements ActionsInterface case self::AUTHTOKEN_EDIT: case self::AUTHTOKEN_DELETE: return $userProfile->isMgmApiTokens(); - case self::ACCOUNT_DEFAULT_PERMISSION: - case self::ACCOUNT_DEFAULT_PERMISSION_SEARCH: - case self::ACCOUNT_DEFAULT_PERMISSION_VIEW: - case self::ACCOUNT_DEFAULT_PERMISSION_CREATE: - case self::ACCOUNT_DEFAULT_PERMISSION_EDIT: - case self::ACCOUNT_DEFAULT_PERMISSION_DELETE: - return $userProfile->isMgmAccountDefaultPermissions(); + case self::ITEMPRESET: + case self::ITEMPRESET_SEARCH: + case self::ITEMPRESET_VIEW: + case self::ITEMPRESET_CREATE: + case self::ITEMPRESET_EDIT: + case self::ITEMPRESET_DELETE: + return $userProfile->isMgmItemsPreset(); case self::EVENTLOG: case self::EVENTLOG_SEARCH: case self::EVENTLOG_CLEAR: diff --git a/lib/SP/Core/Acl/ActionsInterface.php b/lib/SP/Core/Acl/ActionsInterface.php index d3e3831c..0a428b36 100644 --- a/lib/SP/Core/Acl/ActionsInterface.php +++ b/lib/SP/Core/Acl/ActionsInterface.php @@ -169,12 +169,12 @@ interface ActionsInterface const EVENTLOG = 1701; const EVENTLOG_SEARCH = 1702; const EVENTLOG_CLEAR = 1703; - const ACCOUNT_DEFAULT_PERMISSION = 1801; - const ACCOUNT_DEFAULT_PERMISSION_SEARCH = 1802; - const ACCOUNT_DEFAULT_PERMISSION_VIEW = 1803; - const ACCOUNT_DEFAULT_PERMISSION_CREATE = 1804; - const ACCOUNT_DEFAULT_PERMISSION_EDIT = 1805; - const ACCOUNT_DEFAULT_PERMISSION_DELETE = 1806; + const ITEMPRESET = 1801; + const ITEMPRESET_SEARCH = 1802; + const ITEMPRESET_VIEW = 1803; + const ITEMPRESET_CREATE = 1804; + const ITEMPRESET_EDIT = 1805; + const ITEMPRESET_DELETE = 1806; const ITEMS_MANAGE = 5001; const ACCESS_MANAGE = 5002; const USERSETTINGS = 5010; diff --git a/lib/SP/Core/Exceptions/NoSuchPropertyException.php b/lib/SP/Core/Exceptions/NoSuchPropertyException.php new file mode 100644 index 00000000..d1b03e24 --- /dev/null +++ b/lib/SP/Core/Exceptions/NoSuchPropertyException.php @@ -0,0 +1,35 @@ +. + */ + +namespace SP\Core\Exceptions; + +/** + * Class NoSuchPropertyException + * + * @package SP\Core\Exceptions + */ +class NoSuchPropertyException extends \Exception +{ + +} \ No newline at end of file diff --git a/lib/SP/DataModel/HydratableInterface.php b/lib/SP/DataModel/HydratableInterface.php new file mode 100644 index 00000000..f96c8949 --- /dev/null +++ b/lib/SP/DataModel/HydratableInterface.php @@ -0,0 +1,42 @@ +. + */ + +namespace SP\DataModel; + +/** + * Interface HydratableInterface + * + * @package SP\DataModel + */ +interface HydratableInterface +{ + /** + * @param string $class + * + * @param string $property + * + * @return mixed|null + */ + public function hydrate(string $class = null, string $property = 'data'); +} \ No newline at end of file diff --git a/lib/SP/DataModel/AccountDefaultPermissionData.php b/lib/SP/DataModel/ItemPresetData.php similarity index 71% rename from lib/SP/DataModel/AccountDefaultPermissionData.php rename to lib/SP/DataModel/ItemPresetData.php index 47d78e2d..9826e861 100644 --- a/lib/SP/DataModel/AccountDefaultPermissionData.php +++ b/lib/SP/DataModel/ItemPresetData.php @@ -24,19 +24,24 @@ namespace SP\DataModel; +use SP\Core\Exceptions\NoSuchPropertyException; use SP\Util\Util; /** - * Class AccountDefaultPermission + * Class ItemPresetData * * @package SP\DataModel */ -class AccountDefaultPermissionData extends DataModelBase +class ItemPresetData extends DataModelBase implements HydratableInterface { /** * @var int */ public $id; + /** + * @var string + */ + public $type; /** * @var int */ @@ -60,11 +65,7 @@ class AccountDefaultPermissionData extends DataModelBase /** * @var string */ - public $permission; - /** - * @var AccountPermission - */ - private $accountPermission; + public $data; /** * @return int @@ -77,7 +78,7 @@ class AccountDefaultPermissionData extends DataModelBase /** * @param int $id * - * @return AccountDefaultPermissionData + * @return ItemPresetData */ public function setId(int $id) { @@ -97,7 +98,7 @@ class AccountDefaultPermissionData extends DataModelBase /** * @param int $userId * - * @return AccountDefaultPermissionData + * @return ItemPresetData */ public function setUserId(int $userId) { @@ -117,7 +118,7 @@ class AccountDefaultPermissionData extends DataModelBase /** * @param int $userGroupId * - * @return AccountDefaultPermissionData + * @return ItemPresetData */ public function setUserGroupId(int $userGroupId) { @@ -137,7 +138,7 @@ class AccountDefaultPermissionData extends DataModelBase /** * @param int $userProfileId * - * @return AccountDefaultPermissionData + * @return ItemPresetData */ public function setUserProfileId(int $userProfileId) { @@ -157,7 +158,7 @@ class AccountDefaultPermissionData extends DataModelBase /** * @param int $fixed * - * @return AccountDefaultPermissionData + * @return ItemPresetData */ public function setFixed(int $fixed) { @@ -177,7 +178,7 @@ class AccountDefaultPermissionData extends DataModelBase /** * @param int $priority * - * @return AccountDefaultPermissionData + * @return ItemPresetData */ public function setPriority(int $priority) { @@ -189,9 +190,17 @@ class AccountDefaultPermissionData extends DataModelBase /** * @return string */ - public function getPermission() + public function getData() { - return $this->permission; + return $this->data; + } + + /** + * @param string $data + */ + public function setData(string $data) + { + $this->data = $data; } /** @@ -199,39 +208,43 @@ class AccountDefaultPermissionData extends DataModelBase */ public function getHash() { - return sha1((int)$this->userId . (int)$this->userGroupId . (int)$this->userProfileId . (int)$this->priority); + return sha1($this->type . (int)$this->userId . (int)$this->userGroupId . (int)$this->userProfileId . (int)$this->priority); } /** - * @return $this + * @param string $class + * + * @param string $property + * + * @return mixed + * @throws NoSuchPropertyException */ - public function hydrate() + public function hydrate(string $class = null, string $property = 'data') { - if ($this->permission !== null) { - $this->accountPermission = Util::unserialize(AccountPermission::class, $this->permission); + if (property_exists($this, $property)) { + if ($this->data !== null) { + return $class !== null ? Util::unserialize($class, $this->data) : unserialize($this->data); + } + + return null; } - return $this; + throw new NoSuchPropertyException($property); } /** - * @return AccountPermission + * @return string */ - public function getAccountPermission() + public function getType() { - return $this->accountPermission; + return $this->type; } /** - * @param AccountPermission $accountPermission - * - * @return AccountDefaultPermissionData + * @param string $type */ - public function setAccountPermission(AccountPermission $accountPermission) + public function setType(string $type) { - $this->accountPermission = $accountPermission; - $this->permission = serialize($accountPermission); - - return $this; + $this->type = $type; } } \ No newline at end of file diff --git a/lib/SP/DataModel/ProfileData.php b/lib/SP/DataModel/ProfileData.php index 47cef519..e8063430 100644 --- a/lib/SP/DataModel/ProfileData.php +++ b/lib/SP/DataModel/ProfileData.php @@ -144,7 +144,7 @@ class ProfileData /** * @var bool */ - protected $mgmAccountDefaultPermissions = false; + protected $mgmItemsPreset = false; /** * @var bool */ @@ -769,19 +769,19 @@ class ProfileData /** * @return bool */ - public function isMgmAccountDefaultPermissions(): bool + public function isMgmItemsPreset(): bool { - return $this->mgmAccountDefaultPermissions; + return $this->mgmItemsPreset; } /** - * @param bool $mgmAccountDefaultPermissions + * @param bool $mgmItemsPreset * * @return ProfileData */ - public function setMgmAccountDefaultPermissions(bool $mgmAccountDefaultPermissions) + public function setMgmItemsPreset(bool $mgmItemsPreset) { - $this->mgmAccountDefaultPermissions = $mgmAccountDefaultPermissions; + $this->mgmItemsPreset = $mgmItemsPreset; return $this; } diff --git a/lib/SP/Repositories/Account/AccountDefaultPermissionRepository.php b/lib/SP/Repositories/ItemPreset/ItemPresetRepository.php similarity index 72% rename from lib/SP/Repositories/Account/AccountDefaultPermissionRepository.php rename to lib/SP/Repositories/ItemPreset/ItemPresetRepository.php index 2a7af5eb..8d10a822 100644 --- a/lib/SP/Repositories/Account/AccountDefaultPermissionRepository.php +++ b/lib/SP/Repositories/ItemPreset/ItemPresetRepository.php @@ -22,9 +22,9 @@ * along with sysPass. If not, see . */ -namespace SP\Repositories\Account; +namespace SP\Repositories\ItemPreset; -use SP\DataModel\AccountDefaultPermissionData; +use SP\DataModel\ItemPresetData; use SP\DataModel\ItemSearchData; use SP\Repositories\Repository; use SP\Repositories\RepositoryItemInterface; @@ -37,14 +37,14 @@ use SP\Storage\Database\QueryResult; * * @package SP\Repositories\Account */ -class AccountDefaultPermissionRepository extends Repository implements RepositoryItemInterface +class ItemPresetRepository extends Repository implements RepositoryItemInterface { use RepositoryItemTrait; /** * Creates an item * - * @param AccountDefaultPermissionData $itemData + * @param ItemPresetData $itemData * * @return int * @throws \SP\Core\Exceptions\ConstraintException @@ -54,21 +54,23 @@ class AccountDefaultPermissionRepository extends Repository implements Repositor { $queryData = new QueryData(); $queryData->setQuery( - 'INSERT INTO AccountDefaultPermission - SET userId = ?, + 'INSERT INTO ItemPreset + SET type = ?, + userId = ?, userGroupId = ?, userProfileId = ?, `fixed` = ?, priority = ?, - permission = ?, + `data` = ?, `hash` = ?'); $queryData->setParams([ + $itemData->getType(), $itemData->getUserId(), $itemData->getUserGroupId(), $itemData->getUserProfileId(), $itemData->getFixed(), $itemData->getPriority(), - $itemData->getPermission(), + $itemData->getData(), $itemData->getHash() ]); $queryData->setOnErrorMessage(__u('Error al crear permiso')); @@ -79,7 +81,7 @@ class AccountDefaultPermissionRepository extends Repository implements Repositor /** * Updates an item * - * @param AccountDefaultPermissionData $itemData + * @param ItemPresetData $itemData * * @return int * @throws \SP\Core\Exceptions\ConstraintException @@ -89,22 +91,24 @@ class AccountDefaultPermissionRepository extends Repository implements Repositor { $queryData = new QueryData(); $queryData->setQuery( - 'UPDATE AccountDefaultPermission - SET userId = ?, + 'UPDATE ItemPreset + SET type = ?, + userId = ?, userGroupId = ?, userProfileId = ?, `fixed` = ?, priority = ?, - permission = ?, + `data` = ?, `hash` = ? WHERE id = ? LIMIT 1'); $queryData->setParams([ + $itemData->getType(), $itemData->getUserId(), $itemData->getUserGroupId(), $itemData->getUserProfileId(), $itemData->getFixed(), $itemData->getPriority(), - $itemData->getPermission(), + $itemData->getData(), $itemData->getHash(), $itemData->getId() ]); @@ -125,7 +129,7 @@ class AccountDefaultPermissionRepository extends Repository implements Repositor public function delete($id) { $queryData = new QueryData(); - $queryData->setQuery('DELETE FROM AccountDefaultPermission WHERE id = ? LIMIT 1'); + $queryData->setQuery('DELETE FROM ItemPreset WHERE id = ? LIMIT 1'); $queryData->setParams([$id]); $queryData->setOnErrorMessage(__u('Error al eliminar permiso')); @@ -144,10 +148,10 @@ class AccountDefaultPermissionRepository extends Repository implements Repositor public function getById($id) { $queryData = new QueryData(); - $queryData->setMapClassName(AccountDefaultPermissionData::class); + $queryData->setMapClassName(ItemPresetData::class); $queryData->setQuery( - 'SELECT id, userId, userGroupId, userProfileId, `fixed`, priority, permission - FROM AccountDefaultPermission WHERE id = ? LIMIT 1'); + 'SELECT id, type, userId, userGroupId, userProfileId, `fixed`, priority, `data` + FROM ItemPreset WHERE id = ? LIMIT 1'); $queryData->setParams([$id]); return $this->db->doSelect($queryData); @@ -156,26 +160,27 @@ class AccountDefaultPermissionRepository extends Repository implements Repositor /** * Returns the item for given id * - * @param int $userId - * @param int $userGroupId - * @param int $userProfileId + * @param string $type + * @param int $userId + * @param int $userGroupId + * @param int $userProfileId * * @return QueryResult * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ - public function getByFilter(int $userId, int $userGroupId, int $userProfileId) + public function getByFilter(string $type, int $userId, int $userGroupId, int $userProfileId) { $queryData = new QueryData(); - $queryData->setMapClassName(AccountDefaultPermissionData::class); + $queryData->setMapClassName(ItemPresetData::class); $queryData->setQuery( - 'SELECT id, userId, userGroupId, userProfileId, `fixed`, priority, permission - FROM AccountDefaultPermission - WHERE userId = ? OR userGroupId = ? OR userProfileId = ? + 'SELECT id, type, userId, userGroupId, userProfileId, `fixed`, priority, `data` + FROM ItemPreset + WHERE type = ? AND (userId = ? OR userGroupId = ? OR userProfileId = ?) ORDER BY priority DESC, userId DESC, userProfileId DESC, userGroupId DESC LIMIT 1'); - $queryData->setParams([$userId, $userGroupId, $userProfileId]); + $queryData->setParams([$type, $userId, $userGroupId, $userProfileId]); return $this->db->doSelect($queryData); } @@ -190,10 +195,10 @@ class AccountDefaultPermissionRepository extends Repository implements Repositor public function getAll() { $queryData = new QueryData(); - $queryData->setMapClassName(AccountDefaultPermissionData::class); + $queryData->setMapClassName(ItemPresetData::class); $queryData->setQuery( - 'SELECT id, userId, userGroupId, userProfileId, `fixed`, priority, permission - FROM AccountDefaultPermission'); + 'SELECT id, type, userId, userGroupId, userProfileId, `fixed`, priority, `data` + FROM ItemPreset'); return $this->db->doSelect($queryData); } @@ -214,10 +219,10 @@ class AccountDefaultPermissionRepository extends Repository implements Repositor } $queryData = new QueryData(); - $queryData->setMapClassName(AccountDefaultPermissionData::class); + $queryData->setMapClassName(ItemPresetData::class); $queryData->setQuery( - 'SELECT userId, userGroupId, userProfileId, `fixed`, priority, permission - FROM AccountDefaultPermission WHERE id IN (' . $this->getParamsFromArray($ids) . ')'); + 'SELECT type, userId, userGroupId, userProfileId, `fixed`, priority, `data` + FROM ItemPreset WHERE id IN (' . $this->getParamsFromArray($ids) . ')'); $queryData->setParams($ids); return $this->db->doSelect($queryData); @@ -239,7 +244,7 @@ class AccountDefaultPermissionRepository extends Repository implements Repositor } $queryData = new QueryData(); - $queryData->setQuery('DELETE FROM AccountDefaultPermission WHERE id IN (' . $this->getParamsFromArray($ids) . ')'); + $queryData->setQuery('DELETE FROM ItemPreset WHERE id IN (' . $this->getParamsFromArray($ids) . ')'); $queryData->setParams($ids); $queryData->setOnErrorMessage(__u('Error al eliminar los permisos')); @@ -289,30 +294,32 @@ class AccountDefaultPermissionRepository extends Repository implements Repositor { $queryData = new QueryData(); $queryData->setSelect( - 'ADP.id, - ADP.userId, - ADP.userGroupId, - ADP.userProfileId, - ADP.`fixed`, - ADP.priority, - ADP.permission, + 'IP.id, + IP.type, + IP.userId, + IP.userGroupId, + IP.userProfileId, + IP.`fixed`, + IP.priority, + IP.data, U.name AS userName, UP.name AS userProfileName, UG.name AS userGroupName'); $queryData->setFrom(' - AccountDefaultPermission ADP - LEFT JOIN User U ON ADP.userId = U.id - LEFT JOIN UserProfile UP ON ADP.userProfileId = UP.id - LEFT JOIN UserGroup UG ON ADP.userGroupId = UG.id'); - $queryData->setOrder('id'); + ItemPreset IP + LEFT JOIN User U ON IP.userId = U.id + LEFT JOIN UserProfile UP ON IP.userProfileId = UP.id + LEFT JOIN UserGroup UG ON IP.userGroupId = UG.id'); + $queryData->setOrder('IP.type, IP.priority DESC, IP.userId DESC, IP.userProfileId DESC, IP.userGroupId DESC'); if ($itemSearchData->getSeachString() !== '') { - $queryData->setWhere('U.name LIKE ? OR UP.name LIKE ? OR UG.name LIKE ?'); + $queryData->setWhere('IP.type LIKE ? OR U.name LIKE ? OR UP.name LIKE ? OR UG.name LIKE ?'); $search = '%' . $itemSearchData->getSeachString() . '%'; $queryData->addParam($search); $queryData->addParam($search); $queryData->addParam($search); + $queryData->addParam($search); } $queryData->setLimit('?,?'); @@ -321,14 +328,4 @@ class AccountDefaultPermissionRepository extends Repository implements Repositor return $this->db->doSelect($queryData, true); } - - /** - * @param AccountDefaultPermissionData $data - * - * @return string - */ - private function getHash(AccountDefaultPermissionData $data) - { - return sha1((int)$data->getUserId() . (int)$data->getUserGroupId() . (int)$data->getUserProfileId() . (int)$data->getPriority()); - } } \ No newline at end of file diff --git a/lib/SP/Services/Account/AccountService.php b/lib/SP/Services/Account/AccountService.php index 60adb84f..6c61c3ff 100644 --- a/lib/SP/Services/Account/AccountService.php +++ b/lib/SP/Services/Account/AccountService.php @@ -31,6 +31,7 @@ use SP\Core\Exceptions\SPException; use SP\DataModel\AccountData; use SP\DataModel\AccountHistoryData; use SP\DataModel\AccountPassData; +use SP\DataModel\AccountPermission; use SP\DataModel\AccountSearchVData; use SP\DataModel\Dto\AccountDetailsResponse; use SP\DataModel\Dto\AccountHistoryCreateDto; @@ -41,6 +42,8 @@ use SP\Repositories\Account\AccountToUserGroupRepository; use SP\Repositories\Account\AccountToUserRepository; use SP\Repositories\NoSuchItemException; use SP\Services\Config\ConfigService; +use SP\Services\ItemPreset\ItemPresetInterface; +use SP\Services\ItemPreset\ItemPresetService; use SP\Services\Service; use SP\Services\ServiceException; use SP\Services\ServiceItemTrait; @@ -72,9 +75,9 @@ final class AccountService extends Service implements AccountServiceInterface */ protected $accountToTagRepository; /** - * @var AccountDefaultPermissionService + * @var ItemPresetService */ - protected $accountDefaultPermissionService; + protected $itemPresetService; /** * @param int $id @@ -293,16 +296,17 @@ final class AccountService extends Service implements AccountServiceInterface * * @throws QueryException * @throws \SP\Core\Exceptions\ConstraintException + * @throws \SP\Core\Exceptions\NoSuchPropertyException */ private function addDefaultPermissions(int $accountId) { - $accountDefaultPermission = $this->accountDefaultPermissionService->getForCurrentUser(); + $itemPresetData = $this->itemPresetService->getForCurrentUser(ItemPresetInterface::ITEM_TYPE_PERMISSION); - if ($accountDefaultPermission !== null - && $accountDefaultPermission->getFixed() + if ($itemPresetData !== null + && $itemPresetData->getFixed() ) { $userData = $this->context->getUserData(); - $accountPermission = $accountDefaultPermission->getAccountPermission(); + $accountPermission = $itemPresetData->hydrate(AccountPermission::class); $accountRequest = new AccountRequest(); $accountRequest->id = $accountId; @@ -694,6 +698,6 @@ final class AccountService extends Service implements AccountServiceInterface $this->accountToUserRepository = $this->dic->get(AccountToUserRepository::class); $this->accountToUserGroupRepository = $this->dic->get(AccountToUserGroupRepository::class); $this->accountToTagRepository = $this->dic->get(AccountToTagRepository::class); - $this->accountDefaultPermissionService = $this->dic->get(AccountDefaultPermissionService::class); + $this->itemPresetService = $this->dic->get(ItemPresetService::class); } } \ No newline at end of file diff --git a/lib/SP/Services/Install/Installer.php b/lib/SP/Services/Install/Installer.php index 671dc35b..b933e0d1 100644 --- a/lib/SP/Services/Install/Installer.php +++ b/lib/SP/Services/Install/Installer.php @@ -57,7 +57,7 @@ final class Installer extends Service */ const VERSION = [3, 0, 0]; const VERSION_TEXT = '3.0-beta'; - const BUILD = 18083001; + const BUILD = 18083002; /** * @var DatabaseSetupInterface diff --git a/lib/SP/Services/ItemPreset/ItemPresetInterface.php b/lib/SP/Services/ItemPreset/ItemPresetInterface.php new file mode 100644 index 00000000..06b29a37 --- /dev/null +++ b/lib/SP/Services/ItemPreset/ItemPresetInterface.php @@ -0,0 +1,38 @@ +. + */ + +namespace SP\Services\ItemPreset; + +/** + * Interface ItemPresetInterface + * + * @package SP\Services\ItemPreset + */ +interface ItemPresetInterface +{ + const ITEM_TYPE_PERMISSION = 'permission'; + const ITEM_TYPE_TAGS = 'tag'; + const ITEM_TYPE_PASSWORD = 'password'; + const ITEM_TYPE_PRIVATE_ACCOUNT = 'private_account'; +} \ No newline at end of file diff --git a/lib/SP/Services/ItemPreset/ItemPresetRequest.php b/lib/SP/Services/ItemPreset/ItemPresetRequest.php new file mode 100644 index 00000000..436930e2 --- /dev/null +++ b/lib/SP/Services/ItemPreset/ItemPresetRequest.php @@ -0,0 +1,83 @@ +. + */ + +namespace SP\Services\ItemPreset; + +use SP\DataModel\ItemPresetData; + + +/** + * Class ItemPresetRequest + * + * @package SP\Services\ItemPreset + */ +class ItemPresetRequest +{ + /** + * @var ItemPresetData + */ + private $itemPresetData; + /** + * @var mixed + */ + private $data; + + /** + * ItemPresetRequest constructor. + * + * @param ItemPresetData $itemPresetData + * @param mixed $data + */ + public function __construct(ItemPresetData $itemPresetData, $data) + { + $this->itemPresetData = $itemPresetData; + $this->data = $data; + } + + /** + * @return ItemPresetData + */ + public function getItemPresetData(): ItemPresetData + { + return $this->itemPresetData; + } + + /** + * @return mixed + */ + public function getData() + { + return $this->data; + } + + /** + * @return ItemPresetData + */ + public function prepareToPersist() + { + $this->itemPresetData->setData(serialize($this->data)); + + return $this->itemPresetData; + } +} \ No newline at end of file diff --git a/lib/SP/Services/Account/AccountDefaultPermissionService.php b/lib/SP/Services/ItemPreset/ItemPresetService.php similarity index 59% rename from lib/SP/Services/Account/AccountDefaultPermissionService.php rename to lib/SP/Services/ItemPreset/ItemPresetService.php index 1fa908f9..7334c241 100644 --- a/lib/SP/Services/Account/AccountDefaultPermissionService.php +++ b/lib/SP/Services/ItemPreset/ItemPresetService.php @@ -22,50 +22,50 @@ * along with sysPass. If not, see . */ -namespace SP\Services\Account; +namespace SP\Services\ItemPreset; -use SP\DataModel\AccountDefaultPermissionData; +use SP\DataModel\ItemPresetData; use SP\DataModel\ItemSearchData; -use SP\Repositories\Account\AccountDefaultPermissionRepository; +use SP\Repositories\ItemPreset\ItemPresetRepository; use SP\Repositories\NoSuchItemException; use SP\Services\Service; use SP\Services\ServiceException; use SP\Storage\Database\QueryResult; /** - * Class AccountDefaultPermissionService + * Class ItemPresetService * * @package SP\Services\Account */ -class AccountDefaultPermissionService extends Service +class ItemPresetService extends Service { /** - * @var AccountDefaultPermissionRepository + * @var ItemPresetRepository */ - private $accountDefaultPermissionRepository; + private $itemPresetRepository; /** - * @param AccountDefaultPermissionData $accountDefaultPermissionData + * @param ItemPresetRequest $itemPresetRequest * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ - public function create(AccountDefaultPermissionData $accountDefaultPermissionData) + public function create(ItemPresetRequest $itemPresetRequest) { - return $this->accountDefaultPermissionRepository->create($accountDefaultPermissionData); + return $this->itemPresetRepository->create($itemPresetRequest->prepareToPersist()); } /** - * @param AccountDefaultPermissionData $accountDefaultPermissionData + * @param ItemPresetRequest $itemPresetRequest * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ - public function update(AccountDefaultPermissionData $accountDefaultPermissionData) + public function update(ItemPresetRequest $itemPresetRequest) { - return $this->accountDefaultPermissionRepository->update($accountDefaultPermissionData); + return $this->itemPresetRepository->update($itemPresetRequest->prepareToPersist()); } /** @@ -73,15 +73,15 @@ class AccountDefaultPermissionService extends Service * * @param $id * - * @return AccountDefaultPermissionService + * @return ItemPresetService * @throws NoSuchItemException * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ public function delete($id) { - if ($this->accountDefaultPermissionRepository->delete($id) === 0) { - throw new NoSuchItemException(__u('Permiso no encontrada')); + if ($this->itemPresetRepository->delete($id) === 0) { + throw new NoSuchItemException(__u('Valor no encontrada')); } return $this; @@ -92,35 +92,32 @@ class AccountDefaultPermissionService extends Service * * @param int $id * - * @return AccountDefaultPermissionData + * @return ItemPresetData * @throws NoSuchItemException * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ public function getById($id) { - $result = $this->accountDefaultPermissionRepository->getById($id); + $result = $this->itemPresetRepository->getById($id); if ($result->getNumRows() === 0) { - throw new NoSuchItemException(__u('Permiso no encontrada')); + throw new NoSuchItemException(__u('Valor no encontrada')); } - /** @var AccountDefaultPermissionData $data */ - $data = $result->getData(); - - return $data->hydrate(); + return $result->getData(); } /** * Returns all the items * - * @return AccountDefaultPermissionData[] + * @return ItemPresetData[] * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ public function getAll() { - return $this->accountDefaultPermissionRepository->getAll()->getDataAsArray(); + return $this->itemPresetRepository->getAll()->getDataAsArray(); } /** @@ -134,40 +131,44 @@ class AccountDefaultPermissionService extends Service */ public function search(ItemSearchData $itemSearchData) { - return $this->accountDefaultPermissionRepository->search($itemSearchData); + return $this->itemPresetRepository->search($itemSearchData); } /** - * @return AccountDefaultPermissionData + * @param string $type + * + * @return ItemPresetData * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ - public function getForCurrentUser() + public function getForCurrentUser(string $type) { $userData = $this->context->getUserData(); - return $this->getForUser($userData->getId(), $userData->getUserGroupId(), $userData->getUserProfileId()); + return $this->getForUser($type, $userData->getId(), $userData->getUserGroupId(), $userData->getUserProfileId()); } /** - * @param int $userId - * @param int $userGroupId - * @param int $userProfileId + * @param string $type + * @param int $userId + * @param int $userGroupId + * @param int $userProfileId * - * @return AccountDefaultPermissionData + * @return ItemPresetData * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ - public function getForUser(int $userId, int $userGroupId, int $userProfileId) + public function getForUser(string $type, int $userId, int $userGroupId, int $userProfileId) { - $result = $this->accountDefaultPermissionRepository->getByFilter( + $result = $this->itemPresetRepository->getByFilter( + $type, $userId, $userGroupId, $userProfileId ); if ($result->getNumRows() === 1) { - return $result->getData()->hydrate(); + return $result->getData(); } return null; @@ -183,8 +184,8 @@ class AccountDefaultPermissionService extends Service */ public function deleteByIdBatch(array $ids) { - if (($count = $this->accountDefaultPermissionRepository->deleteByIdBatch($ids)) !== count($ids)) { - throw new ServiceException(__u('Error al eliminar los permisos'), ServiceException::WARNING); + if (($count = $this->itemPresetRepository->deleteByIdBatch($ids)) !== count($ids)) { + throw new ServiceException(__u('Error al eliminar los valores'), ServiceException::WARNING); } return $count; @@ -192,6 +193,6 @@ class AccountDefaultPermissionService extends Service protected function initialize() { - $this->accountDefaultPermissionRepository = $this->dic->get(AccountDefaultPermissionRepository::class); + $this->itemPresetRepository = $this->dic->get(ItemPresetRepository::class); } } \ No newline at end of file diff --git a/lib/SP/Services/Upgrade/UpgradeDatabaseService.php b/lib/SP/Services/Upgrade/UpgradeDatabaseService.php index 815b6892..649bdda7 100644 --- a/lib/SP/Services/Upgrade/UpgradeDatabaseService.php +++ b/lib/SP/Services/Upgrade/UpgradeDatabaseService.php @@ -45,7 +45,7 @@ final class UpgradeDatabaseService extends Service implements UpgradeInterface /** * @var array Versiones actualizables */ - const UPGRADES = ['300.18010101', '300.18072302', '300.18072501', '300.18083001']; + const UPGRADES = ['300.18010101', '300.18072302', '300.18072501', '300.18083001', '300.18083002']; /** * @var Database @@ -72,6 +72,7 @@ final class UpgradeDatabaseService extends Service implements UpgradeInterface * * @return bool * @throws UpgradeException + * @throws FileException */ public function upgrade($version, ConfigData $configData) { diff --git a/lib/SP/Storage/Database/QueryResult.php b/lib/SP/Storage/Database/QueryResult.php index cf66ec85..7895e07e 100644 --- a/lib/SP/Storage/Database/QueryResult.php +++ b/lib/SP/Storage/Database/QueryResult.php @@ -87,11 +87,12 @@ final class QueryResult } /** - * @return mixed + * @param string $class + * + * @return mixed|null */ - public function getData() + public function getData(string $class = null) { - // FIXME if ($this->numRows === 1) { return $this->data[0]; } diff --git a/schemas/30018083002.sql b/schemas/30018083002.sql new file mode 100644 index 00000000..51903790 --- /dev/null +++ b/schemas/30018083002.sql @@ -0,0 +1,53 @@ +DELIMITER $$ + +ALTER TABLE AccountDefaultPermission + CHANGE permission data blob $$ +DROP INDEX uk_AccountDefaultPermission_01 +ON AccountDefaultPermission $$ +ALTER TABLE AccountDefaultPermission + DROP FOREIGN KEY fk_AccountDefaultPermission_userProfileId $$ +ALTER TABLE AccountDefaultPermission + DROP FOREIGN KEY fk_AccountDefaultPermission_userGroupId $$ +ALTER TABLE AccountDefaultPermission + DROP FOREIGN KEY fk_AccountDefaultPermission_userId $$ +DROP INDEX fk_AccountDefaultPermission_userProfileId +ON AccountDefaultPermission $$ +DROP INDEX fk_AccountDefaultPermission_userGroupId +ON AccountDefaultPermission $$ +DROP INDEX fk_AccountDefaultPermission_userId +ON AccountDefaultPermission $$ +ALTER TABLE AccountDefaultPermission +RENAME TO ItemPreset $$ +ALTER TABLE ItemPreset + ADD type varchar(25) NOT NULL $$ +ALTER TABLE ItemPreset + MODIFY COLUMN type varchar(25) NOT NULL + AFTER id $$ +CREATE UNIQUE INDEX uk_ItemPreset_01 + ON ItemPreset (hash) $$ +CREATE INDEX fk_ItemPreset_userId + ON ItemPreset (userId) $$ +CREATE INDEX fk_ItemPreset_userGroupId + ON ItemPreset (userGroupId) $$ +CREATE INDEX fk_ItemPreset_userProfileId + ON ItemPreset (userProfileId) $$ +ALTER TABLE ItemPreset + ADD CONSTRAINT fk_ItemPreset_userId +FOREIGN KEY (userId) REFERENCES User (id) + ON DELETE CASCADE + ON UPDATE CASCADE $$ +ALTER TABLE ItemPreset + ADD CONSTRAINT fk_ItemPreset_userGroupId +FOREIGN KEY (userGroupId) REFERENCES UserGroup (id) + ON DELETE CASCADE + ON UPDATE CASCADE $$ +ALTER TABLE ItemPreset + ADD CONSTRAINT fk_ItemPreset_userProfileId +FOREIGN KEY (userProfileId) REFERENCES UserProfile (id) + ON DELETE CASCADE + ON UPDATE CASCADE $$ +UPDATE ItemPreset +SET type = '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/schemas/dbstructure.sql b/schemas/dbstructure.sql index 31eeb25f..9136e0f7 100644 --- a/schemas/dbstructure.sql +++ b/schemas/dbstructure.sql @@ -51,29 +51,30 @@ CREATE TABLE `Account` ( ENGINE = InnoDB DEFAULT CHARSET = utf8; /*!40101 SET character_set_client = @saved_cs_client */; -DROP TABLE IF EXISTS `AccountDefaultPermission`; +DROP TABLE IF EXISTS `ItemPreset`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `AccountDefaultPermission` +CREATE TABLE `ItemPreset` ( `id` int NOT NULL AUTO_INCREMENT, + `type` varchar(25) not null, `userId` smallint(5) unsigned, `userGroupId` smallint(5) unsigned, `userProfileId` smallint(5) unsigned, `fixed` tinyint(1) unsigned DEFAULT 0 NOT NULL, `priority` tinyint(3) unsigned DEFAULT 0 NOT NULL, - `permission` blob, - `hash` varbinary(40) NOT NULL, - UNIQUE INDEX `uk_AccountDefaultPermission_01` (`hash`), - CONSTRAINT `fk_AccountDefaultPermission_userId` + `data` blob, + `hash` varbinary(40) NOT NULL, + UNIQUE INDEX `uk_ItemPreset_01` (`hash`), + CONSTRAINT `fk_ItemPreset_userId` FOREIGN KEY (`userId`) REFERENCES `User` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `fk_AccountDefaultPermission_userGroupId` + CONSTRAINT `fk_ItemPreset_userGroupId` FOREIGN KEY (`userGroupId`) REFERENCES `UserGroup` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `fk_AccountDefaultPermission_userProfileId` + CONSTRAINT `fk_ItemPreset_userProfileId` FOREIGN KEY (`userProfileId`) REFERENCES `UserProfile` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, diff --git a/tests/SP/Repositories/AccountDefaultPermissionRepositoryTest.php b/tests/SP/Repositories/ItemPresetRepositoryTest.php similarity index 80% rename from tests/SP/Repositories/AccountDefaultPermissionRepositoryTest.php rename to tests/SP/Repositories/ItemPresetRepositoryTest.php index 27a78738..54e30d1a 100644 --- a/tests/SP/Repositories/AccountDefaultPermissionRepositoryTest.php +++ b/tests/SP/Repositories/ItemPresetRepositoryTest.php @@ -25,22 +25,22 @@ namespace SP\Tests\Repositories; use SP\Core\Exceptions\ConstraintException; -use SP\DataModel\AccountDefaultPermissionData; +use SP\DataModel\ItemPresetData; use SP\DataModel\ItemSearchData; -use SP\Repositories\Account\AccountDefaultPermissionRepository; +use SP\Repositories\ItemPreset\ItemPresetRepository; use SP\Storage\Database\DatabaseConnectionData; use SP\Tests\DatabaseTestCase; use function SP\Tests\setupContext; /** - * Class AccountDefaultPermissionRepositoryTest + * Class ItemPresetRepositoryTest * * @package SP\Tests\Repositories */ -class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase +class ItemPresetRepositoryTest extends DatabaseTestCase { /** - * @var AccountDefaultPermissionRepository + * @var ItemPresetRepository */ private static $repository; @@ -53,13 +53,13 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase { $dic = setupContext(); - self::$dataset = 'syspass_accountDefaultPermission.xml'; + self::$dataset = 'syspass_itemPreset.xml'; // Datos de conexión a la BBDD self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class); // Inicializar el repositorio - self::$repository = $dic->get(AccountDefaultPermissionRepository::class); + self::$repository = $dic->get(ItemPresetRepository::class); } /** @@ -70,7 +70,7 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase { $this->assertEquals(3, self::$repository->deleteByIdBatch([1, 2, 3, 10])); - $this->assertEquals(2, $this->conn->getRowCount('AccountDefaultPermission')); + $this->assertEquals(2, $this->conn->getRowCount('ItemPreset')); $this->assertEquals(0, self::$repository->deleteByIdBatch([])); } @@ -87,7 +87,7 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase $this->assertEquals(0, self::$repository->delete(10)); - $this->assertEquals(3, $this->conn->getRowCount('AccountDefaultPermission')); + $this->assertEquals(3, $this->conn->getRowCount('ItemPreset')); } /** @@ -107,12 +107,13 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase */ public function testUpdate() { - $data = new AccountDefaultPermissionData(); + $data = new ItemPresetData(); $data->id = 1; $data->userGroupId = 1; $data->fixed = 1; $data->priority = 1; - $data->permission = 'data'; + $data->data = 'data'; + $data->type = 'permission'; self::$repository->update($data); @@ -127,12 +128,13 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase { $this->expectException(ConstraintException::class); - $data = new AccountDefaultPermissionData(); + $data = new ItemPresetData(); $data->id = 1; $data->userGroupId = 1; $data->fixed = 1; $data->priority = 10; - $data->permission = 'data'; + $data->data = 'data'; + $data->type = 'permission'; self::$repository->update($data); } @@ -145,9 +147,13 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase { $this->expectException(ConstraintException::class); - $data = new AccountDefaultPermissionData(); + $data = new ItemPresetData(); $data->id = 2; $data->userId = 10; + $data->fixed = 1; + $data->priority = 1; + $data->data = 'data'; + $data->type = 'permission'; self::$repository->update($data); } @@ -160,9 +166,13 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase { $this->expectException(ConstraintException::class); - $data = new AccountDefaultPermissionData(); + $data = new ItemPresetData(); $data->id = 2; $data->userGroupId = 10; + $data->fixed = 1; + $data->priority = 1; + $data->data = 'data'; + $data->type = 'permission'; self::$repository->update($data); } @@ -175,9 +185,13 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase { $this->expectException(ConstraintException::class); - $data = new AccountDefaultPermissionData(); + $data = new ItemPresetData(); $data->id = 2; $data->userProfileId = 10; + $data->fixed = 1; + $data->priority = 1; + $data->data = 'data'; + $data->type = 'permission'; self::$repository->update($data); } @@ -188,12 +202,13 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase */ public function testUpdateUnknownId() { - $data = new AccountDefaultPermissionData(); + $data = new ItemPresetData(); $data->id = 10; $data->userGroupId = 1; $data->fixed = 1; $data->priority = 1; - $data->permission = 'data'; + $data->data = 'data'; + $data->type = 'permission'; self::$repository->update($data); @@ -206,11 +221,12 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase */ public function testGetById() { - $data = new AccountDefaultPermissionData(); + $data = new ItemPresetData(); $data->id = 1; $data->userId = 1; $data->fixed = 0; $data->priority = 0; + $data->type = 'permission'; $result = self::$repository->getById(1); @@ -224,29 +240,32 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase */ public function testGetAll() { - $count = $this->conn->getRowCount('AccountDefaultPermission'); + $count = $this->conn->getRowCount('ItemPreset'); $result = self::$repository->getAll(); $this->assertEquals($count, $result->getNumRows()); - /** @var AccountDefaultPermissionData[] $data */ + /** @var ItemPresetData[] $data */ $data = $result->getDataAsArray(); $this->assertCount($count, $data); - $this->assertInstanceOf(AccountDefaultPermissionData::class, $data[0]); + $this->assertInstanceOf(ItemPresetData::class, $data[0]); $this->assertEquals(1, $data[0]->getId()); + $this->assertEquals('permission', $data[0]->getType()); $this->assertEquals(1, $data[0]->getUserId()); $this->assertNull($data[0]->getUserGroupId()); $this->assertNull($data[0]->getUserProfileId()); - $this->assertNull($data[0]->getPermission()); + $this->assertNull($data[0]->getData()); $this->assertEquals(0, $data[0]->getFixed()); $this->assertEquals(0, $data[0]->getPriority()); - $this->assertInstanceOf(AccountDefaultPermissionData::class, $data[1]); + $this->assertInstanceOf(ItemPresetData::class, $data[1]); $this->assertEquals(2, $data[1]->getId()); + $this->assertEquals('permission', $data[1]->getType()); - $this->assertInstanceOf(AccountDefaultPermissionData::class, $data[2]); + $this->assertInstanceOf(ItemPresetData::class, $data[2]); $this->assertEquals(3, $data[2]->getId()); + $this->assertEquals('permission', $data[2]->getType()); } /** @@ -267,10 +286,11 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase $this->assertCount(1, $data); $this->assertInstanceOf(\stdClass::class, $data[0]); $this->assertEquals(4, $data[0]->id); + $this->assertEquals('permission', $data[0]->type); $this->assertEquals(2, $data[0]->userId); $this->assertNull($data[0]->userGroupId); $this->assertNull($data[0]->userProfileId); - $this->assertNull($data[0]->permission); + $this->assertNull($data[0]->data); $this->assertEquals(0, $data[0]->fixed); $this->assertEquals(0, $data[0]->priority); $this->assertEquals('sysPass demo', $data[0]->userName); @@ -287,10 +307,11 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase $this->assertCount(1, $data); $this->assertInstanceOf(\stdClass::class, $data[0]); $this->assertEquals(2, $data[0]->id); + $this->assertEquals('permission', $data[0]->type); $this->assertNull($data[0]->userId); $this->assertEquals(1, $data[0]->userGroupId); $this->assertNull($data[0]->userProfileId); - $this->assertNull($data[0]->permission); + $this->assertNull($data[0]->data); $this->assertEquals(0, $data[0]->fixed); $this->assertEquals(10, $data[0]->priority); $this->assertEquals('Admins', $data[0]->userGroupName); @@ -307,10 +328,11 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase $this->assertCount(1, $data); $this->assertInstanceOf(\stdClass::class, $data[0]); $this->assertEquals(5, $data[0]->id); + $this->assertEquals('permission', $data[0]->type); $this->assertNull($data[0]->userId); $this->assertNull($data[0]->userGroupId); $this->assertEquals(3, $data[0]->userProfileId); - $this->assertNull($data[0]->permission); + $this->assertNull($data[0]->data); $this->assertEquals(0, $data[0]->fixed); $this->assertEquals(10, $data[0]->priority); $this->assertEquals('Usuarios', $data[0]->userProfileName); @@ -333,12 +355,13 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase */ public function testCreate() { - $data = new AccountDefaultPermissionData(); + $data = new ItemPresetData(); $data->id = 6; $data->userGroupId = 1; $data->fixed = 1; $data->priority = 20; - $data->permission = 'data'; + $data->data = 'data'; + $data->type = 'permission'; $id = self::$repository->create($data); @@ -354,11 +377,12 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase { $this->expectException(ConstraintException::class); - $data = new AccountDefaultPermissionData(); + $data = new ItemPresetData(); $data->userGroupId = 1; $data->fixed = 1; $data->priority = 10; - $data->permission = 'data'; + $data->data = 'data'; + $data->type = 'permission'; self::$repository->create($data); } @@ -376,14 +400,14 @@ class AccountDefaultPermissionRepositoryTest extends DatabaseTestCase */ public function testGetByFilter($userId, $userGroupId, $userProfileId, $expected) { - $result = self::$repository->getByFilter($userId, $userGroupId, $userProfileId); + $result = self::$repository->getByFilter('permission', $userId, $userGroupId, $userProfileId); $this->assertEquals(1, $result->getNumRows()); - /** @var AccountDefaultPermissionData $data */ + /** @var ItemPresetData $data */ $data = $result->getData(); - $this->assertInstanceOf(AccountDefaultPermissionData::class, $data); + $this->assertInstanceOf(ItemPresetData::class, $data); $this->assertEquals($expected, $data->getId()); } diff --git a/tests/SP/Services/Account/AccountDefaultPermissionServiceTest.php b/tests/SP/Services/ItemPreset/ItemPresetServiceTest.php similarity index 77% rename from tests/SP/Services/Account/AccountDefaultPermissionServiceTest.php rename to tests/SP/Services/ItemPreset/ItemPresetServiceTest.php index 8d70ddec..f1aaaaa4 100644 --- a/tests/SP/Services/Account/AccountDefaultPermissionServiceTest.php +++ b/tests/SP/Services/ItemPreset/ItemPresetServiceTest.php @@ -22,27 +22,28 @@ * along with sysPass. If not, see . */ -namespace SP\Tests\Services\Account; +namespace SP\Tests\Services\ItemPreset; use SP\Core\Exceptions\ConstraintException; -use SP\DataModel\AccountDefaultPermissionData; use SP\DataModel\AccountPermission; +use SP\DataModel\ItemPresetData; use SP\DataModel\ItemSearchData; use SP\Repositories\NoSuchItemException; -use SP\Services\Account\AccountDefaultPermissionService; +use SP\Services\ItemPreset\ItemPresetRequest; +use SP\Services\ItemPreset\ItemPresetService; use SP\Storage\Database\DatabaseConnectionData; use SP\Tests\DatabaseTestCase; use function SP\Tests\setupContext; /** - * Class AccountDefaultPermissionServiceTest + * Class ItemPresetServiceTest * - * @package SP\Tests\Services\Account + * @package SP\Tests\Services\ItemPreset */ -class AccountDefaultPermissionServiceTest extends DatabaseTestCase +class ItemPresetServiceTest extends DatabaseTestCase { /** - * @var AccountDefaultPermissionService + * @var ItemPresetService */ private static $service; @@ -55,13 +56,13 @@ class AccountDefaultPermissionServiceTest extends DatabaseTestCase { $dic = setupContext(); - self::$dataset = 'syspass_accountDefaultPermission.xml'; + self::$dataset = 'syspass_itemPreset.xml'; // Datos de conexión a la BBDD self::$databaseConnectionData = $dic->get(DatabaseConnectionData::class); // Inicializar el servicio - self::$service = $dic->get(AccountDefaultPermissionService::class); + self::$service = $dic->get(ItemPresetService::class); } /** @@ -77,9 +78,9 @@ class AccountDefaultPermissionServiceTest extends DatabaseTestCase */ public function testGetForUser($userId, $userGroupId, $userProfileId, $expected) { - $result = self::$service->getForUser($userId, $userGroupId, $userProfileId); + $result = self::$service->getForUser('permission', $userId, $userGroupId, $userProfileId); - $this->assertInstanceOf(AccountDefaultPermissionData::class, $result); + $this->assertInstanceOf(ItemPresetData::class, $result); $this->assertEquals($expected, $result->getId()); } @@ -107,15 +108,16 @@ class AccountDefaultPermissionServiceTest extends DatabaseTestCase */ public function testGetById() { - $data = new AccountDefaultPermissionData(); + $data = new ItemPresetData(); $data->id = 1; $data->userId = 1; $data->fixed = 0; $data->priority = 0; + $data->type = 'permission'; $result = self::$service->getById(1); - $this->assertInstanceOf(AccountDefaultPermissionData::class, $result); + $this->assertInstanceOf(ItemPresetData::class, $result); $this->assertEquals($data, $result); } @@ -125,24 +127,25 @@ class AccountDefaultPermissionServiceTest extends DatabaseTestCase */ public function testGetAll() { - $count = $this->conn->getRowCount('AccountDefaultPermission'); + $count = $this->conn->getRowCount('ItemPreset'); $result = self::$service->getAll(); $this->assertCount($count, $result); - $this->assertInstanceOf(AccountDefaultPermissionData::class, $result[0]); + $this->assertInstanceOf(ItemPresetData::class, $result[0]); $this->assertEquals(1, $result[0]->getId()); + $this->assertEquals('permission', $result[0]->getType()); $this->assertEquals(1, $result[0]->getUserId()); $this->assertNull($result[0]->getUserGroupId()); $this->assertNull($result[0]->getUserProfileId()); - $this->assertNull($result[0]->getPermission()); + $this->assertNull($result[0]->getData()); $this->assertEquals(0, $result[0]->getFixed()); $this->assertEquals(0, $result[0]->getPriority()); - $this->assertInstanceOf(AccountDefaultPermissionData::class, $result[1]); + $this->assertInstanceOf(ItemPresetData::class, $result[1]); $this->assertEquals(2, $result[1]->getId()); - $this->assertInstanceOf(AccountDefaultPermissionData::class, $result[2]); + $this->assertInstanceOf(ItemPresetData::class, $result[2]); $this->assertEquals(3, $result[2]->getId()); } @@ -150,6 +153,7 @@ class AccountDefaultPermissionServiceTest extends DatabaseTestCase * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException * @throws \SP\Repositories\NoSuchItemException + * @throws \SP\Core\Exceptions\NoSuchPropertyException */ public function testUpdate() { @@ -159,19 +163,21 @@ class AccountDefaultPermissionServiceTest extends DatabaseTestCase $accountPermission->setUserGroupsView([2]); $accountPermission->setUserGroupsEdit([1, 3]); - $data = new AccountDefaultPermissionData(); + $data = new ItemPresetData(); $data->id = 1; $data->userGroupId = 1; $data->fixed = 1; $data->priority = 1; - $data->setAccountPermission($accountPermission); + $data->type = 'permission'; - self::$service->update($data); + $request = new ItemPresetRequest($data, $accountPermission); + + self::$service->update($request); $resultData = self::$service->getById(1); $this->assertEquals($data, $resultData); - $this->assertEquals($accountPermission, $resultData->getAccountPermission()); + $this->assertEquals($accountPermission, $resultData->hydrate(AccountPermission::class)); } /** @@ -186,13 +192,16 @@ class AccountDefaultPermissionServiceTest extends DatabaseTestCase $accountPermission->setUserGroupsView([2]); $accountPermission->setUserGroupsEdit([1, 3]); - $data = new AccountDefaultPermissionData(); + $data = new ItemPresetData(); $data->id = 10; $data->userGroupId = 1; $data->fixed = 1; $data->priority = 1; + $data->type = 'permission'; - $this->assertEquals(0, self::$service->update($data)); + $request = new ItemPresetRequest($data, $accountPermission); + + $this->assertEquals(0, self::$service->update($request)); } /** @@ -206,7 +215,7 @@ class AccountDefaultPermissionServiceTest extends DatabaseTestCase ->delete(3) ->delete(4); - $this->assertEquals(3, $this->conn->getRowCount('AccountDefaultPermission')); + $this->assertEquals(3, $this->conn->getRowCount('ItemPreset')); } /** @@ -239,10 +248,11 @@ class AccountDefaultPermissionServiceTest extends DatabaseTestCase $this->assertCount(1, $data); $this->assertInstanceOf(\stdClass::class, $data[0]); $this->assertEquals(4, $data[0]->id); + $this->assertEquals('permission', $data[0]->type); $this->assertEquals(2, $data[0]->userId); $this->assertNull($data[0]->userGroupId); $this->assertNull($data[0]->userProfileId); - $this->assertNull($data[0]->permission); + $this->assertNull($data[0]->data); $this->assertEquals(0, $data[0]->fixed); $this->assertEquals(0, $data[0]->priority); $this->assertEquals('sysPass demo', $data[0]->userName); @@ -259,10 +269,11 @@ class AccountDefaultPermissionServiceTest extends DatabaseTestCase $this->assertCount(1, $data); $this->assertInstanceOf(\stdClass::class, $data[0]); $this->assertEquals(2, $data[0]->id); + $this->assertEquals('permission', $data[0]->type); $this->assertNull($data[0]->userId); $this->assertEquals(1, $data[0]->userGroupId); $this->assertNull($data[0]->userProfileId); - $this->assertNull($data[0]->permission); + $this->assertNull($data[0]->data); $this->assertEquals(0, $data[0]->fixed); $this->assertEquals(10, $data[0]->priority); $this->assertEquals('Admins', $data[0]->userGroupName); @@ -279,10 +290,11 @@ class AccountDefaultPermissionServiceTest extends DatabaseTestCase $this->assertCount(1, $data); $this->assertInstanceOf(\stdClass::class, $data[0]); $this->assertEquals(5, $data[0]->id); + $this->assertEquals('permission', $data[0]->type); $this->assertNull($data[0]->userId); $this->assertNull($data[0]->userGroupId); $this->assertEquals(3, $data[0]->userProfileId); - $this->assertNull($data[0]->permission); + $this->assertNull($data[0]->data); $this->assertEquals(0, $data[0]->fixed); $this->assertEquals(10, $data[0]->priority); $this->assertEquals('Usuarios', $data[0]->userProfileName); @@ -305,9 +317,9 @@ class AccountDefaultPermissionServiceTest extends DatabaseTestCase */ public function testGetForCurrentUser() { - $data = self::$service->getForCurrentUser(); + $data = self::$service->getForCurrentUser('permission'); - $this->assertInstanceOf(AccountDefaultPermissionData::class, $data); + $this->assertInstanceOf(ItemPresetData::class, $data); $this->assertEquals(2, $data->getId()); } @@ -315,6 +327,7 @@ class AccountDefaultPermissionServiceTest extends DatabaseTestCase * @throws ConstraintException * @throws NoSuchItemException * @throws \SP\Core\Exceptions\QueryException + * @throws \SP\Core\Exceptions\NoSuchPropertyException */ public function testCreate() { @@ -324,17 +337,22 @@ class AccountDefaultPermissionServiceTest extends DatabaseTestCase $accountPermission->setUserGroupsView([2]); $accountPermission->setUserGroupsEdit([1, 3]); - $data = new AccountDefaultPermissionData(); + $data = new ItemPresetData(); $data->id = 6; $data->userGroupId = 1; $data->fixed = 1; $data->priority = 20; - $data->setAccountPermission($accountPermission); + $data->type = 'permission'; - $id = self::$service->create($data); + $request = new ItemPresetRequest($data, $accountPermission); + + $id = self::$service->create($request); + + $result = self::$service->getById($id); $this->assertEquals($data->id, $id); - $this->assertEquals($data, self::$service->getById($id)); + $this->assertEquals($data, $result); + $this->assertEquals($accountPermission, $result->hydrate(AccountPermission::class)); } /** @@ -349,13 +367,16 @@ class AccountDefaultPermissionServiceTest extends DatabaseTestCase $accountPermission->setUserGroupsView([2]); $accountPermission->setUserGroupsEdit([1, 3]); - $data = new AccountDefaultPermissionData(); + $data = new ItemPresetData(); $data->userGroupId = 1; $data->fixed = 1; $data->priority = 10; + $data->type = 'permission'; + + $request = new ItemPresetRequest($data, $accountPermission); $this->expectException(ConstraintException::class); - self::$service->create($data); + self::$service->create($request); } } diff --git a/tests/res/config/actions.xml b/tests/res/config/actions.xml index 768a5b1d..c472d2e1 100644 --- a/tests/res/config/actions.xml +++ b/tests/res/config/actions.xml @@ -328,7 +328,7 @@ 304 CLIENT_CREATE - Nuevo CLiente + Nuevo Cliente client/create @@ -829,4 +829,40 @@ Buscar Notificación notification/search + + 1801 + ITEMPRESET + Gestión Permisos + itemPreset/index + + + 1802 + ITEMPRESET_SEARCH + Buscar Permiso + itemPreset/search + + + 1803 + ITEMPRESET_VIEW + Ver Permiso + itemPreset/view + + + 1804 + ITEMPRESET_CREATE + Nuevo Permiso + itemPreset/create + + + 1805 + ITEMPRESET_EDIT + Editar Permiso + itemPreset/edit + + + 1806 + ITEMPRESET_DELETE + Eliminar Permiso + itemPreset/delete + \ No newline at end of file diff --git a/tests/res/config/config.xml b/tests/res/config/config.xml index ad6a2301..e0825a18 100644 --- a/tests/res/config/config.xml +++ b/tests/res/config/config.xml @@ -9,11 +9,11 @@ 1 1 - e3a34a99dcadc6abf94883a67e91ed05f49eed81 + c8fe86b8b3f1ac71e62daf6c731065910f775dcf 0 0 - 1535584064 - 0cf71c39a7de70930b31dd6c12631cbf2849a44b + 1535637654 + c6cfea1957d8c1b4e30c916f724197a432159564 @@ -32,7 +32,7 @@ 0 - 0d5bfbb33cdcc40548d29018157bf99a1c03b528 + d635cf0e628e8214b00aff938a09f5be6158e590 PDF JPG diff --git a/tests/res/datasets/syspass.xml b/tests/res/datasets/syspass.xml index 1ae75638..f941c7b5 100644 --- a/tests/res/datasets/syspass.xml +++ b/tests/res/datasets/syspass.xml @@ -540,6 +540,6 @@ 0 - + diff --git a/tests/res/datasets/syspass_account.xml b/tests/res/datasets/syspass_account.xml index d6e03edf..6763c26a 100644 --- a/tests/res/datasets/syspass_account.xml +++ b/tests/res/datasets/syspass_account.xml @@ -432,6 +432,6 @@ 0 - + diff --git a/tests/res/datasets/syspass_accountDefaultPermission.xml b/tests/res/datasets/syspass_itemPreset.xml similarity index 94% rename from tests/res/datasets/syspass_accountDefaultPermission.xml rename to tests/res/datasets/syspass_itemPreset.xml index fc42ef0e..be20ecb8 100644 --- a/tests/res/datasets/syspass_accountDefaultPermission.xml +++ b/tests/res/datasets/syspass_itemPreset.xml @@ -141,7 +141,7 @@ - + 1 1 @@ -149,8 +149,9 @@ 0 0 - - e3cbba8883fe746c6e35783c9404b4bc0c7ee9eb + + permission + 284985459df4616aa682a6de4c4994a9fedf164d 2 @@ -159,8 +160,9 @@ 0 10 - - 9c5975f336463693254939bfde7042459607d834 + + permission + ac1de29cfbc9db8c63b3b109c899148e904ccced 3 @@ -169,8 +171,9 @@ 1 0 20 - - 19fc3ecd72937e313c4a4a7023eb0ab07890cee7 + + permission + 3ec16d2bece6de02ed9423f98fcaaba260ffd36b 4 @@ -179,8 +182,9 @@ 0 0 - - a4ac914c09d7c097fe1f4f96b897e625b6922069 + + permission + 8eca5d3518e5531aa968ce0d5a7221f659f5d0ee 5 @@ -189,8 +193,9 @@ 3 0 10 - - 0e718dd1e04a0f28f7e31ddfaed950e2d70ee477 + + permission + fa66da8c08bf2728dfa90bb0682494a763dc0c11