Utente.Edit.html 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442
  1. {% extends 'base.html' %}
  2. {% block headersupplement %}
  3. <script>
  4. function updatepasswordchanged() {
  5. document.getElementById('passwordchanged').value=1;
  6. }
  7. function getJsonPassword() {
  8. jQuery.noConflict();
  9. $.getJSON('/dashboard4/configurazione',
  10. function(data) {
  11. console.log(data);
  12. $('#clear').val(data.newPassword);
  13. $('#password1').val(data.newPassword);
  14. $('#password2').val(data.newPassword);
  15. $('#password1').get(0).type='text';
  16. $('#password2').get(0).type='text';
  17. });
  18. }
  19. </script>
  20. <script>
  21. function setPasswordField() {
  22. if( $('#password_change_enabled').is(":checked"))
  23. {
  24. $('#password1').attr('readonly',false);
  25. $('#password2').attr('readonly',false);
  26. $('#UpdatePWD').attr('disabled',false);
  27. $('#UpdatePWD').click(getJsonPassword);
  28. } else {
  29. $('#password1').attr('readonly',true);
  30. $('#password2').attr('readonly',true);
  31. $('#UpdatePWD').attr('disabled',true);
  32. $('#UpdatePWD').click(false);
  33. }
  34. };
  35. </script>
  36. <script>
  37. $(document).ready(function() { setPasswordField(); });
  38. </script>
  39. <script>
  40. $(function () {
  41. $('updatepwd').popover({
  42. container: 'body'
  43. });
  44. });
  45. </script>
  46. <script>
  47. function UpdateNome() {
  48. if (document.getElementById("nome").value.length == 0 ) {
  49. document.getElementById("nome").value = document.getElementById("mail").value;
  50. }
  51. }
  52. </script>
  53. <script>
  54. function copyToClipboard() {
  55. elem = document.getElementById("password1");
  56. elem.select();
  57. document.execCommand('copy');
  58. }
  59. </script>
  60. {% endblock %}
  61. {% block top %}
  62. <p>
  63. utente che sta effettuando gli aggiornamenti {{ utenteautorizzato.mail }}@{{ utenteautorizzato.domain.nome }}
  64. </p>
  65. {% if user %}
  66. <p>
  67. si stanno effettuando aggiornamenti su: {{ user.mail }}@{{ user.domain.nome }}
  68. </p>
  69. {% endif %}
  70. {% endblock %}
  71. {% block body %}
  72. <div>Pannello Controllo utente - gestione</div>
  73. <div></div>
  74. <div>
  75. <div class='row'>
  76. {% if formemail.errors %}
  77. <p>Rilevati Errori, impossibile proseguire.</p>
  78. {% for f in formemail %}
  79. {% for e in f.errors %}
  80. <div class="alter alter-danger">
  81. <strong>{{f.label|escape }}: {{ e|escape }}</strong>
  82. </div>
  83. {% endfor %}
  84. {% endfor %}
  85. {% for e in formemail.non_field_errors %}
  86. <div class="alter alter-danger">
  87. <strong>{{ e|escape }}</strong>
  88. </div>
  89. {% endfor %}
  90. {% endif %}
  91. </div>
  92. </div>
  93. <form name='useredit' method='post'>
  94. {% csrf_token %}
  95. <div class='row'>'
  96. <div class='col'>
  97. <label for='mail'>Email Address/Account</label>
  98. <input type='text' class='form-control' id='mail' name='mail' placeholder='account email' value='{{ formemail.mail.value }}' {% if not 'EDITUSERNEW' in securitylist %} readonly {% endif %} onchange="UpdateNome()">
  99. </div>
  100. <div class='col'>
  101. <label for='domain'>Dominio</label>
  102. <input type='text' class='form-control' id='dominio_domain' name='dominio_domain' value='{{ formemail.dominio_domain.value }}' readonly>
  103. <input type='hidden' name='dominio' value='{{ user.domain_id }}'>
  104. </div>
  105. </div>
  106. <div class='form-group'>
  107. <label for='nome'>Nome completo utente</label>
  108. <input type='text' class='form-control' id='nome' name='nome' placeholder='nome utente' value='{{ formemail.nome.value }}' {% if not 'EDITUSERINFO' in securitylist %} readonly {% endif %}>
  109. </div>
  110. <div class='row form-group' id='updatepwd'>
  111. {% if 'USERCHANGEPASSWORD' in securitylist %}
  112. <div class='col form-check-inline'>
  113. <label for='password_change_enabled' class='form-check-label'>Cambio password abilitato: </label>
  114. <input type='checkbox' class='form-check-input' id='password_change_enabled' name='password_change_enabled' {% if formemail.password_change_enabled.value %} checked {% endif %} onclick="setPasswordField()">
  115. </div>
  116. {% else %}
  117. <input type='checkbox' style="opacity:0; position:absolute; left:9999px;" id='password_change_enabled' name='password_change_enabled' {% if formemail.password_change_enabled.value %} checked {% endif %}>
  118. {% endif %}
  119. <div class='col'>
  120. <label for='password1' {% if 'USERSHOWPASSWORD' in securitylist %} data-toggle='tooltip' data-html='true' title='{{ formemail.clear.value }}' {% endif %}>Password</label>
  121. <input type='password' class='form-control' id='password1' name='password1' value='{{ formemail.clear.value }}' placeholder='digita la password' {% if not 'USEREDITPASSWORD' in securitylist %} readonly {% endif %} {% if not formemail.password_change_enabled.value %} readonly {% endif %} oninput='updatepasswordchanged()' data-toggle='popover' title='{{ mail_password_message }}'>
  122. </div>
  123. <div class='col'>
  124. <label for='password2'>Ripetere</label>
  125. <input type='password' class='form-control' id='password2' name='password2' value='{{ formemail.clear.value }}' placeholder='ripeti la password' {% if not 'USEREDITPASSWORD' in securitylist %} readonly {% endif %} {% if not formemail.password_change_enabled.value %} readonly {% endif %} oninput='updatepasswordchanged()' data-toggle='popover' title='{{ mail_password_message }}'>
  126. <input type='hidden' id='passwordchanged' name='passwordchanged' value='{{ formemail.passwordchanged.value }}'>
  127. </div>
  128. {% if 'USERSHOWPASSWORD' in securitylist %}
  129. <div class='col'>
  130. <label for='buttonshare'>Copia Password</label>
  131. <button type='button' class='form-control btn btn-secondary' id='buttonshare' onclick='copyToClipboard();'>Clipboard</button>
  132. </div>
  133. {% endif %}
  134. {% if 'USEREDITPASSWORD' in securitylist %}
  135. <div class='col'><!-- richiesta nuova password e relativo aggiornamento -->
  136. <label for='UpdatePWD'>Genera Password</label>
  137. <button type='button' class='form-control btn btn-secondary' name='UpdatePWD' id='UpdatePWD'
  138. {% if formemail.password_change_enabled.value == 1 %}>
  139. {% else %} disabled>
  140. {% endif %} Password</button>
  141. </div>
  142. {% endif %}
  143. {% if 'USERSHOWPASSWORD' in securitylist %}
  144. <div class='col'>
  145. <label for='sendInfoToAdmin'>Invia Info ad Admin</label>
  146. <button type='submit' class='form-control btn btn-secondary' name='sendInfoToAdmin' id='sendInfoToAdmin' >Invia</button>
  147. </div>
  148. {% endif %}
  149. <div class='col'>
  150. <label for='sendInfoToMe'>Invia Info a me</label>
  151. <button type='submit' class='form-control btn btn-secondary' name='sendInfoToMe' id='sendInfoToMe' >Invia</button>
  152. </div>
  153. </div>
  154. <div class='row form-group'>
  155. <!-- fino a che il sistema non provvedera' a inviare email
  156. <div class='col'>
  157. <label for='rigenerapassword'>Password Casuale</label>
  158. <input type='checkbox' class='form-control' id='rigenerapassword' name='rigenerapassword' {% if not 'USEREDITPASSWORD' in securitylist %} readonly {% endif %}>
  159. </div>
  160. <div class='col'>
  161. <label for='invioparametri'>Invia Parametri</label>
  162. <input type='checkbox' class='form-control' id='inviaparametri' name='inviaparametri'>
  163. </div>
  164. <div class='col'>
  165. <label for='emailtest'>Invia Mail di test</label>
  166. <input type='checkbox' class='form-control' id='emailtest' name='emailtest'>
  167. </div>
  168. -->
  169. </div>
  170. <hr class='half-rule'>
  171. <div class='row form-group'>
  172. {% if 'USEREDITENABLED' in securitylist %}
  173. <div class='col form-inline'>
  174. <label class='form-check-label' for='enabled'>Account Abilitato:&nbsp;&nbsp;</label>
  175. <input type='checkbox' class='form-check-input' id='enabled' name='enabled' {% if formemail.enabled.value %} checked {% endif %}>
  176. </div>
  177. {% endif %}
  178. {% if 'USERTOBEDELETED' in securitylist and 'USERTOBERECOVERED' in securitylist %}
  179. <div class='col form-inline'>
  180. <label class='tobedeleted'>Da Eliminare:&nbsp;&nbsp;</label>
  181. <input type='checkbox' class='form-check-input' id='tobedeleted' name='tobedeleted' {% if formemail.tobedeleted.value %} checked {% endif %}>
  182. </div>
  183. {% elif 'USERTOBEDELETED' in securitylist and formemail.tobedelete.value %}
  184. <div class='col form-inline'>
  185. <label class='tobedeleted'>Da Eliminare:&nbsp;&nbsp;</label>
  186. <input type='checkbox' class='form-check-input' id='tobedeleted' name='tobedeleted' {% if formemail.tobedeleted.value %} checked {% endif %}>
  187. </div>
  188. {% elif 'USERTOBEDELETED' in securitylist %}
  189. <div class='col form-inline'>
  190. <label class='tobedeleted'>Da Eliminare:&nbsp;&nbsp;</label>
  191. <input type='checkbox' class='form-check-input' id='tobedeleted' name='tobedeleted' {% if formemail.tobedeleted.value %} checked {% endif %}>
  192. </div>
  193. {% endif %}
  194. <hr class='half-rule'>
  195. </div>
  196. {% if 'EDITUSEROPTIONS' in securitylist %}
  197. <div class='form-group'>
  198. <div class='form-inline'>
  199. <label class='form-input-label' for='forward'>Forward email a (questa opzione supera le regole della webmail): </label>
  200. <input type='text' clas=form-control' id='forward' name='forward' value="{{ formemail.forward.value }}" size=64></input>
  201. </div>
  202. </div>
  203. <div class='row form-group'>
  204. <div class='col form-inline'>
  205. <label class='form-check-label' for='pop3'>Pop3:&nbsp;&nbsp;</label>
  206. <input type='checkbox' class='form-check-input' id='pop3' name='pop3' {% if formemail.pop3.value %} checked {% endif %}>
  207. </div>
  208. <div class="col form-inline">
  209. <label class='form-check-label' for='imap'>Imap:&nbsp;&nbsp;</label>
  210. <input type='checkbox' class='form-check-input' id='imap' name='imap' {% if formemail.imap.value %} checked {% endif %}>
  211. </div>
  212. <div class="col form-inline">
  213. <label class='form-check-label' for='smtp'>Smtp:&nbsp;&nbsp;</label>
  214. <input type='checkbox' class='form-check-input' id='smtp' name='smtp' {% if formemail.smtp.value %}checked{% endif %}>
  215. </div>
  216. <div class="col form-inline">
  217. <label class='form-check-label' for='smtp_relay'>Relay:&nbsp;&nbsp;</label>
  218. <input type='checkbox' class='form-check-input' id='smtp_relay' name='smtp_relay' {% if formemail.smtp_relay.value %} checked {% endif %}>
  219. </div>
  220. <div class='col form-inline'>
  221. <label for='webmail'>Webmail:&nbsp;&nbsp;</label>
  222. <input type='checkbox' class='form-check-input' id='webmail' name='webmail' {% if formemail.webmail.value %} checked {% endif %}>
  223. </div>
  224. <div class='col form-inline'>
  225. <label for='nextcloud'>Nextcloud:&nbsp;&nbsp;</label>
  226. <input type='checkbox' class='form-check-input' id='nextcloud' name='nextcloud' {% if formemail.nextcloud.value %} checked {% endif %}>
  227. </div>
  228. <div class='col form-inline'>
  229. <label for='nextcloud_pwd'>Nextcloud Pass Sync:&nbsp;&nbsp;</label>
  230. <input type='checkbox' class='form-check-input' id='nextcloud_pwd' name='nextcloud_pwd' {% if formemail.nextcloud_pwd.value %} checked {% endif %}>
  231. </div>
  232. </div>
  233. <div class='row form-group'>
  234. <div class='col form-inline'>
  235. <label for='spf'>Spf:&nbsp;&nbsp;</label>
  236. <input type='checkbox' class='form-check-input' id='spf' name='spf' {% if formemail.spf.value %} checked {% endif %}>
  237. </div>
  238. <div class='col form-inline'>
  239. <label for='antivirus'>Antivirus:&nbsp;&nbsp;</label>
  240. <input type='checkbox' class='form-check-input' id='antivirus' name='antivirus' {% if formemail.antivirus.value %} checked {% endif %}>
  241. </div>
  242. <div class='col form-inline'>
  243. <label for='blacklist'>blacklist:&nbsp;&nbsp;</label>
  244. <input type='checkbox' class='form-check-input' id='blacklist' name='blacklist' {% if formemail.blacklist.value %} checked {% endif %}>
  245. </div>
  246. <div class='col form-inline'>
  247. <label for='sieve'>sieve:&nbsp;&nbsp;</label>
  248. <input type='checkbox' class='form-check-input' id='sieve' name='sieve' {% if formemail.sieve.value %} checked {% endif %}>
  249. </div>
  250. <div class='col form-inline'>
  251. <label for='sms' class='form-inline'>Sms:&nbsp;&nbsp;</label>
  252. <input type='checkbox' class='form-check-input' id='sms' name='sms' {% if formemail.sms.value %} checked {% endif %}>
  253. </div>
  254. <div class='col form-inline'>
  255. <label for='enabled' class='form-inline'>SendaFile:&nbsp;&nbsp;</label>
  256. <input type='checkbox' class='form-check-input' id='sendafile' name='sendafile' {% if formemail.sendafile.value %} checked {% endif %} >
  257. </div>
  258. </div>
  259. {% endif %}
  260. <hr class='half-rule'>
  261. {% if 'EDITUSEROPTIONS' in securitylist %}
  262. <div class='row form-group'>
  263. <div class='col form-inline'>
  264. <label class='form-check-label' for='livello'>Livello:&nbsp;&nbsp;</label>
  265. <select class='form-control' id='securitylevel' name='securitylevel'>
  266. {% for i in livello %}
  267. <option value='{{ i.id }}' {% if i.id|stringformat:'s' == formemail.securitylevel.value|stringformat:'s' %} selected {% endif %}>{{ i.nome }}</option>
  268. {% endfor %}
  269. </select>
  270. </div>
  271. </div>
  272. <div class='row form-group'>
  273. <div class='col form-check-inline'>
  274. <label class='form-check-label' for='lmtp'>Lmtp Server {% if user.domain.lmtp %}( Lmtp Attivo). {% endif %} </label>
  275. <input class='form-check-input' type='checkbox' id='lmtp' name='lmtp' {% if formemail.lmtp.value %} checked {% endif %}>
  276. </div>
  277. <div class='col form-group'>
  278. <label class='form-check-label' for='lmtp_server'>Lmtp Server: </label>
  279. <select id='lmtp_server' class='form-control' name='lmtp_server'>
  280. <option values=''></option>
  281. {% for i in lmtpserverlist %}
  282. <option value='{{ i.id }}' {% if i.id|stringformat:'s' == formemail.lmtp_server.value|stringformat:'s' %} selected {% endif %}>({{ i.id}}) {{ i.server }}</option>
  283. {% endfor %}
  284. </select>
  285. </div>
  286. <div class='col form-group'>
  287. <label class='form-check-label' for='mail_server'>Mail Server</label>
  288. <select id='mail_server' class='form-control' name='mail_server'>
  289. <option values=''></option>
  290. {% for i in mailserverlist %}
  291. <option value='{{ i.id }}' {% if i.id|stringformat:'s' == formemail.mail_server.value|stringformat:'s' %} selected {% endif %}>({{ i.id }}) {{ i.server }}</option>
  292. {% endfor %}
  293. </select>
  294. </div>
  295. <div class='col form-group'>
  296. <label class='form-check-label' for='sql_remote'>Sql Remote</label>
  297. <select id='sql_remote' class='form-control' name='sql_remote'>
  298. <option values=''></option>
  299. {% for i in sqlremotelist %}
  300. <option value='{{ i.id }}' {% if i.id|stringformat:'s' == formemail.sql_remote.value|stringformat:'s' %} selected {% endif %}>({{ i.id }}) {{ i.server }}</option>
  301. {% endfor %}
  302. </select>
  303. </div>
  304. <div class='col select-wrapper'>
  305. <label class='form-check-label' for='mail_proxy'>Mail Proxy</label>
  306. <select id='mail_proxy' class='form-control' name='mail_proxy'>
  307. <option values=''></option>
  308. {% for i in mailproxylist %}
  309. <option value='{{ i.id }}' {% if i.id|stringformat:'s' == formemail.mail_proxy.value|stringformat:'s' %} selected {% endif %}>({{ i.id }}) {{ i.server }}</option>
  310. {% endfor %}
  311. </select>
  312. </div>
  313. </div>
  314. {% endif %}
  315. {% if 'EDITUSERINFO' in securitylist %}
  316. <div class='row'>
  317. <div class='col'>
  318. <label for='nota'>Note e appunti</label>
  319. <textarea class='form-control' rows='3' id='note' placeholder='note e appunti'>{{ formemail.nota.value }}</textarea>
  320. </div>
  321. </div>
  322. <p></p>
  323. <div class='row'>
  324. <div class='col'>
  325. <label for='quota'>Quota (in Mb):</label>
  326. <input type='text' class='form-control' id='mail_quota' name='mail_quota' value='{{ formemail.mail_quota.value }}' placeholder='0' readonly=''>
  327. </div>
  328. <div class='col'>
  329. <label for='warning_mail_quota'>Spazio Avviso (in Mb):</label>
  330. <input type='text' class='form-control' id='warning_mail_quota' name='warning_mail_quota' value='{{ user.warning_mail_quota }}' placeholder='{{ user.domain.warning_mail_quota }}' {% if not 'EDITUSERWARNINGMAILQUOTA' in securitylist %} readonly='' {% endif %}>
  331. </div>
  332. <div class='col'>
  333. <label for='limit_mail_quota'>Spazio Limite (in Mb):</label>
  334. <input type='text' class='form-control' id='limit_mail_quota' name='limit_mail_quota' value='{{ user.limit_mail_quota }}' placeholder='{{ user.domain.limit_mail_quota }}' {% if not 'EDITUSERWARNINGMAILQUOTA' in securitylist %} readonly='' {% endif %}>
  335. </div>
  336. </div>
  337. <p></p>
  338. <div class='row'>
  339. <div class='col'>
  340. <label for='mail_di_recupero'>Mail di recupero (Inserendo una mail personale, sarà possibile recuperare l'accesso in caso di smarrimento delle credenziali originali)</label>
  341. <input type='text' class='form-control' id='mail_di_recupero' name='mail_di_recupero' value='{{ formemail.mail_di_recupero.value }}' placeholder='mail di recupero password smarrite' {% if not 'EDITUSERINFO' in securitylist %} readonly='' {% endif %}>
  342. </div>
  343. </div>
  344. {% endif %}
  345. <br>
  346. <div class='form-group'>
  347. <div class='row'>
  348. <div class='col'>
  349. <label for='mail_who'>Invio Notifica Credenziali a (attenzione: Stiamo inviando informazioni preziose e sensibili riguardo questa mail):</label>
  350. <input type='text' class='form-control' id='mail_who' name='mail_who' value=''>
  351. </div>
  352. </div>
  353. </div>
  354. <br>
  355. <div class='form-group'>
  356. {% if mailinglist %}
  357. L'utente risulta iscritto alle seguenti liste di distribuzione del dominio:<br>
  358. {% for m in mailinglist %}
  359. {{ m.nome }}@{{ m.dominio.nome }}<br>
  360. {% endfor %}
  361. {% endif %}
  362. </div>
  363. <br>
  364. <div class='btn-group' role='group' aria-label='conferme'>
  365. <button type='submit' class='btn btn-primary'>Conferma</button>
  366. <button type='reset' class='btn btn-secondary'>Reset</button>
  367. <button type='submit' class='btn btn-secondary' name="Ritorno">Ritorno (Senza salvare)</button>
  368. </div>
  369. <div class='row'>
  370. <div class='col'>
  371. {% if formemail.errors %}
  372. <p>Rilevati Errori, impossibile proseguire.</p>
  373. {% for f in formemail %}
  374. {% for e in f.errors %}
  375. <div class="alter alter-danger">
  376. <strong>{{f.label|escape }}: {{ e|escape }}</strong>
  377. </div>
  378. {% endfor %}
  379. {% endfor %}
  380. {% for e in formemail.non_field_errors %}
  381. <div class="alter alter-danger">
  382. <strong>{{ e|escape }}</strong>
  383. </div>
  384. {% endfor %}
  385. {% endif %}
  386. </div>
  387. </div>
  388. </form>
  389. </div>
  390. {% endblock %}