modoboa 2.4.10__py3-none-any.whl → 2.5.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. modoboa/admin/api/v1/serializers.py +1 -0
  2. modoboa/admin/api/v2/serializers.py +15 -1
  3. modoboa/admin/api/v2/tests.py +11 -1
  4. modoboa/admin/lib.py +1 -1
  5. modoboa/admin/models/mailbox.py +15 -13
  6. modoboa/admin/models/mxrecord.py +4 -0
  7. modoboa/admin/tests/test_import_.py +11 -11
  8. modoboa/amavis/__init__.py +3 -0
  9. modoboa/amavis/app_settings.py +276 -0
  10. modoboa/amavis/apps.py +18 -0
  11. modoboa/amavis/checks/__init__.py +2 -0
  12. modoboa/amavis/checks/settings_checks.py +59 -0
  13. modoboa/amavis/dbrouter.py +35 -0
  14. modoboa/amavis/factories.py +164 -0
  15. modoboa/amavis/handlers.py +146 -0
  16. modoboa/amavis/lib.py +381 -0
  17. modoboa/amavis/management/__init__.py +0 -0
  18. modoboa/amavis/management/commands/__init__.py +0 -0
  19. modoboa/amavis/management/commands/amnotify.py +99 -0
  20. modoboa/amavis/management/commands/qcleanup.py +84 -0
  21. modoboa/amavis/migrations/0001_initial.py +340 -0
  22. modoboa/amavis/migrations/__init__.py +0 -0
  23. modoboa/amavis/models.py +226 -0
  24. modoboa/amavis/serializers.py +139 -0
  25. modoboa/amavis/sql_connector.py +240 -0
  26. modoboa/amavis/sql_email.py +66 -0
  27. modoboa/amavis/tasks.py +33 -0
  28. modoboa/amavis/templates/amavis/notifications/pending_requests.html +16 -0
  29. modoboa/amavis/tests/__init__.py +0 -0
  30. modoboa/amavis/tests/sa-learn +3 -0
  31. modoboa/amavis/tests/sample_messages/quarantined-input.txt +80 -0
  32. modoboa/amavis/tests/sample_messages/quarantined-output-plain_nolinks.txt +17 -0
  33. modoboa/amavis/tests/spamc +3 -0
  34. modoboa/amavis/tests/test_checks.py +25 -0
  35. modoboa/amavis/tests/test_handlers.py +214 -0
  36. modoboa/amavis/tests/test_lib.py +90 -0
  37. modoboa/amavis/tests/test_management_commands.py +45 -0
  38. modoboa/amavis/tests/test_sql_email.py +67 -0
  39. modoboa/amavis/tests/test_utils.py +19 -0
  40. modoboa/amavis/tests/test_viewsets.py +319 -0
  41. modoboa/amavis/urls.py +11 -0
  42. modoboa/amavis/utils.py +105 -0
  43. modoboa/amavis/viewsets.py +265 -0
  44. modoboa/core/api/v1/serializers.py +7 -5
  45. modoboa/core/api/v2/serializers.py +13 -2
  46. modoboa/core/api/v2/tests.py +34 -4
  47. modoboa/core/api/v2/urls.py +10 -5
  48. modoboa/core/api/v2/views.py +23 -2
  49. modoboa/core/api/v2/viewsets.py +24 -3
  50. modoboa/core/app_settings.py +11 -0
  51. modoboa/core/fido2_auth.py +1 -2
  52. modoboa/core/handlers.py +6 -2
  53. modoboa/core/management/commands/add_allowed_hosts.py +33 -0
  54. modoboa/core/management/commands/cleanlogs.py +9 -0
  55. modoboa/core/management/commands/load_initial_data.py +10 -0
  56. modoboa/core/migrations/0025_rename_user_email_is_active_core_user_email_c0c03f_idx.py +23 -5
  57. modoboa/core/tests/test_core.py +29 -0
  58. modoboa/core/utils.py +6 -0
  59. modoboa/dnstools/api/v2/serializers.py +9 -11
  60. modoboa/frontend_dist/assets/AccountAliasForm-BuSy_1n9.js +1 -0
  61. modoboa/frontend_dist/assets/AccountEditView-qdJmLM_e.js +1 -0
  62. modoboa/frontend_dist/assets/AccountLayout-DrN7vHsX.js +1 -0
  63. modoboa/frontend_dist/assets/AccountPasswordSubForm-DZGt_Xgq.js +1 -0
  64. modoboa/frontend_dist/assets/AccountView-CO65y0vZ.js +1 -0
  65. modoboa/frontend_dist/assets/AddressBook-BZNUlhek.js +1 -0
  66. modoboa/frontend_dist/assets/AdminLayout-CTNhuwTw.js +1 -0
  67. modoboa/frontend_dist/assets/AlarmsView-9yKGbmkC.css +1 -0
  68. modoboa/frontend_dist/assets/AlarmsView-DN_JIw9g.js +1 -0
  69. modoboa/frontend_dist/assets/AliasEditView-DjpPUTp9.js +1 -0
  70. modoboa/frontend_dist/assets/{AliasRecipientForm-DVZXWaUX.js → AliasRecipientForm-B1Y8wFdP.js} +1 -1
  71. modoboa/frontend_dist/assets/AliasView-GOJ5lyQH.js +1 -0
  72. modoboa/frontend_dist/assets/AuditTrailView-fbXmq70e.js +1 -0
  73. modoboa/frontend_dist/assets/CalendarView-LlQQNEPL.js +1 -0
  74. modoboa/frontend_dist/assets/{ChoiceField-7eU7c_rI.js → ChoiceField-B3ReQHVe.js} +1 -1
  75. modoboa/frontend_dist/assets/ComposeEmailForm-Bs1fZXAL.js +1 -0
  76. modoboa/frontend_dist/assets/ComposeEmailView-s3LMl3pO.js +1 -0
  77. modoboa/frontend_dist/assets/ConfirmDialog-DY_kUHLG.js +1 -0
  78. modoboa/frontend_dist/assets/{ConnectedLayout-BaJZ3BeR.css → ConnectedLayout-Bxh21hcH.css} +1 -1
  79. modoboa/frontend_dist/assets/ConnectedLayout-UWjiYBNw.js +1 -0
  80. modoboa/frontend_dist/assets/CreationForm-ORg3fazt.js +1 -0
  81. modoboa/frontend_dist/assets/DashboardView-Dplk9itS.js +1 -0
  82. modoboa/frontend_dist/assets/{DashboardView-BLlMi6Qb.css → DashboardView-gwwVAPvt.css} +1 -1
  83. modoboa/frontend_dist/assets/DomainAdminList-DVn9x0rB.js +1 -0
  84. modoboa/frontend_dist/assets/DomainEditView-nAoL64D_.js +1 -0
  85. modoboa/frontend_dist/assets/{DomainTransportForm-DPnPGBOp.js → DomainTransportForm-CA-DNUxX.js} +1 -1
  86. modoboa/frontend_dist/assets/{DomainView-BDKoBFYr.css → DomainView-CCLYXPHx.css} +1 -1
  87. modoboa/frontend_dist/assets/DomainView-CdXPpwJG.js +5 -0
  88. modoboa/frontend_dist/assets/DomainsView-B_59gowf.js +1 -0
  89. modoboa/frontend_dist/assets/DomainsView-DZ-ss9bI.css +1 -0
  90. modoboa/frontend_dist/assets/EmailField-CwcwI5xW.js +1 -0
  91. modoboa/frontend_dist/assets/EmailView-BshxcfAK.js +1 -0
  92. modoboa/frontend_dist/assets/EmptyLayout-DFfhnhLi.js +1 -0
  93. modoboa/frontend_dist/assets/FiltersView-Cf20MSTK.js +1 -0
  94. modoboa/frontend_dist/assets/ForwardEmailView-CZG062os.js +1 -0
  95. modoboa/frontend_dist/assets/{HtmlEditor-uM4AtIGi.js → HtmlEditor-Bh4c689R.js} +1 -1
  96. modoboa/frontend_dist/assets/IdentitiesView-BXAuU1YX.js +1 -0
  97. modoboa/frontend_dist/assets/{IdentitiesView-jmuItyMZ.css → IdentitiesView-DPrrRMS5.css} +1 -1
  98. modoboa/frontend_dist/assets/InformationView-C9vvvQhJ.css +1 -0
  99. modoboa/frontend_dist/assets/InformationView-Cn5FZW7H.js +1 -0
  100. modoboa/frontend_dist/assets/{LoadingData-CVD2Aen8.js → LoadingData-CdVvm4FI.js} +1 -1
  101. modoboa/frontend_dist/assets/{LoginCallbackView-sWzBke1g.js → LoginCallbackView-B9hAH4MI.js} +1 -1
  102. modoboa/frontend_dist/assets/{LoginView-wmN73W0f.js → LoginView-tHIR4Adc.js} +1 -1
  103. modoboa/frontend_dist/assets/MailboxView-Bugu2vhg.js +1 -0
  104. modoboa/frontend_dist/assets/MenuItems-PXjiG-fs.js +1 -0
  105. modoboa/frontend_dist/assets/MessageView-Cy4STShm.js +1 -0
  106. modoboa/frontend_dist/assets/MessagesView-DdkuEgfX.js +1 -0
  107. modoboa/frontend_dist/assets/MigrationsView-CidSEjCF.js +1 -0
  108. modoboa/frontend_dist/assets/{ParametersForm-BCeQljir.js → ParametersForm-CAv4SH-E.js} +1 -1
  109. modoboa/frontend_dist/assets/ParametersView-CX7Ffemw.js +1 -0
  110. modoboa/frontend_dist/assets/ParametersView-CrbNcmV3.js +1 -0
  111. modoboa/frontend_dist/assets/ProviderEditView-CrltAQXl.js +1 -0
  112. modoboa/frontend_dist/assets/ProviderGeneralForm-BYAzVnXM.js +1 -0
  113. modoboa/frontend_dist/assets/ProvidersView-osjIY4Ex.js +1 -0
  114. modoboa/frontend_dist/assets/QuarantineLayout-B8EcU9vS.js +1 -0
  115. modoboa/frontend_dist/assets/QuarantineView-D4gOE4EQ.css +1 -0
  116. modoboa/frontend_dist/assets/QuarantineView-D8Qg0MXA.js +1 -0
  117. modoboa/frontend_dist/assets/ReplyEmailView-BABPqWhd.js +1 -0
  118. modoboa/frontend_dist/assets/ResourcesForm-OaqdRYVs.js +1 -0
  119. modoboa/frontend_dist/assets/SelfServiceLayout-d277YTGR.js +1 -0
  120. modoboa/frontend_dist/assets/SettingsView-9iNcDhkI.js +6 -0
  121. modoboa/frontend_dist/assets/StatisticsView-cHsPyGkL.js +1 -0
  122. modoboa/frontend_dist/assets/TimeSerieChart--V83dcJ9.js +1 -0
  123. modoboa/frontend_dist/assets/UserLayout-B3sBiTcZ.js +1 -0
  124. modoboa/frontend_dist/assets/VAlert-BuaaYN2h.js +1 -0
  125. modoboa/frontend_dist/assets/VApp-CKP-6zGP.js +1 -0
  126. modoboa/frontend_dist/assets/VAutocomplete-Dwv6_Rzq.js +1 -0
  127. modoboa/frontend_dist/assets/VAvatar-Cmga0vj6.js +1 -0
  128. modoboa/frontend_dist/assets/VBadge-BQrRJ9S0.css +1 -0
  129. modoboa/frontend_dist/assets/VBadge-CixeK87a.js +1 -0
  130. modoboa/frontend_dist/assets/VCard-CxH9DWoK.js +1 -0
  131. modoboa/frontend_dist/assets/VCheckbox-62GOpvvP.js +1 -0
  132. modoboa/frontend_dist/assets/{VCheckboxBtn-j7di4leN.js → VCheckboxBtn-DMoNtKT8.js} +1 -1
  133. modoboa/frontend_dist/assets/VChip-D_styETR.js +1 -0
  134. modoboa/frontend_dist/assets/VColorPicker-BHscBGQV.js +1 -0
  135. modoboa/frontend_dist/assets/VContainer-B46caNs1.js +1 -0
  136. modoboa/frontend_dist/assets/VDataTable-Bh8NbVSx.js +1 -0
  137. modoboa/frontend_dist/assets/VDataTableServer-BDR5hOmo.js +1 -0
  138. modoboa/frontend_dist/assets/VDataTableVirtual-BOQlNtIG.js +1 -0
  139. modoboa/frontend_dist/assets/{VDialog-CZqM2Ofu.js → VDialog-BcTg7w6P.js} +1 -1
  140. modoboa/frontend_dist/assets/VExpansionPanels-BmH5Jl2Z.js +1 -0
  141. modoboa/frontend_dist/assets/VFileInput-BC4yAygd.js +1 -0
  142. modoboa/frontend_dist/assets/VForm-D5iPGkde.js +1 -0
  143. modoboa/frontend_dist/assets/VInput-CcxkaOXT.css +1 -0
  144. modoboa/frontend_dist/assets/VInput-CoDJzvaW.js +1 -0
  145. modoboa/frontend_dist/assets/VMenu-gUG70-zD.js +1 -0
  146. modoboa/frontend_dist/assets/VPicker-BXuKT3zB.js +1 -0
  147. modoboa/frontend_dist/assets/VProgressCircular-BtOPiGCg.js +1 -0
  148. modoboa/frontend_dist/assets/VRadioGroup-DIFZKSn-.js +1 -0
  149. modoboa/frontend_dist/assets/{VRow-C_Ydf6yr.js → VRow-ozg66L7j.js} +1 -1
  150. modoboa/frontend_dist/assets/VSelect-C3RjAa45.js +1 -0
  151. modoboa/frontend_dist/assets/VSelectionControl-zyz-fJvC.js +1 -0
  152. modoboa/frontend_dist/assets/VSheet-BNx2X4Mk.js +1 -0
  153. modoboa/frontend_dist/assets/VSpacer-DinPiXs9.js +1 -0
  154. modoboa/frontend_dist/assets/VSwitch-DwxdeAEq.js +1 -0
  155. modoboa/frontend_dist/assets/VTable-DaLxa4FO.js +1 -0
  156. modoboa/frontend_dist/assets/VTabs-BP0Hgsgm.js +1 -0
  157. modoboa/frontend_dist/assets/VTextField-BzBVKKob.css +1 -0
  158. modoboa/frontend_dist/assets/VTextField-XoGTj1KG.js +1 -0
  159. modoboa/frontend_dist/assets/VTextarea-wBlRMIv_.js +1 -0
  160. modoboa/frontend_dist/assets/VToolbar-CFZfqeOr.js +1 -0
  161. modoboa/frontend_dist/assets/VWindowItem-BB7ETW3b.js +1 -0
  162. modoboa/frontend_dist/assets/WebmailLayout-_Hk1XhVq.js +1 -0
  163. modoboa/frontend_dist/assets/accounts-DUzbx6k8.js +1 -0
  164. modoboa/frontend_dist/assets/admin-DewTk2H8.js +1 -0
  165. modoboa/frontend_dist/assets/{aliases-c3n-dCV_.js → aliases-4sXmjwXp.js} +1 -1
  166. modoboa/frontend_dist/assets/amavis-CC0li7_T.js +1 -0
  167. modoboa/frontend_dist/assets/amavis-DK8SHE6o.js +1 -0
  168. modoboa/frontend_dist/assets/{contacts-Bqckz8sr.js → contacts-BjghrPqZ.js} +1 -1
  169. modoboa/frontend_dist/assets/{domains-nBMR-fRf.js → domains-BSawReeu.js} +1 -1
  170. modoboa/frontend_dist/assets/{domains.store-ChZgLcqP.js → domains.store-D-vWCEIK.js} +1 -1
  171. modoboa/frontend_dist/assets/{filter-D7NrAf6a.js → filter-C82FUCw_.js} +1 -1
  172. modoboa/frontend_dist/assets/forwardRefs-cvcnlhoK.js +1 -0
  173. modoboa/frontend_dist/assets/global.store-DbkcI5o2.js +1 -0
  174. modoboa/frontend_dist/assets/{importExport-Dn9vYw7T.js → importExport-DzoL4Mvc.js} +1 -1
  175. modoboa/frontend_dist/assets/index-BImkz5Jx.js +984 -0
  176. modoboa/frontend_dist/assets/index-DuzUMVLM.js +1 -0
  177. modoboa/frontend_dist/assets/layout-C5FyYCHK.js +1 -0
  178. modoboa/frontend_dist/assets/{layout.store-BxBoBlgf.js → layout.store-NXWtFIwL.js} +1 -1
  179. modoboa/frontend_dist/assets/logos-BswdveCV.js +1 -0
  180. modoboa/frontend_dist/assets/{logs-DrTzylW7.js → logs-6CbtfaZS.js} +1 -1
  181. modoboa/frontend_dist/assets/{parameters-Lgiqp7aw.js → parameters-aSQiR7kN.js} +1 -1
  182. modoboa/frontend_dist/assets/{parameters.store-C9k9DuTj.js → parameters.store-CzQqVatx.js} +1 -1
  183. modoboa/frontend_dist/assets/permissions-DNoefz-n.js +1 -0
  184. modoboa/frontend_dist/assets/{ssrBoot-BsxW6uW4.js → ssrBoot-CKUX4kcb.js} +1 -1
  185. modoboa/frontend_dist/assets/{tag-CFK9dzMJ.js → tag-B_yWNNJD.js} +1 -1
  186. modoboa/frontend_dist/assets/transports-BDNB9wR5.js +1 -0
  187. modoboa/frontend_dist/assets/{webmail-KrD8ZhNM.js → webmail-CdU6CD9b.js} +1 -1
  188. modoboa/frontend_dist/index.html +1 -1
  189. modoboa/lib/email_utils.py +2 -2
  190. modoboa/lib/permissions.py +7 -0
  191. modoboa/lib/redis.py +1 -5
  192. modoboa/lib/test_runners.py +29 -0
  193. modoboa/lib/tests/__init__.py +5 -1
  194. modoboa/locale/br/LC_MESSAGES/django.po +87 -75
  195. modoboa/locale/cs/LC_MESSAGES/django.po +82 -74
  196. modoboa/locale/cs_CZ/LC_MESSAGES/django.po +145 -121
  197. modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
  198. modoboa/locale/de/LC_MESSAGES/django.po +339 -651
  199. modoboa/locale/de_DE/LC_MESSAGES/django.po +87 -75
  200. modoboa/locale/el_GR/LC_MESSAGES/django.po +160 -135
  201. modoboa/locale/en/LC_MESSAGES/django.po +82 -74
  202. modoboa/locale/es/LC_MESSAGES/django.po +158 -131
  203. modoboa/locale/es_MX/LC_MESSAGES/django.po +82 -74
  204. modoboa/locale/fi/LC_MESSAGES/django.po +87 -75
  205. modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
  206. modoboa/locale/fr/LC_MESSAGES/django.po +469 -201
  207. modoboa/locale/hu/LC_MESSAGES/django.po +82 -74
  208. modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
  209. modoboa/locale/it/LC_MESSAGES/django.po +148 -122
  210. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  211. modoboa/locale/ja_JP/LC_MESSAGES/django.po +201 -334
  212. modoboa/locale/ka/LC_MESSAGES/django.po +82 -74
  213. modoboa/locale/nl_NL/LC_MESSAGES/django.po +160 -132
  214. modoboa/locale/no/LC_MESSAGES/django.po +82 -74
  215. modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  216. modoboa/locale/pl_PL/LC_MESSAGES/django.po +172 -149
  217. modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  218. modoboa/locale/pt_BR/LC_MESSAGES/django.po +172 -144
  219. modoboa/locale/pt_PT/LC_MESSAGES/django.po +135 -112
  220. modoboa/locale/ro_RO/LC_MESSAGES/django.po +87 -75
  221. modoboa/locale/ru/LC_MESSAGES/django.po +142 -118
  222. modoboa/locale/si/LC_MESSAGES/django.po +82 -74
  223. modoboa/locale/sk/LC_MESSAGES/django.po +82 -74
  224. modoboa/locale/sk_SK/LC_MESSAGES/django.po +84 -76
  225. modoboa/locale/sl_SI/LC_MESSAGES/django.po +90 -76
  226. modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
  227. modoboa/locale/sv/LC_MESSAGES/django.po +172 -139
  228. modoboa/locale/tr/LC_MESSAGES/django.po +87 -75
  229. modoboa/locale/tr_TR/LC_MESSAGES/django.po +84 -74
  230. modoboa/locale/uk/LC_MESSAGES/django.po +82 -74
  231. modoboa/locale/zh/LC_MESSAGES/django.po +82 -74
  232. modoboa/locale/zh_CN/LC_MESSAGES/django.po +82 -74
  233. modoboa/locale/zh_TW/LC_MESSAGES/django.po +87 -75
  234. modoboa/parameters/api/v2/tests.py +2 -2
  235. modoboa/parameters/api/v2/viewsets.py +2 -0
  236. modoboa/policyd/tests.py +2 -0
  237. modoboa/urls_api_v2.py +6 -0
  238. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/METADATA +6 -4
  239. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/RECORD +244 -193
  240. modoboa/frontend_dist/assets/AccountAliasForm-DVXatAhB.js +0 -1
  241. modoboa/frontend_dist/assets/AccountEditView-DmvQjxpx.js +0 -1
  242. modoboa/frontend_dist/assets/AccountLayout-OGtZvlHR.js +0 -1
  243. modoboa/frontend_dist/assets/AccountPasswordSubForm-g3IEGrgM.js +0 -1
  244. modoboa/frontend_dist/assets/AccountView-DsxYqr3k.js +0 -1
  245. modoboa/frontend_dist/assets/AddressBook-3RoKiKon.js +0 -1
  246. modoboa/frontend_dist/assets/AdminLayout-CWfn8zaQ.js +0 -1
  247. modoboa/frontend_dist/assets/AlarmsView-Bheey-gp.css +0 -1
  248. modoboa/frontend_dist/assets/AlarmsView-D3Mh8ntf.js +0 -1
  249. modoboa/frontend_dist/assets/AliasEditView-C15eUZ11.js +0 -1
  250. modoboa/frontend_dist/assets/AliasView-Cyvc5vMb.js +0 -1
  251. modoboa/frontend_dist/assets/AuditTrailView-LI2XuLLn.js +0 -1
  252. modoboa/frontend_dist/assets/CalendarView-BpOlPh3f.js +0 -1
  253. modoboa/frontend_dist/assets/ComposeEmailForm-CNfI7ept.js +0 -1
  254. modoboa/frontend_dist/assets/ComposeEmailView-B866Xsrc.js +0 -1
  255. modoboa/frontend_dist/assets/ConfirmDialog-BvqxQsD1.js +0 -1
  256. modoboa/frontend_dist/assets/ConnectedLayout-BQ3ug6Jh.js +0 -1
  257. modoboa/frontend_dist/assets/CreationForm-C9Kh05ax.js +0 -1
  258. modoboa/frontend_dist/assets/DashboardView-Cw-gIcuB.js +0 -1
  259. modoboa/frontend_dist/assets/DomainAdminList-CsWUNKVk.js +0 -1
  260. modoboa/frontend_dist/assets/DomainEditView-DocxeOeW.js +0 -1
  261. modoboa/frontend_dist/assets/DomainView-Djc_0PsF.js +0 -5
  262. modoboa/frontend_dist/assets/DomainsView-B-Lxru7P.js +0 -1
  263. modoboa/frontend_dist/assets/DomainsView-DasJ0NdZ.css +0 -1
  264. modoboa/frontend_dist/assets/EmailField-BEKxuYni.js +0 -1
  265. modoboa/frontend_dist/assets/EmailView-BsR1Wes5.js +0 -1
  266. modoboa/frontend_dist/assets/EmptyLayout-BzPFOeLU.js +0 -1
  267. modoboa/frontend_dist/assets/FiltersView-5rmpC5cC.js +0 -1
  268. modoboa/frontend_dist/assets/ForwardEmailView-D7MbetcT.js +0 -1
  269. modoboa/frontend_dist/assets/IdentitiesView-BqjD9Lue.js +0 -1
  270. modoboa/frontend_dist/assets/InformationView-CghcvPn2.js +0 -1
  271. modoboa/frontend_dist/assets/InformationView-U5Ww-Sx1.css +0 -1
  272. modoboa/frontend_dist/assets/MailboxView-T_p-_ZtJ.js +0 -1
  273. modoboa/frontend_dist/assets/MenuItems-kHCMzR5E.js +0 -1
  274. modoboa/frontend_dist/assets/MessagesView-Cerv3xsy.js +0 -1
  275. modoboa/frontend_dist/assets/MigrationsView-7kjqPyYU.js +0 -1
  276. modoboa/frontend_dist/assets/ParametersView-DspBxVMV.js +0 -1
  277. modoboa/frontend_dist/assets/ParametersView-Dy0H5ep1.js +0 -1
  278. modoboa/frontend_dist/assets/ProviderEditView-DDLMOylC.js +0 -1
  279. modoboa/frontend_dist/assets/ProviderGeneralForm-BwOSKNHK.js +0 -1
  280. modoboa/frontend_dist/assets/ProvidersView-C99UD0WB.js +0 -1
  281. modoboa/frontend_dist/assets/ReplyEmailView-DAPBHldd.js +0 -1
  282. modoboa/frontend_dist/assets/ResourcesForm-D87PHeH0.js +0 -1
  283. modoboa/frontend_dist/assets/SettingsView-OxDo9wNd.js +0 -6
  284. modoboa/frontend_dist/assets/StatisticsView-CM__Eqku.js +0 -1
  285. modoboa/frontend_dist/assets/TimeSerieChart-C6j0uYR_.js +0 -1
  286. modoboa/frontend_dist/assets/UserLayout-CckCGnPS.js +0 -1
  287. modoboa/frontend_dist/assets/VAlert-B7mzOJIO.js +0 -1
  288. modoboa/frontend_dist/assets/VApp-BKxnjOoi.js +0 -1
  289. modoboa/frontend_dist/assets/VAutocomplete-Cc4_tcl1.js +0 -1
  290. modoboa/frontend_dist/assets/VAvatar-BAgTUIvX.js +0 -1
  291. modoboa/frontend_dist/assets/VCard-DFWiFORP.js +0 -1
  292. modoboa/frontend_dist/assets/VCheckbox-CKsH_vq3.js +0 -1
  293. modoboa/frontend_dist/assets/VChip-nZ0uhY7t.js +0 -1
  294. modoboa/frontend_dist/assets/VColorPicker-Os2aeP6J.js +0 -1
  295. modoboa/frontend_dist/assets/VContainer-Btam4lk2.js +0 -1
  296. modoboa/frontend_dist/assets/VDataTable-D_0_xJTl.js +0 -1
  297. modoboa/frontend_dist/assets/VDataTableServer-BWTt4Mzi.js +0 -1
  298. modoboa/frontend_dist/assets/VDataTableVirtual-BwVmkt4u.js +0 -1
  299. modoboa/frontend_dist/assets/VExpansionPanels-B5D6GOa3.js +0 -1
  300. modoboa/frontend_dist/assets/VFileInput-Cv9DIPki.js +0 -1
  301. modoboa/frontend_dist/assets/VForm-CpoZf60D.js +0 -1
  302. modoboa/frontend_dist/assets/VMenu-B_dVqOmo.js +0 -1
  303. modoboa/frontend_dist/assets/VPicker-CXkIGEze.js +0 -1
  304. modoboa/frontend_dist/assets/VProgressCircular-CrEXxs7k.js +0 -1
  305. modoboa/frontend_dist/assets/VRadioGroup-D8ypjYOO.js +0 -1
  306. modoboa/frontend_dist/assets/VSelect-CS51PDEt.js +0 -1
  307. modoboa/frontend_dist/assets/VSelectionControl-DiOqtY38.js +0 -1
  308. modoboa/frontend_dist/assets/VSheet-5VVWtHvs.js +0 -1
  309. modoboa/frontend_dist/assets/VSpacer-C6PZ3X24.js +0 -1
  310. modoboa/frontend_dist/assets/VSwitch-Chg5o-Cp.js +0 -1
  311. modoboa/frontend_dist/assets/VTable-KsiZ3cBz.js +0 -1
  312. modoboa/frontend_dist/assets/VTabs-tNrJIYO0.js +0 -1
  313. modoboa/frontend_dist/assets/VTextField-C-J20yj_.css +0 -1
  314. modoboa/frontend_dist/assets/VTextField-CLwRV0Cb.js +0 -1
  315. modoboa/frontend_dist/assets/VTextarea-Di8jbl8m.js +0 -1
  316. modoboa/frontend_dist/assets/VToolbar-CGwhgdmI.js +0 -1
  317. modoboa/frontend_dist/assets/VWindowItem-wWSFAGI-.js +0 -1
  318. modoboa/frontend_dist/assets/WebmailLayout-DsYThBrz.js +0 -1
  319. modoboa/frontend_dist/assets/admin-CJVLMHh9.js +0 -1
  320. modoboa/frontend_dist/assets/forwardRefs-Cpc3YYl6.js +0 -1
  321. modoboa/frontend_dist/assets/global.store-DUP26-A5.js +0 -1
  322. modoboa/frontend_dist/assets/index-DV9Li2cg.js +0 -852
  323. modoboa/frontend_dist/assets/index-DzL89N4E.js +0 -1
  324. modoboa/frontend_dist/assets/layout-CHO37cA6.js +0 -1
  325. modoboa/frontend_dist/assets/permissions-mL5hLHcW.js +0 -1
  326. modoboa/frontend_dist/assets/transports-TO08iTXJ.js +0 -1
  327. {modoboa-2.4.10.data → modoboa-2.5.0.data}/scripts/modoboa-admin.py +0 -0
  328. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/WHEEL +0 -0
  329. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/entry_points.txt +0 -0
  330. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/licenses/LICENSE +0 -0
  331. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/top_level.txt +0 -0
