modoboa 2.4.10__py3-none-any.whl → 2.4.11__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 (168) hide show
  1. modoboa/admin/api/v1/serializers.py +1 -0
  2. modoboa/admin/api/v2/serializers.py +1 -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/core/api/v2/serializers.py +9 -0
  9. modoboa/core/api/v2/tests.py +18 -0
  10. modoboa/core/api/v2/urls.py +5 -0
  11. modoboa/core/api/v2/views.py +20 -1
  12. modoboa/core/app_settings.py +11 -0
  13. modoboa/core/fido2_auth.py +1 -2
  14. modoboa/core/management/commands/cleanlogs.py +9 -0
  15. modoboa/core/tests/test_core.py +5 -0
  16. modoboa/core/utils.py +3 -0
  17. modoboa/dnstools/api/v2/serializers.py +9 -11
  18. modoboa/frontend_dist/assets/{AccountAliasForm-DVXatAhB.js → AccountAliasForm-BV6KvTu6.js} +1 -1
  19. modoboa/frontend_dist/assets/{AccountEditView-DmvQjxpx.js → AccountEditView-DDOFyfBD.js} +1 -1
  20. modoboa/frontend_dist/assets/AccountLayout-rX51xgxT.js +1 -0
  21. modoboa/frontend_dist/assets/{AccountPasswordSubForm-g3IEGrgM.js → AccountPasswordSubForm-D9S6LaeH.js} +1 -1
  22. modoboa/frontend_dist/assets/AccountView-cmvaZNq3.js +1 -0
  23. modoboa/frontend_dist/assets/{AddressBook-3RoKiKon.js → AddressBook-DCJxL8SU.js} +1 -1
  24. modoboa/frontend_dist/assets/AdminLayout-r0wfG2lO.js +1 -0
  25. modoboa/frontend_dist/assets/{AlarmsView-D3Mh8ntf.js → AlarmsView-C0bqC4PA.js} +1 -1
  26. modoboa/frontend_dist/assets/{AliasEditView-C15eUZ11.js → AliasEditView-DVoWoCGY.js} +1 -1
  27. modoboa/frontend_dist/assets/{AliasRecipientForm-DVZXWaUX.js → AliasRecipientForm-IOae6sjF.js} +1 -1
  28. modoboa/frontend_dist/assets/{AliasView-Cyvc5vMb.js → AliasView-DrONZXOh.js} +1 -1
  29. modoboa/frontend_dist/assets/{AuditTrailView-LI2XuLLn.js → AuditTrailView-OTkoZaMU.js} +1 -1
  30. modoboa/frontend_dist/assets/{CalendarView-BpOlPh3f.js → CalendarView-CqF4_Ui9.js} +1 -1
  31. modoboa/frontend_dist/assets/{ChoiceField-7eU7c_rI.js → ChoiceField-DJ_c78Cm.js} +1 -1
  32. modoboa/frontend_dist/assets/{ComposeEmailForm-CNfI7ept.js → ComposeEmailForm-DO5_GB3e.js} +1 -1
  33. modoboa/frontend_dist/assets/ComposeEmailView-A91HCBsN.js +1 -0
  34. modoboa/frontend_dist/assets/{ConfirmDialog-BvqxQsD1.js → ConfirmDialog-BBcgdAnO.js} +1 -1
  35. modoboa/frontend_dist/assets/ConnectedLayout-1oRW-Rql.js +1 -0
  36. modoboa/frontend_dist/assets/{ConnectedLayout-BaJZ3BeR.css → ConnectedLayout-Dvwmicnc.css} +1 -1
  37. modoboa/frontend_dist/assets/CreationForm-71YJbjsA.js +1 -0
  38. modoboa/frontend_dist/assets/DashboardView-CdLpSfUl.js +1 -0
  39. modoboa/frontend_dist/assets/{DashboardView-BLlMi6Qb.css → DashboardView-gwwVAPvt.css} +1 -1
  40. modoboa/frontend_dist/assets/DomainAdminList-BjC4KsqI.js +1 -0
  41. modoboa/frontend_dist/assets/{DomainEditView-DocxeOeW.js → DomainEditView-CQjKwYxl.js} +1 -1
  42. modoboa/frontend_dist/assets/{DomainTransportForm-DPnPGBOp.js → DomainTransportForm-C2xo0Yd7.js} +1 -1
  43. modoboa/frontend_dist/assets/DomainView-BhhuZI_N.js +5 -0
  44. modoboa/frontend_dist/assets/DomainsView-Cft4BP8Z.js +1 -0
  45. modoboa/frontend_dist/assets/{EmailField-BEKxuYni.js → EmailField-C8umy0EU.js} +1 -1
  46. modoboa/frontend_dist/assets/{EmailView-BsR1Wes5.js → EmailView-ki7uEQPD.js} +1 -1
  47. modoboa/frontend_dist/assets/EmptyLayout-DaA1XH9n.js +1 -0
  48. modoboa/frontend_dist/assets/{FiltersView-5rmpC5cC.js → FiltersView-FYFZxG4B.js} +1 -1
  49. modoboa/frontend_dist/assets/ForwardEmailView-cUbnSYCF.js +1 -0
  50. modoboa/frontend_dist/assets/{HtmlEditor-uM4AtIGi.js → HtmlEditor-CJ9umKeO.js} +1 -1
  51. modoboa/frontend_dist/assets/{IdentitiesView-jmuItyMZ.css → IdentitiesView-0ziuQ5s-.css} +1 -1
  52. modoboa/frontend_dist/assets/IdentitiesView-njNo8N5n.js +1 -0
  53. modoboa/frontend_dist/assets/{InformationView-CghcvPn2.js → InformationView-D1h38POt.js} +1 -1
  54. modoboa/frontend_dist/assets/{LoadingData-CVD2Aen8.js → LoadingData-CYwX3Jpn.js} +1 -1
  55. modoboa/frontend_dist/assets/{LoginCallbackView-sWzBke1g.js → LoginCallbackView-E01qkKn0.js} +1 -1
  56. modoboa/frontend_dist/assets/{LoginView-wmN73W0f.js → LoginView-Cy4uFV9h.js} +1 -1
  57. modoboa/frontend_dist/assets/{MailboxView-T_p-_ZtJ.js → MailboxView-IlrLWm_H.js} +1 -1
  58. modoboa/frontend_dist/assets/{MenuItems-kHCMzR5E.js → MenuItems-BAtHWzAE.js} +1 -1
  59. modoboa/frontend_dist/assets/MessagesView-OSpjixFq.js +1 -0
  60. modoboa/frontend_dist/assets/{MigrationsView-7kjqPyYU.js → MigrationsView-DKNOsVzF.js} +1 -1
  61. modoboa/frontend_dist/assets/{ParametersForm-BCeQljir.js → ParametersForm-BZM0QSvg.js} +1 -1
  62. modoboa/frontend_dist/assets/ParametersView-C4bXASiq.js +1 -0
  63. modoboa/frontend_dist/assets/ParametersView-CYXgNmc1.js +1 -0
  64. modoboa/frontend_dist/assets/{ProviderEditView-DDLMOylC.js → ProviderEditView-CyxCWTST.js} +1 -1
  65. modoboa/frontend_dist/assets/{ProviderGeneralForm-BwOSKNHK.js → ProviderGeneralForm-BYPjNHqB.js} +1 -1
  66. modoboa/frontend_dist/assets/ProvidersView-CxrMkRyk.js +1 -0
  67. modoboa/frontend_dist/assets/ReplyEmailView-Dkw9-N26.js +1 -0
  68. modoboa/frontend_dist/assets/{ResourcesForm-D87PHeH0.js → ResourcesForm-CuUvrOdY.js} +1 -1
  69. modoboa/frontend_dist/assets/SettingsView-BxLJBFY0.js +6 -0
  70. modoboa/frontend_dist/assets/{StatisticsView-CM__Eqku.js → StatisticsView-BN7QsZMT.js} +1 -1
  71. modoboa/frontend_dist/assets/{TimeSerieChart-C6j0uYR_.js → TimeSerieChart-BMN8BeFZ.js} +1 -1
  72. modoboa/frontend_dist/assets/UserLayout-B6-JQg4F.js +1 -0
  73. modoboa/frontend_dist/assets/{VAlert-B7mzOJIO.js → VAlert-DIQTrRif.js} +1 -1
  74. modoboa/frontend_dist/assets/{VApp-BKxnjOoi.js → VApp-CpkYA7js.js} +1 -1
  75. modoboa/frontend_dist/assets/{VAutocomplete-Cc4_tcl1.js → VAutocomplete-C4IpXyl8.js} +1 -1
  76. modoboa/frontend_dist/assets/{VAvatar-BAgTUIvX.js → VAvatar-Lpb-Dion.js} +1 -1
  77. modoboa/frontend_dist/assets/{VCard-DFWiFORP.js → VCard-er_isjE_.js} +1 -1
  78. modoboa/frontend_dist/assets/{VCheckbox-CKsH_vq3.js → VCheckbox-D-u8JXP1.js} +1 -1
  79. modoboa/frontend_dist/assets/{VCheckboxBtn-j7di4leN.js → VCheckboxBtn-Dt810gWf.js} +1 -1
  80. modoboa/frontend_dist/assets/{VChip-nZ0uhY7t.js → VChip-B4iSpj8_.js} +1 -1
  81. modoboa/frontend_dist/assets/{VColorPicker-Os2aeP6J.js → VColorPicker-BAjGDsXv.js} +1 -1
  82. modoboa/frontend_dist/assets/VContainer-DvTbsotR.js +1 -0
  83. modoboa/frontend_dist/assets/{VDataTable-D_0_xJTl.js → VDataTable-4JRjbtgF.js} +1 -1
  84. modoboa/frontend_dist/assets/{VDataTableServer-BWTt4Mzi.js → VDataTableServer-tIDT1m3-.js} +1 -1
  85. modoboa/frontend_dist/assets/{VDataTableVirtual-BwVmkt4u.js → VDataTableVirtual-BlnO18u_.js} +1 -1
  86. modoboa/frontend_dist/assets/{VDialog-CZqM2Ofu.js → VDialog-Bk6EWNhz.js} +1 -1
  87. modoboa/frontend_dist/assets/{VExpansionPanels-B5D6GOa3.js → VExpansionPanels-CwGtXDhr.js} +1 -1
  88. modoboa/frontend_dist/assets/{VFileInput-Cv9DIPki.js → VFileInput-D1_7ZkO_.js} +1 -1
  89. modoboa/frontend_dist/assets/{VForm-CpoZf60D.js → VForm-DAkW4nfy.js} +1 -1
  90. modoboa/frontend_dist/assets/{VMenu-B_dVqOmo.js → VMenu-BPFJwj2f.js} +1 -1
  91. modoboa/frontend_dist/assets/{VPicker-CXkIGEze.js → VPicker-CfT82M8N.js} +1 -1
  92. modoboa/frontend_dist/assets/{VProgressCircular-CrEXxs7k.js → VProgressCircular-w75-3ogi.js} +1 -1
  93. modoboa/frontend_dist/assets/{VRadioGroup-D8ypjYOO.js → VRadioGroup-0j6DNC_k.js} +1 -1
  94. modoboa/frontend_dist/assets/{VRow-C_Ydf6yr.js → VRow-BF35mT1S.js} +1 -1
  95. modoboa/frontend_dist/assets/{VSelect-CS51PDEt.js → VSelect-Cs4ARbAS.js} +1 -1
  96. modoboa/frontend_dist/assets/{VSelectionControl-DiOqtY38.js → VSelectionControl-Dg-XyRRS.js} +1 -1
  97. modoboa/frontend_dist/assets/VSheet-Btq_Mu4s.js +1 -0
  98. modoboa/frontend_dist/assets/VSpacer-C7xukQmu.js +1 -0
  99. modoboa/frontend_dist/assets/{VSwitch-Chg5o-Cp.js → VSwitch-Cs1NQrmk.js} +1 -1
  100. modoboa/frontend_dist/assets/{VTable-KsiZ3cBz.js → VTable-CNz2SGk4.js} +1 -1
  101. modoboa/frontend_dist/assets/{VTabs-tNrJIYO0.js → VTabs-B1fyVn4M.js} +1 -1
  102. modoboa/frontend_dist/assets/{VTextField-CLwRV0Cb.js → VTextField-BdyvgvkG.js} +1 -1
  103. modoboa/frontend_dist/assets/{VTextarea-Di8jbl8m.js → VTextarea-DnOMpe0Q.js} +1 -1
  104. modoboa/frontend_dist/assets/{VToolbar-CGwhgdmI.js → VToolbar-BiCiBxBJ.js} +1 -1
  105. modoboa/frontend_dist/assets/{VWindowItem-wWSFAGI-.js → VWindowItem-ChWm_kz3.js} +1 -1
  106. modoboa/frontend_dist/assets/WebmailLayout-o4uEkp9e.js +1 -0
  107. modoboa/frontend_dist/assets/admin-o-HRGnmT.js +1 -0
  108. modoboa/frontend_dist/assets/{aliases-c3n-dCV_.js → aliases-DDVeehyg.js} +1 -1
  109. modoboa/frontend_dist/assets/{contacts-Bqckz8sr.js → contacts-C84DY-Q1.js} +1 -1
  110. modoboa/frontend_dist/assets/{domains-nBMR-fRf.js → domains-Bgn4ixHL.js} +1 -1
  111. modoboa/frontend_dist/assets/{domains.store-ChZgLcqP.js → domains.store-DTE-V7Y1.js} +1 -1
  112. modoboa/frontend_dist/assets/{filter-D7NrAf6a.js → filter-CnffiQAW.js} +1 -1
  113. modoboa/frontend_dist/assets/{forwardRefs-Cpc3YYl6.js → forwardRefs-Dvjn_Xq4.js} +1 -1
  114. modoboa/frontend_dist/assets/{global.store-DUP26-A5.js → global.store-BaiD63EN.js} +1 -1
  115. modoboa/frontend_dist/assets/{importExport-Dn9vYw7T.js → importExport-BlQYb0NO.js} +1 -1
  116. modoboa/frontend_dist/assets/index-DuzUMVLM.js +1 -0
  117. modoboa/frontend_dist/assets/index-I1VDlN4g.js +984 -0
  118. modoboa/frontend_dist/assets/layout-D8ZJPiJ_.js +1 -0
  119. modoboa/frontend_dist/assets/{layout.store-BxBoBlgf.js → layout.store-DkjrAoXt.js} +1 -1
  120. modoboa/frontend_dist/assets/logos-q8SEyAa4.js +1 -0
  121. modoboa/frontend_dist/assets/{logs-DrTzylW7.js → logs-B7IJ7LBa.js} +1 -1
  122. modoboa/frontend_dist/assets/{parameters-Lgiqp7aw.js → parameters-A6iBEYQq.js} +1 -1
  123. modoboa/frontend_dist/assets/{parameters.store-C9k9DuTj.js → parameters.store-BiXS4_6w.js} +1 -1
  124. modoboa/frontend_dist/assets/{permissions-mL5hLHcW.js → permissions-CITHLHVg.js} +1 -1
  125. modoboa/frontend_dist/assets/{ssrBoot-BsxW6uW4.js → ssrBoot-AzTdjPjk.js} +1 -1
  126. modoboa/frontend_dist/assets/{tag-CFK9dzMJ.js → tag-BnSYRTcD.js} +1 -1
  127. modoboa/frontend_dist/assets/transports-Dz7c6kIy.js +1 -0
  128. modoboa/frontend_dist/assets/{webmail-KrD8ZhNM.js → webmail-CSH_3l6R.js} +1 -1
  129. modoboa/frontend_dist/index.html +1 -1
  130. modoboa/lib/redis.py +1 -5
  131. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  132. modoboa/locale/ja_JP/LC_MESSAGES/django.po +122 -263
  133. {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/METADATA +1 -1
  134. {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/RECORD +139 -138
  135. modoboa/frontend_dist/assets/AccountLayout-OGtZvlHR.js +0 -1
  136. modoboa/frontend_dist/assets/AccountView-DsxYqr3k.js +0 -1
  137. modoboa/frontend_dist/assets/AdminLayout-CWfn8zaQ.js +0 -1
  138. modoboa/frontend_dist/assets/ComposeEmailView-B866Xsrc.js +0 -1
  139. modoboa/frontend_dist/assets/ConnectedLayout-BQ3ug6Jh.js +0 -1
  140. modoboa/frontend_dist/assets/CreationForm-C9Kh05ax.js +0 -1
  141. modoboa/frontend_dist/assets/DashboardView-Cw-gIcuB.js +0 -1
  142. modoboa/frontend_dist/assets/DomainAdminList-CsWUNKVk.js +0 -1
  143. modoboa/frontend_dist/assets/DomainView-Djc_0PsF.js +0 -5
  144. modoboa/frontend_dist/assets/DomainsView-B-Lxru7P.js +0 -1
  145. modoboa/frontend_dist/assets/EmptyLayout-BzPFOeLU.js +0 -1
  146. modoboa/frontend_dist/assets/ForwardEmailView-D7MbetcT.js +0 -1
  147. modoboa/frontend_dist/assets/IdentitiesView-BqjD9Lue.js +0 -1
  148. modoboa/frontend_dist/assets/MessagesView-Cerv3xsy.js +0 -1
  149. modoboa/frontend_dist/assets/ParametersView-DspBxVMV.js +0 -1
  150. modoboa/frontend_dist/assets/ParametersView-Dy0H5ep1.js +0 -1
  151. modoboa/frontend_dist/assets/ProvidersView-C99UD0WB.js +0 -1
  152. modoboa/frontend_dist/assets/ReplyEmailView-DAPBHldd.js +0 -1
  153. modoboa/frontend_dist/assets/SettingsView-OxDo9wNd.js +0 -6
  154. modoboa/frontend_dist/assets/UserLayout-CckCGnPS.js +0 -1
  155. modoboa/frontend_dist/assets/VContainer-Btam4lk2.js +0 -1
  156. modoboa/frontend_dist/assets/VSheet-5VVWtHvs.js +0 -1
  157. modoboa/frontend_dist/assets/VSpacer-C6PZ3X24.js +0 -1
  158. modoboa/frontend_dist/assets/WebmailLayout-DsYThBrz.js +0 -1
  159. modoboa/frontend_dist/assets/admin-CJVLMHh9.js +0 -1
  160. modoboa/frontend_dist/assets/index-DV9Li2cg.js +0 -852
  161. modoboa/frontend_dist/assets/index-DzL89N4E.js +0 -1
  162. modoboa/frontend_dist/assets/layout-CHO37cA6.js +0 -1
  163. modoboa/frontend_dist/assets/transports-TO08iTXJ.js +0 -1
  164. {modoboa-2.4.10.data → modoboa-2.4.11.data}/scripts/modoboa-admin.py +0 -0
  165. {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/WHEEL +0 -0
  166. {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/entry_points.txt +0 -0
  167. {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/licenses/LICENSE +0 -0
  168. {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/top_level.txt +0 -0
@@ -0,0 +1 @@
1
+ import{d as ne}from"./tag-BnSYRTcD.js";import{x as Z,S as H,h as v,g as ae,b8 as L,ac as E,a7 as R,aD as U,ab as X,d as se,ak as ue,b9 as le,ba as ie,az as re,ai as q,bb as ce}from"./index-I1VDlN4g.js";const M=Symbol.for("vuetify:layout"),F=Symbol.for("vuetify:layout-item"),N=1e3,pe=Z({overlaps:{type:Array,default:()=>[]},fullHeight:Boolean},"layout"),me=Z({name:{type:String},order:{type:[Number,String],default:0},absolute:Boolean},"layout-item");function ge(){const s=H(M);if(!s)throw new Error("[Vuetify] Could not find injected layout");return{getLayoutItem:s.getLayoutItem,mainRect:s.mainRect,mainStyles:s.mainStyles}}function be(s){const u=H(M);if(!u)throw new Error("[Vuetify] Could not find injected layout");const d=s.id??`layout-item-${ue()}`,i=U("useLayoutItem");q(F,{id:d});const n=X(!1);le(()=>n.value=!0),ie(()=>n.value=!1);const{layoutItemStyles:r,layoutItemScrimStyles:c}=u.register(i,{...s,active:v(()=>n.value?!1:s.active.value),id:d});return re(()=>u.unregister(d)),{layoutItemStyles:r,layoutRect:u.layoutRect,layoutItemScrimStyles:c}}const ve=(s,u,d,i)=>{let n={top:0,left:0,right:0,bottom:0};const r=[{id:"",layer:{...n}}];for(const c of s){const m=u.get(c),g=d.get(c),$=i.get(c);if(!m||!g||!$)continue;const b={...n,[m.value]:parseInt(n[m.value],10)+($.value?parseInt(g.value,10):0)};r.push({id:c,layer:b}),n=b}return r};function he(s){const u=H(M,null),d=v(()=>u?u.rootZIndex.value-100:N),i=ae([]),n=L(new Map),r=L(new Map),c=L(new Map),m=L(new Map),g=L(new Map),{resizeRef:$,contentRect:b}=ne(),W=v(()=>{const t=new Map,l=s.overlaps??[];for(const e of l.filter(a=>a.includes(":"))){const[a,o]=e.split(":");if(!i.value.includes(a)||!i.value.includes(o))continue;const f=n.get(a),p=n.get(o),S=r.get(a),w=r.get(o);!f||!p||!S||!w||(t.set(o,{position:f.value,amount:parseInt(S.value,10)}),t.set(a,{position:p.value,amount:-parseInt(w.value,10)}))}return t}),h=v(()=>{const t=[...new Set([...c.values()].map(e=>e.value))].sort((e,a)=>e-a),l=[];for(const e of t){const a=i.value.filter(o=>{var f;return((f=c.get(o))==null?void 0:f.value)===e});l.push(...a)}return ve(l,n,r,m)}),T=v(()=>!Array.from(g.values()).some(t=>t.value)),I=v(()=>h.value[h.value.length-1].layer),Y=E(()=>({"--v-layout-left":R(I.value.left),"--v-layout-right":R(I.value.right),"--v-layout-top":R(I.value.top),"--v-layout-bottom":R(I.value.bottom),...T.value?void 0:{transition:"none"}})),x=v(()=>h.value.slice(1).map((t,l)=>{let{id:e}=t;const{layer:a}=h.value[l],o=r.get(e),f=n.get(e);return{id:e,...a,size:Number(o.value),position:f.value}})),j=t=>x.value.find(l=>l.id===t),O=U("createLayout"),k=X(!1);se(()=>{k.value=!0}),q(M,{register:(t,l)=>{let{id:e,order:a,position:o,layoutSize:f,elementSize:p,active:S,disableTransitions:w,absolute:J}=l;c.set(e,a),n.set(e,o),r.set(e,f),m.set(e,S),w&&g.set(e,w);const B=ce(F,O==null?void 0:O.vnode).indexOf(t);B>-1?i.value.splice(B,0,e):i.value.push(e);const D=v(()=>x.value.findIndex(z=>z.id===e)),A=v(()=>d.value+h.value.length*2-D.value*2),Q=v(()=>{const z=o.value==="left"||o.value==="right",C=o.value==="right",te=o.value==="bottom",P=p.value??f.value,oe=P===0?"%":"px",K={[o.value]:0,zIndex:A.value,transform:`translate${z?"X":"Y"}(${(S.value?0:-(P===0?100:P))*(C||te?-1:1)}${oe})`,position:J.value||d.value!==N?"absolute":"fixed",...T.value?void 0:{transition:"none"}};if(!k.value)return K;const y=x.value[D.value];if(!y)throw new Error(`[Vuetify] Could not find layout item "${e}"`);const V=W.value.get(e);return V&&(y[V.position]+=V.amount),{...K,height:z?`calc(100% - ${y.top}px - ${y.bottom}px)`:p.value?`${p.value}px`:void 0,left:C?void 0:`${y.left}px`,right:C?`${y.right}px`:void 0,top:o.value!=="bottom"?`${y.top}px`:void 0,bottom:o.value!=="top"?`${y.bottom}px`:void 0,width:z?p.value?`${p.value}px`:void 0:`calc(100% - ${y.left}px - ${y.right}px)`}}),ee=v(()=>({zIndex:A.value-1}));return{layoutItemStyles:Q,layoutItemScrimStyles:ee,zIndex:A}},unregister:t=>{c.delete(t),n.delete(t),r.delete(t),m.delete(t),g.delete(t),i.value=i.value.filter(l=>l!==t)},mainRect:I,mainStyles:Y,getLayoutItem:j,items:x,layoutRect:b,rootZIndex:d});const _=E(()=>["v-layout",{"v-layout--full-height":s.fullHeight}]),G=E(()=>({zIndex:u?d.value:void 0,position:u?"relative":void 0,overflow:u?"hidden":void 0}));return{layoutClasses:_,layoutStyles:G,getLayoutItem:j,items:x,layoutRect:b,layoutRef:$}}export{M as V,me as a,ge as b,he as c,pe as m,be as u};
@@ -1 +1 @@
1
- import{O as a,g as s}from"./index-DV9Li2cg.js";const r=a("layout",()=>{const e=s([]),t=s(!1);function n(u){e.value=u}async function o(){e.value=[],t.value=!1}return{leftMenuItems:e,compactLeftMenu:t,setLeftMenuItems:n,$reset:o}});export{r as u};
1
+ import{O as a,g as s}from"./index-I1VDlN4g.js";const r=a("layout",()=>{const e=s([]),t=s(!1);function n(u){e.value=u}async function o(){e.value=[],t.value=!1}return{leftMenuItems:e,compactLeftMenu:t,setLeftMenuItems:n,$reset:o}});export{r as u};
@@ -0,0 +1 @@
1
+ import{h as r,b7 as s}from"./index-I1VDlN4g.js";function i(){const o=s(),t=r(()=>o.MENU_LOGO_PATH?o.MENU_LOGO_PATH:new URL("/assets/Modoboa_RVB-BLANC-SANS-BBGoASES.png",import.meta.url).href),n=r(()=>o.CREATION_FORM_LOGO_PATH?o.CREATION_FORM_LOGO_PATH:new URL("/assets/Modoboa_RVB-BLEU-SANS-pKrnjsR_.png",import.meta.url).href);return{menuLogoPath:t,creationFormLogoPath:n}}export{i as u};
@@ -1 +1 @@
1
- import{_ as e}from"./index-DV9Li2cg.js";const t="logs",o={getAuditTrail(s){return e.get(`/${t}/audit-trail/`,{params:s})},getMessages(s){return e.get(`/${t}/messages/`,{params:s})}};export{o as l};
1
+ import{_ as e}from"./index-I1VDlN4g.js";const t="logs",o={getAuditTrail(s){return e.get(`/${t}/audit-trail/`,{params:s})},getMessages(s){return e.get(`/${t}/messages/`,{params:s})}};export{o as l};
@@ -1 +1 @@
1
- import{_ as e}from"./index-DV9Li2cg.js";const r="parameters",l={getGlobalApplications(){return e.get(`/${r}/global/applications/`)},getGlobalApplication(t){return e.get(`/${r}/global/${t}/`)},getGlobalApplicationStructure(t){return e.get(`/${r}/global/structure/?app=${t}`)},saveGlobalApplication(t,p){return e.put(`/${r}/global/${t}/`,p)},getUserApplications(){return e.get(`/${r}/user/applications/`)},getUserApplication(t){return e.get(`/${r}/user/${t}/`)},getUserApplicationStructure(t){return e.get(`/${r}/user/structure/?app=${t}`)},saveUserApplication(t,p){return e.put(`/${r}/user/${t}/`,p)}};export{l as p};
1
+ import{_ as e}from"./index-I1VDlN4g.js";const r="parameters",l={getGlobalApplications(){return e.get(`/${r}/global/applications/`)},getGlobalApplication(t){return e.get(`/${r}/global/${t}/`)},getGlobalApplicationStructure(t){return e.get(`/${r}/global/structure/?app=${t}`)},saveGlobalApplication(t,p){return e.put(`/${r}/global/${t}/`,p)},getUserApplications(){return e.get(`/${r}/user/applications/`)},getUserApplication(t){return e.get(`/${r}/user/${t}/`)},getUserApplicationStructure(t){return e.get(`/${r}/user/structure/?app=${t}`)},saveUserApplication(t,p){return e.put(`/${r}/user/${t}/`,p)}};export{l as p};
@@ -1 +1 @@
1
- import{O as a,g as t}from"./index-DV9Li2cg.js";const s=a("parameters",()=>{const e=t(null);async function r(){e.value=null}return{imapMigrationEnabled:e,$reset:r}});export{s as u};
1
+ import{O as a,g as t}from"./index-I1VDlN4g.js";const s=a("parameters",()=>{const e=t(null);async function r(){e.value=null}return{imapMigrationEnabled:e,$reset:r}});export{s as u};
@@ -1 +1 @@
1
- import{u as r,h as s,i as t}from"./index-DV9Li2cg.js";function a(){const e=r(),n=s(()=>[t.RESELLER,t.SUPER_ADMIN].includes(e.authUser.role)),o=s(()=>[t.RESELLER,t.SUPER_ADMIN].includes(e.authUser.role));return{canSetRole:n,canAddDomain:o}}export{a as u};
1
+ import{u as r,h as s,i as t}from"./index-I1VDlN4g.js";function a(){const e=r(),n=s(()=>[t.RESELLER,t.SUPER_ADMIN].includes(e.authUser.role)),o=s(()=>[t.RESELLER,t.SUPER_ADMIN].includes(e.authUser.role));return{canSetRole:n,canAddDomain:o}}export{a as u};
@@ -1 +1 @@
1
- import{ac as t,d as e,ad as s,b5 as n}from"./index-DV9Li2cg.js";function i(){const o=t(!1);return e(()=>{window.requestAnimationFrame(()=>{o.value=!0})}),{ssrBootStyles:s(()=>o.value?void 0:{transition:"none !important"}),isBooted:n(o)}}export{i as u};
1
+ import{ab as t,d as e,ac as s,b4 as n}from"./index-I1VDlN4g.js";function i(){const o=t(!1);return e(()=>{window.requestAnimationFrame(()=>{o.value=!0})}),{ssrBootStyles:s(()=>o.value?void 0:{transition:"none !important"}),isBooted:n(o)}}export{i as u};
@@ -1 +1 @@
1
- import{x as m,aE as h,ah as c,g as d,as as f,aA as l,L as b,b5 as R,h as S,a8 as r}from"./index-DV9Li2cg.js";const x=m({class:[String,Array,Object],style:{type:[String,Array,Object],default:null}},"component");function y(t){const a=h("useRender");a.render=t}function W(t){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"content";const e=c(),i=d();if(f){const s=new ResizeObserver(n=>{t==null||t(n,s),n.length&&(a==="content"?i.value=n[0].contentRect:i.value=n[0].target.getBoundingClientRect())});l(()=>{s.disconnect()}),b(()=>e.el,(n,o)=>{o&&(s.unobserve(o),i.value=void 0),n&&s.observe(n)},{flush:"post"})}return{resizeRef:e,contentRect:R(i)}}const H=m({height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},"dimension");function N(t){return{dimensionStyles:S(()=>{const e={},i=r(t.height),s=r(t.maxHeight),n=r(t.maxWidth),o=r(t.minHeight),u=r(t.minWidth),g=r(t.width);return i!=null&&(e.height=i),s!=null&&(e.maxHeight=s),n!=null&&(e.maxWidth=n),o!=null&&(e.minHeight=o),u!=null&&(e.minWidth=u),g!=null&&(e.width=g),e})}}const O=m({tag:{type:[String,Object,Function],default:"div"}},"tag");export{x as a,N as b,H as c,W as d,O as m,y as u};
1
+ import{x as m,aD as c,ag as h,g as d,ar as f,az as l,L as b,b4 as R,h as S,a7 as r}from"./index-I1VDlN4g.js";const x=m({class:[String,Array,Object],style:{type:[String,Array,Object],default:null}},"component");function y(t){const a=c("useRender");a.render=t}function W(t){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"content";const e=h(),i=d();if(f){const s=new ResizeObserver(n=>{t==null||t(n,s),n.length&&(a==="content"?i.value=n[0].contentRect:i.value=n[0].target.getBoundingClientRect())});l(()=>{s.disconnect()}),b(()=>e.el,(n,o)=>{o&&(s.unobserve(o),i.value=void 0),n&&s.observe(n)},{flush:"post"})}return{resizeRef:e,contentRect:R(i)}}const H=m({height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},"dimension");function N(t){return{dimensionStyles:S(()=>{const e={},i=r(t.height),s=r(t.maxHeight),n=r(t.maxWidth),o=r(t.minHeight),u=r(t.minWidth),g=r(t.width);return i!=null&&(e.height=i),s!=null&&(e.maxHeight=s),n!=null&&(e.maxWidth=n),o!=null&&(e.minHeight=o),u!=null&&(e.minWidth=u),g!=null&&(e.width=g),e})}}const O=m({tag:{type:[String,Object,Function],default:"div"}},"tag");export{x as a,N as b,H as c,W as d,O as m,y as u};
@@ -0,0 +1 @@
1
+ import{_ as t}from"./index-I1VDlN4g.js";const r="transports",s={getAll(){return t.get(`/${r}/`)}};export{s as t};
@@ -1 +1 @@
1
- import{_ as t}from"./index-DV9Li2cg.js";const r={getUserMailboxes(e){const s={};return e&&(s.mailbox=e),t.get("/webmail/mailboxes/",{params:s})},getUserMailboxQuota(e){const s={mailbox:e};return t.get("/webmail/mailboxes/quota/",{params:s})},getUserMailboxUnseen(e){const s={mailbox:e};return t.get("webmail/mailboxes/unseen/",{params:s})},createUserMailbox(e){return t.post("/webmail/mailboxes/",e)},renameUserMailbox(e){return t.post("/webmail/mailboxes/rename/",e)},compressUserMailbox(e){return t.post("/webmail/mailboxes/compress/",e)},deleteUserMailbox(e){return t.post("/webmail/mailboxes/delete/",e)},emptyUserMailbox(e){const s={name:e};return t.post("/webmail/mailboxes/empty/",s)},getMailboxEmails(e,s){const a={mailbox:e,...s};return t.get("/webmail/emails/",{params:a})},getEmailContent(e,s,a){const o={mailbox:e,mailid:s,...a};return t.get("/webmail/emails/content/",{params:o})},getEmailSource(e,s){const a={mailbox:e,mailid:s};return t.get("/webmail/emails/source/",{params:a})},getEmailAttachment(e,s,a){const o={mailbox:e,mailid:s,partnum:a};return t.get("/webmail/emails/attachment/",{params:o,responseType:"blob"})},deleteSelection(e,s){const a={mailbox:e,selection:s};return t.post("/webmail/emails/delete/",a)},markSelectionAsJunk(e,s){const a={mailbox:e,selection:s};return t.post("/webmail/emails/mark_as_junk/",a)},markSelectionAsNotJunk(e,s){const a={mailbox:e,selection:s};return t.post("/webmail/emails/mark_as_not_junk/",a)},flagSelection(e,s,a){const o={mailbox:e,selection:s,status:a};return t.post("/webmail/emails/flag/",o)},sendEmailFromComposeSession(e,s){return t.post(`/webmail/compose-sessions/${e}/send/`,s)},getComposeSession(e){return t.get(`/webmail/compose-sessions/${e}/`)},createComposeSession(){return t.post("/webmail/compose-sessions/")},getAllowedSenders(){return t.get("/webmail/compose-sessions/allowed_senders/")},uploadAttachment(e,s){return t.post(`/webmail/compose-sessions/${e}/attachments/`,s,{headers:{"Content-Type":"multipart/form-data"}})},removeAttachment(e,s){return t.delete(`/webmail/compose-sessions/${e}/attachments/${s}/`)}};export{r as a};
1
+ import{_ as t}from"./index-I1VDlN4g.js";const r={getUserMailboxes(e){const s={};return e&&(s.mailbox=e),t.get("/webmail/mailboxes/",{params:s})},getUserMailboxQuota(e){const s={mailbox:e};return t.get("/webmail/mailboxes/quota/",{params:s})},getUserMailboxUnseen(e){const s={mailbox:e};return t.get("webmail/mailboxes/unseen/",{params:s})},createUserMailbox(e){return t.post("/webmail/mailboxes/",e)},renameUserMailbox(e){return t.post("/webmail/mailboxes/rename/",e)},compressUserMailbox(e){return t.post("/webmail/mailboxes/compress/",e)},deleteUserMailbox(e){return t.post("/webmail/mailboxes/delete/",e)},emptyUserMailbox(e){const s={name:e};return t.post("/webmail/mailboxes/empty/",s)},getMailboxEmails(e,s){const a={mailbox:e,...s};return t.get("/webmail/emails/",{params:a})},getEmailContent(e,s,a){const o={mailbox:e,mailid:s,...a};return t.get("/webmail/emails/content/",{params:o})},getEmailSource(e,s){const a={mailbox:e,mailid:s};return t.get("/webmail/emails/source/",{params:a})},getEmailAttachment(e,s,a){const o={mailbox:e,mailid:s,partnum:a};return t.get("/webmail/emails/attachment/",{params:o,responseType:"blob"})},deleteSelection(e,s){const a={mailbox:e,selection:s};return t.post("/webmail/emails/delete/",a)},markSelectionAsJunk(e,s){const a={mailbox:e,selection:s};return t.post("/webmail/emails/mark_as_junk/",a)},markSelectionAsNotJunk(e,s){const a={mailbox:e,selection:s};return t.post("/webmail/emails/mark_as_not_junk/",a)},flagSelection(e,s,a){const o={mailbox:e,selection:s,status:a};return t.post("/webmail/emails/flag/",o)},sendEmailFromComposeSession(e,s){return t.post(`/webmail/compose-sessions/${e}/send/`,s)},getComposeSession(e){return t.get(`/webmail/compose-sessions/${e}/`)},createComposeSession(){return t.post("/webmail/compose-sessions/")},getAllowedSenders(){return t.get("/webmail/compose-sessions/allowed_senders/")},uploadAttachment(e,s){return t.post(`/webmail/compose-sessions/${e}/attachments/`,s,{headers:{"Content-Type":"multipart/form-data"}})},removeAttachment(e,s){return t.delete(`/webmail/compose-sessions/${e}/attachments/${s}/`)}};export{r as a};
@@ -12,7 +12,7 @@
12
12
  <link rel="icon" href="/favicon.ico" />
13
13
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
14
14
  <title>Welcome to Modoboa</title>
15
- <script type="module" crossorigin src="/assets/index-DV9Li2cg.js"></script>
15
+ <script type="module" crossorigin src="/assets/index-I1VDlN4g.js"></script>
16
16
  <link rel="stylesheet" crossorigin href="/assets/index-B1bJH8Ti.css">
17
17
  </head>
18
18
 
modoboa/lib/redis.py CHANGED
@@ -6,11 +6,7 @@ from django.conf import settings
6
6
  def get_redis_connection(hget_return_type=int) -> redis.Redis:
7
7
  """Return a client connection to Redis server."""
8
8
  if not getattr(settings, "REDIS_SENTINEL", False):
9
- rclient = redis.Redis(
10
- host=settings.REDIS_HOST,
11
- port=settings.REDIS_PORT,
12
- db=settings.REDIS_QUOTA_DB,
13
- )
9
+ rclient = redis.from_url(settings.REDIS_URL)
14
10
  else:
15
11
  sentinel = redis.sentinel.Sentinel(
16
12
  settings.REDIS_SENTINELS, socket_timeout=0.1, db=settings.REDIS_QUOTA_DB
Binary file