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
@@ -12,7 +12,7 @@ msgid ""
12
12
  msgstr ""
13
13
  "Project-Id-Version: Modoboa\n"
14
14
  "Report-Msgid-Bugs-To: \n"
15
- "POT-Creation-Date: 2025-07-27 10:50+0200\n"
15
+ "POT-Creation-Date: 2025-08-28 09:41+0200\n"
16
16
  "PO-Revision-Date: 2018-11-22 19:31+0000\n"
17
17
  "Last-Translator: Ediz Duman <neps1192@gmail.com>\n"
18
18
  "Language-Team: Turkish (Turkey) (http://www.transifex.com/tonio/modoboa/"
@@ -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 "Bu alan gereklidir"
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 "Yönetim"
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
 
@@ -803,7 +796,7 @@ msgid ""
803
796
  "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
804
797
  msgstr ""
805
798
 
806
- #: calendars/app_settings.py:89 core/api/v2/viewsets.py:172
799
+ #: calendars/app_settings.py:89 core/api/v2/viewsets.py:195
807
800
  msgid "Calendars"
808
801
  msgstr ""
809
802
 
@@ -841,7 +834,7 @@ msgstr "LDAP ayarları"
841
834
  msgid "Interval in seconds between 2 synchronization requests"
842
835
  msgstr ""
843
836
 
844
- #: contacts/app_settings.py:51 core/api/v2/viewsets.py:179
837
+ #: contacts/app_settings.py:51 core/api/v2/viewsets.py:185
845
838
  msgid "Contacts"
846
839
  msgstr ""
847
840
 
@@ -891,12 +884,12 @@ msgstr "Geçersiz değer"
891
884
  msgid "2FA is already enabled"
892
885
  msgstr ""
893
886
 
894
- #: core/api/v1/serializers.py:87
887
+ #: core/api/v1/serializers.py:86
895
888
  #, python-format
896
- msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
889
+ msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
897
890
  msgstr ""
898
891
 
899
- #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
892
+ #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:445
900
893
  #, fuzzy
901
894
  #| msgid "Old password"
902
895
  msgid "Invalid password"
@@ -910,42 +903,42 @@ msgstr ""
910
903
  msgid "Local"
911
904
  msgstr "Yerel"
912
905
 
913
- #: core/api/v2/serializers.py:175 core/app_settings.py:17
906
+ #: core/api/v2/serializers.py:194 core/app_settings.py:17
914
907
  msgid "User profile"
915
908
  msgstr "Kullanıcı profili"
916
909
 
917
- #: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
918
- #: core/api/v2/serializers.py:208
910
+ #: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
911
+ #: core/api/v2/serializers.py:228
919
912
  msgid "Invalid syntax"
920
913
  msgstr ""
921
914
 
922
- #: core/api/v2/serializers.py:213
915
+ #: core/api/v2/serializers.py:233
923
916
  msgid "Invalid rounds number"
924
917
  msgstr ""
925
918
 
926
- #: core/api/v2/serializers.py:413 core/forms.py:81
919
+ #: core/api/v2/serializers.py:433 core/forms.py:81
927
920
  msgid "This code is invalid"
928
921
  msgstr ""
929
922
 
930
- #: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
923
+ #: core/api/v2/serializers.py:503 core/views/auth.py:194 core/views/auth.py:247
931
924
  msgid "Please use the following code to recover your Modoboa password: {}"
932
925
  msgstr ""
933
926
 
934
- #: core/api/v2/viewsets.py:164
927
+ #: core/api/v2/viewsets.py:176
935
928
  #, fuzzy
936
929
  #| msgid "Administration"
937
930
  msgid "Administration console"
938
931
  msgstr "Yönetim"
939
932
 
940
- #: core/api/v2/viewsets.py:174
941
- msgid "Calendar"
933
+ #: core/api/v2/viewsets.py:187
934
+ msgid "Address book"
942
935
  msgstr ""
943
936
 
944
- #: core/api/v2/viewsets.py:181
945
- msgid "Address book"
937
+ #: core/api/v2/viewsets.py:197
938
+ msgid "Calendar"
946
939
  msgstr ""
947
940
 
948
- #: core/api/v2/viewsets.py:186 core/api/v2/viewsets.py:188
941
+ #: core/api/v2/viewsets.py:205 core/api/v2/viewsets.py:207
949
942
  #: webmail/app_settings.py:258 webmail/app_settings.py:265
950
943
  #, fuzzy
951
944
  #| msgid "E-mail"