@@ -11,11 +11,11 @@ msgid ""
11
11
  msgstr ""
12
12
  "Project-Id-Version: PACKAGE VERSION\n"
13
13
  "Report-Msgid-Bugs-To: \n"
14
- "POT-Creation-Date: 2025-07-27 10:50+0200\n"
14
+ "POT-Creation-Date: 2025-08-28 09:41+0200\n"
15
15
  "PO-Revision-Date: 2020-05-11 18:45+0000\n"
16
16
  "Last-Translator: R .. <nordscan@gmail.com>, 2020\n"
17
- "Language-Team: Slovak (Slovakia) (https://www.transifex.com/tonio/"
18
- "teams/13749/sk_SK/)\n"
17
+ "Language-Team: Slovak (Slovakia) (https://www.transifex.com/tonio/teams/"
18
+ "13749/sk_SK/)\n"
19
19
  "Language: sk_SK\n"
20
20
  "MIME-Version: 1.0\n"
21
21
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -33,65 +33,66 @@ msgstr ""
33
33
  msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
34
34
  msgstr ""
35
35
 
36
- #: admin/api/v1/serializers.py:88
36
+ #: admin/api/v1/serializers.py:94
37
37
  msgid "domain alias with this name already exists"
38
38
  msgstr ""
39
39
 
40
- #: admin/api/v1/serializers.py:98
40
+ #: admin/api/v1/serializers.py:104
41
41
  msgid "No authorized MX record found for this domain"
42
42
  msgstr ""
43
43
 
44
- #: admin/api/v1/serializers.py:116
44
+ #: admin/api/v1/serializers.py:122
45
45
  msgid "Cannot be greater than domain quota"
46
46
  msgstr ""
47
47
 
48
- #: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
49
- #: admin/api/v2/serializers.py:548 admin/models/alias.py:44
48
+ #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
49
+ #: admin/api/v2/serializers.py:564 admin/models/alias.py:44
50
50
  msgid "Permission denied."
51
51
  msgstr ""
52
52
 
53
- #: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
54
- #: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
55
- #: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
53
+ #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
54
+ #: admin/api/v2/serializers.py:486 core/api/v2/serializers.py:255
55
+ #: core/api/v2/serializers.py:257 core/api/v2/serializers.py:266
56
56
  #: transport/backends.py:40
57
57
  msgid "This field is required"
58
58
  msgstr ""
59
59
 
60
- #: admin/api/v1/serializers.py:236
60
+ #: admin/api/v1/serializers.py:243
61
61
  msgid ""
62
62
  "List of administered domains (resellers and domain administrators only)."