@@ -1463,19 +1456,27 @@ msgstr "Maksimum günlük kayıt yaşı"
1463
1456
  msgid "The maximum age in days of a log record"
1464
1457
  msgstr ""
1465
1458
 
1466
- #: core/app_settings.py:726
1459
+ #: core/app_settings.py:727
1460
+ msgid "Retention time in message history"
1461
+ msgstr ""
1462
+
1463
+ #: core/app_settings.py:730
1464
+ msgid "Retention time (in days) of a message in the message history section"
1465
+ msgstr ""
1466
+
1467
+ #: core/app_settings.py:737
1467
1468
  msgid "Items per page"
1468
1469
  msgstr "Sayfa başına öğe"
1469
1470
 
1470
- #: core/app_settings.py:728
1471
+ #: core/app_settings.py:739
1471
1472
  msgid "Number of displayed items per page"
1472
1473
  msgstr ""
1473
1474
 
1474
- #: core/app_settings.py:735
1475
+ #: core/app_settings.py:746
1475
1476
  msgid "Default top redirection"
1476
1477
  msgstr ""
1477
1478
 
1478
- #: core/app_settings.py:737
1479
+ #: core/app_settings.py:748
1479
1480
  msgid "The default redirection used when no application is specified"
1480
1481
  msgstr ""
1481
1482
 
@@ -1508,8 +1509,8 @@ msgstr ""
1508
1509
 
1509
1510
  #: core/checks.py:34
1510
1511
  msgid ""
1511
- "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
1512
- "html#dovecot-oauth2"
1512
+ "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
1513
+ "dovecot.html#dovecot-oauth2"
1513
1514
  msgstr ""
1514
1515
 
1515
1516
  #: core/checks.py:41
@@ -2000,19 +2001,14 @@ msgstr ""
2000
2001
  #: imap_migration/app_settings.py:76
2001
2002
  msgid ""
2002
2003
  "A comma seperated list of folders to explicitly include in sync even if "
2003
- "filtered by the Folder Filter Exclusions. Example: debian.user, debian."
2004
- "personal "
2004
+ "filtered by the Folder Filter Exclusions. Example: debian.user, "
2005
+ "debian.personal "
2005
2006
  msgstr ""
2006
2007
 
2007
2008
  #: imap_migration/apps.py:20
2008
2009
  msgid "IMAP Migration"
2009
2010
  msgstr ""
2010
2011
 
2011
- #: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
2012
- #, python-brace-format
2013
- msgid "Connection to IMAP server failed: {error}"
2014
- msgstr ""
2015
-
2016
2012
  #: imap_migration/checks.py:12
2017
2013
  msgid ""
2018
2014
  "Automatic domain/mailbox creation is disabled which means IMAP "
@@ -2344,11 +2340,11 @@ msgstr "Yeni hesap"
2344
2340
  msgid "Personal account information"
2345
2341
  msgstr "Kişisel bilgilerinizi güncelleyin"
2346
2342
 
2347
- #: pdfcredentials/api/v2/serializers.py:81
2343
+ #: pdfcredentials/api/v2/serializers.py:86
2348
2344
  msgid "Directory is not writable"
2349
2345
  msgstr ""
2350
2346
 
2351
- #: pdfcredentials/api/v2/serializers.py:102
2347
+ #: pdfcredentials/api/v2/serializers.py:114
2352
2348
  msgid "No document available for this user"
2353
2349
  msgstr ""
2354
2350
 
@@ -3100,14 +3096,28 @@ msgstr ""
3100
3096
  msgid "User defined email signature"
3101
3097
  msgstr ""
3102
3098
 
3099
+ #: webmail/exceptions.py:18
3100
+ #, fuzzy
3101
+ #| msgid "Server address"
3102
+ msgid "Server response"
3103
+ msgstr "Sunucu adresi"
3104
+
3103
3105
  #: webmail/lib/attachments.py:112
3104
3106
  msgid "Failed to remove attachment: "
3105
3107
  msgstr ""
3106
3108
 
3109
+ #: webmail/lib/imapemail.py:272
3110
+ msgid "wrote:"
3111
+ msgstr ""
3112
+
3107
3113
  #: webmail/lib/imapemail.py:306
3108
3114
  msgid "Date"
3109
3115
  msgstr ""
3110
3116
 
3117
+ #: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
3118
+ msgid "Original message"
3119
+ msgstr ""
3120
+
3111
3121
  #: webmail/lib/imaputils.py:221
3112
3122
  msgid "Failed to retrieve hierarchy delimiter"
3113
3123
  msgstr ""