63
63
  msgstr ""
64
64
 
65
- #: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
65
+ #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:546
66
66
  msgid "Not allowed for this role."
67
67
  msgstr ""
68
68
 
69
- #: admin/api/v1/serializers.py:348
69
+ #: admin/api/v1/serializers.py:355
70
70
  msgid "Must be equal to mailbox full_address"
71
71
  msgstr ""
72
72
 
73
- #: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
73
+ #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:598
74
74
  #: calendars/serializers.py:175 calendars/serializers.py:177
75
+ #: pdfcredentials/api/v2/serializers.py:91
75
76
  msgid "This field is required."
76
77
  msgstr ""
77
78
 
78
- #: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
79
+ #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:615
79
80
  msgid "Local domain {} does not exist"
80
81
  msgstr ""
81
82
 
82
- #: admin/api/v1/serializers.py:492
83
+ #: admin/api/v1/serializers.py:499
83
84
  msgid "A list of recipient"
84
85
  msgstr ""
85
86
 
86
- #: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
87
+ #: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:286
87
88
  msgid "This alias already exists"
88
89
  msgstr ""
89
90
 
90
- #: admin/api/v1/serializers.py:544
91
+ #: admin/api/v1/serializers.py:551
91
92
  msgid "You don't have access to this domain."
92
93
  msgstr ""
93
94
 
94
- #: admin/api/v1/serializers.py:553
95
+ #: admin/api/v1/serializers.py:560
95
96
  msgid "You don't have access to this mailbox."
96
97
  msgstr ""
97
98
 
@@ -99,56 +100,56 @@ msgstr ""
99
100
  msgid "Here is your new Modoboa password: {}"
100
101
  msgstr ""
101
102
 
102
- #: admin/api/v2/serializers.py:80
103
+ #: admin/api/v2/serializers.py:82
103
104
  msgid "DKIM keys storage directory not configured"
104
105
  msgstr ""
105
106
 
106
- #: admin/api/v2/serializers.py:92
107
+ #: admin/api/v2/serializers.py:94
107
108
  msgid "This field is valid when type is relaydomain"
108
109
  msgstr ""
109
110
 
110
- #: admin/api/v2/serializers.py:99
111
+ #: admin/api/v2/serializers.py:101
111
112
  msgid "You can't define an unlimited quota."
112
113
  msgstr ""
113
114
 
114
- #: admin/api/v2/serializers.py:133
115
+ #: admin/api/v2/serializers.py:135
115
116
  #, python-format
116
117
  msgid "User '%s' already exists"
117
118
  msgstr ""
118
119
 
119
- #: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
120
+ #: admin/api/v2/serializers.py:250 admin/api/v2/serializers.py:256
120
121
  msgid "Must be a positive integer"
121
122
  msgstr ""
122
123
 
123
- #: admin/api/v2/serializers.py:263
124
+ #: admin/api/v2/serializers.py:265
124
125
  msgid "openssl not found, please make sure it is installed."
125
126
  msgstr ""
126
127
 
127
- #: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
128
+ #: admin/api/v2/serializers.py:268 pdfcredentials/api/v2/serializers.py:84
128
129
  msgid "Directory not found."
129
130
  msgstr ""
130
131
 
131
- #: admin/api/v2/serializers.py:277
132
+ #: admin/api/v2/serializers.py:279
132
133
  msgid "This field only allows valid IP addresses (or networks)"
133
134
  msgstr ""
134
135
 
135
- #: admin/api/v2/serializers.py:290
136
+ #: admin/api/v2/serializers.py:292
136
137
  msgid "Please disable imap migration before disabling this option."
137
138
  msgstr ""
138
139
 
139
- #: admin/api/v2/serializers.py:303
140
+ #: admin/api/v2/serializers.py:305
140
141
  msgid "Define at least one authorized network / address"
141
142
  msgstr ""
142
143
 
143
- #: admin/api/v2/serializers.py:565
144
+ #: admin/api/v2/serializers.py:581
144
145
  msgid "The left part of an email address can't be more than 64 characters."
145
146
  msgstr ""
146
147
 
147
- #: admin/api/v2/serializers.py:587
148
+ #: admin/api/v2/serializers.py:603
148
149
  msgid "A mailbox is required to create aliases."
149
150
  msgstr ""
150
151
 
151
- #: admin/api/v2/serializers.py:751
152
+ #: admin/api/v2/serializers.py:772
152
153
  msgid "Unknown status"
153
154
  msgstr ""
154
155
 
@@ -160,14 +161,6 @@ msgstr ""
160
161
  msgid "You can't delete your own domain"
161
162
  msgstr ""
162
163
 
163
- #: admin/api/v2/viewsets.py:407
164
- msgid "No alarm ID provided"
165
- msgstr ""
166
-
167
- #: admin/api/v2/viewsets.py:411
168
- msgid "Received invalid alarm id(s)"
169
- msgstr ""
170
-
171
164
  #: admin/app_settings.py:19 limits/app_settings.py:38 limits/constants.py:13
172
165
  msgid "Domains"
173
166
  msgstr ""
@@ -354,7 +347,7 @@ msgstr ""
354
347
  msgid "Create an alias using the old address when a mailbox is renamed."
355
348
  msgstr ""
356
349
 
357
- #: admin/app_settings.py:287 core/api/v2/viewsets.py:162
350
+ #: admin/app_settings.py:287 core/api/v2/viewsets.py:174
358
351
  msgid "Administration"
359
352
  msgstr ""
360
353
 
@@ -383,7 +376,7 @@ msgstr ""
383
376
  msgid "Account import failed (%s): domain does not exist"
384
377
  msgstr ""
385
378
 
386
- #: admin/handlers.py:242 admin/models/mailbox.py:340
379
+ #: admin/handlers.py:242 admin/models/mailbox.py:342
387
380
  msgid "Mailbox {} already exists"
388
381
  msgstr ""
389
382
 
@@ -641,7 +634,7 @@ msgstr ""
641
634
  msgid "{}: domain quota exceeded"
642
635
  msgstr ""
643
636
 
644
- #: admin/models/mailbox.py:308
637
+ #: admin/models/mailbox.py:310
645
638
  msgid "Domain does not exist"
646
639
  msgstr ""
647
640
 
@@ -793,7 +786,7 @@ msgid ""
793
786
  "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
794
787
  msgstr ""
795
788
 
796
- #: calendars/app_settings.py:89 core/api/v2/viewsets.py:172
789
+ #: calendars/app_settings.py:89 core/api/v2/viewsets.py:195
797
790
  msgid "Calendars"
798
791
  msgstr ""
799
792
 
@@ -827,7 +820,7 @@ msgstr ""
827
820
  msgid "Interval in seconds between 2 synchronization requests"
828
821
  msgstr ""
829
822
 
830
- #: contacts/app_settings.py:51 core/api/v2/viewsets.py:179
823
+ #: contacts/app_settings.py:51 core/api/v2/viewsets.py:185
831
824
  msgid "Contacts"
832
825
  msgstr ""
833
826
 
@@ -875,12 +868,12 @@ msgstr ""
875
868
  msgid "2FA is already enabled"
876
869
  msgstr ""
877
870
 
878
- #: core/api/v1/serializers.py:87
871
+ #: core/api/v1/serializers.py:86
879
872
  #, python-format
880
- msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
873
+ msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
881
874
  msgstr ""
882
875
 
883
- #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
876
+ #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:445
884
877
  msgid "Invalid password"
885
878
  msgstr ""
886
879
 
@@ -892,40 +885,40 @@ msgstr ""
892
885
  msgid "Local"
893
886
  msgstr ""
894
887
 
895
- #: core/api/v2/serializers.py:175 core/app_settings.py:17
888
+ #: core/api/v2/serializers.py:194 core/app_settings.py:17
896
889
  msgid "User profile"
897
890
  msgstr ""
898
891
 
899
- #: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
900
- #: core/api/v2/serializers.py:208
892
+ #: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
893
+ #: core/api/v2/serializers.py:228
901
894
  msgid "Invalid syntax"
902
895
  msgstr ""
903
896
 
904
- #: core/api/v2/serializers.py:213
897
+ #: core/api/v2/serializers.py:233
905
898
  msgid "Invalid rounds number"
906
899
  msgstr ""
907
900
 
908
- #: core/api/v2/serializers.py:413 core/forms.py:81
901
+ #: core/api/v2/serializers.py:433 core/forms.py:81
909
902
  msgid "This code is invalid"
910
903
  msgstr ""
911
904
 
912
- #: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
905
+ #: core/api/v2/serializers.py:503 core/views/auth.py:194 core/views/auth.py:247
913
906
  msgid "Please use the following code to recover your Modoboa password: {}"
914
907
  msgstr ""
915
908
 
916
- #: core/api/v2/viewsets.py:164
909
+ #: core/api/v2/viewsets.py:176
917
910
  msgid "Administration console"
918
911
  msgstr ""
919
912
 
920
- #: core/api/v2/viewsets.py:174
921
- msgid "Calendar"
913
+ #: core/api/v2/viewsets.py:187
914
+ msgid "Address book"
922
915
  msgstr ""
923
916
 
924
- #: core/api/v2/viewsets.py:181
925
- msgid "Address book"
917
+ #: core/api/v2/viewsets.py:197
918
+ msgid "Calendar"
926
919
  msgstr ""
927
920
 
928
- #: core/api/v2/viewsets.py:186 core/api/v2/viewsets.py:188
921
+ #: core/api/v2/viewsets.py:205 core/api/v2/viewsets.py:207
929
922
  #: webmail/app_settings.py:258 webmail/app_settings.py:265
930
923
  msgid "Webmail"
931
924
  msgstr ""
@@ -1421,19 +1414,27 @@ msgstr ""
1421
1414
  msgid "The maximum age in days of a log record"
1422
1415
  msgstr ""
1423
1416
 
1424
- #: core/app_settings.py:726
1417
+ #: core/app_settings.py:727
1418
+ msgid "Retention time in message history"
1419
+ msgstr ""
1420
+
1421
+ #: core/app_settings.py:730
1422
+ msgid "Retention time (in days) of a message in the message history section"
1423
+ msgstr ""
1424
+
1425
+ #: core/app_settings.py:737
1425
1426
  msgid "Items per page"
1426
1427
  msgstr ""
1427
1428
 
1428
- #: core/app_settings.py:728
1429
+ #: core/app_settings.py:739
1429
1430
  msgid "Number of displayed items per page"
1430
1431
  msgstr ""
1431
1432
 
1432
- #: core/app_settings.py:735
1433
+ #: core/app_settings.py:746
1433
1434
  msgid "Default top redirection"
1434
1435
  msgstr ""
1435
1436
 
1436
- #: core/app_settings.py:737
1437
+ #: core/app_settings.py:748
1437
1438
  msgid "The default redirection used when no application is specified"
1438
1439
  msgstr ""
1439
1440
 
@@ -1464,8 +1465,8 @@ msgstr ""
1464
1465
 
1465
1466
  #: core/checks.py:34
1466
1467
  msgid ""
1467
- "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
1468
- "html#dovecot-oauth2"
1468
+ "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
1469
+ "dovecot.html#dovecot-oauth2"
1469
1470
  msgstr ""
1470
1471
 
1471
1472
  #: core/checks.py:41
@@ -1954,19 +1955,14 @@ msgstr ""
1954
1955
  #: imap_migration/app_settings.py:76
1955
1956
  msgid ""
1956
1957
  "A comma seperated list of folders to explicitly include in sync even if "
1957
- "filtered by the Folder Filter Exclusions. Example: debian.user, debian."
1958
- "personal "
1958
+ "filtered by the Folder Filter Exclusions. Example: debian.user, "
1959
+ "debian.personal "
1959
1960
  msgstr ""
1960
1961
 
1961
1962
  #: imap_migration/apps.py:20
1962
1963
  msgid "IMAP Migration"
1963
1964
  msgstr ""
1964
1965
 
1965
- #: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
1966
- #, python-brace-format
1967
- msgid "Connection to IMAP server failed: {error}"
1968
- msgstr ""
1969
-
1970
1966
  #: imap_migration/checks.py:12
1971
1967
  msgid ""
1972
1968
  "Automatic domain/mailbox creation is disabled which means IMAP "
@@ -2290,11 +2286,11 @@ msgstr ""
2290
2286
  msgid "Personal account information"
2291
2287
  msgstr ""
2292
2288
 
2293
- #: pdfcredentials/api/v2/serializers.py:81
2289
+ #: pdfcredentials/api/v2/serializers.py:86
2294
2290
  msgid "Directory is not writable"
2295
2291
  msgstr ""
2296
2292
 
2297
- #: pdfcredentials/api/v2/serializers.py:102
2293
+ #: pdfcredentials/api/v2/serializers.py:114
2298
2294
  msgid "No document available for this user"
2299
2295
  msgstr ""
2300
2296
 
@@ -3004,16 +3000,28 @@ msgstr ""
3004
3000
  msgid "User defined email signature"
3005
3001
  msgstr ""
3006
3002
 
3003
+ #: webmail/exceptions.py:18
3004
+ msgid "Server response"
3005
+ msgstr ""
3006
+
3007
3007
  #: webmail/lib/attachments.py:112
3008
3008
  #, fuzzy
3009
3009
  #| msgid "Failed to create LDAP account: {}"
3010
3010
  msgid "Failed to remove attachment: "
3011
3011
  msgstr "Nepodarilo sa vytvoriť účet LDAP: {}"
3012
3012
 
3013
+ #: webmail/lib/imapemail.py:272
3014
+ msgid "wrote:"
3015
+ msgstr ""
3016
+
3013
3017
  #: webmail/lib/imapemail.py:306
3014
3018
  msgid "Date"
3015
3019
  msgstr ""
3016
3020
 
3021
+ #: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
3022
+ msgid "Original message"
3023
+ msgstr ""
3024
+
3017
3025
  #: webmail/lib/imaputils.py:221
3018
3026
  msgid "Failed to retrieve hierarchy delimiter"
3019
3027
  msgstr ""