Utente.Edit.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436
  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. <div class='col'>
  144. <label for='sendInfoToMe'>Invia Info a me</label>
  145. <button type='submit' class='form-control btn btn-secondary' name='sendInfoToMe' id='sendInfoToMe' >Invia</button>
  146. </div>
  147. </div>
  148. <div class='row form-group'>
  149. <!-- fino a che il sistema non provvedera' a inviare email
  150. <div class='col'>
  151. <label for='rigenerapassword'>Password Casuale</label>
  152. <input type='checkbox' class='form-control' id='rigenerapassword' name='rigenerapassword' {% if not 'USEREDITPASSWORD' in securitylist %} readonly {% endif %}>
  153. </div>
  154. <div class='col'>
  155. <label for='invioparametri'>Invia Parametri</label>
  156. <input type='checkbox' class='form-control' id='inviaparametri' name='inviaparametri'>
  157. </div>
  158. <div class='col'>
  159. <label for='emailtest'>Invia Mail di test</label>
  160. <input type='checkbox' class='form-control' id='emailtest' name='emailtest'>
  161. </div>
  162. -->
  163. </div>
  164. <hr class='half-rule'>
  165. <div class='row form-group'>
  166. {% if 'USEREDITENABLED' in securitylist %}
  167. <div class='col form-inline'>
  168. <label class='form-check-label' for='enabled'>Account Abilitato:&nbsp;&nbsp;</label>
  169. <input type='checkbox' class='form-check-input' id='enabled' name='enabled' {% if formemail.enabled.value %} checked {% endif %}>
  170. </div>
  171. {% endif %}
  172. {% if 'USERTOBEDELETED' in securitylist and 'USERTOBERECOVERED' in securitylist %}
  173. <div class='col form-inline'>
  174. <label class='tobedeleted'>Da Eliminare:&nbsp;&nbsp;</label>
  175. <input type='checkbox' class='form-check-input' id='tobedeleted' name='tobedeleted' {% if formemail.tobedeleted.value %} checked {% endif %}>
  176. </div>
  177. {% elif 'USERTOBEDELETED' in securitylist and formemail.tobedelete.value %}
  178. <div class='col form-inline'>
  179. <label class='tobedeleted'>Da Eliminare:&nbsp;&nbsp;</label>
  180. <input type='checkbox' class='form-check-input' id='tobedeleted' name='tobedeleted' {% if formemail.tobedeleted.value %} checked {% endif %}>
  181. </div>
  182. {% elif 'USERTOBEDELETED' in securitylist %}
  183. <div class='col form-inline'>
  184. <label class='tobedeleted'>Da Eliminare:&nbsp;&nbsp;</label>
  185. <input type='checkbox' class='form-check-input' id='tobedeleted' name='tobedeleted' {% if formemail.tobedeleted.value %} checked {% endif %}>
  186. </div>
  187. {% endif %}
  188. <hr class='half-rule'>
  189. </div>
  190. {% if 'EDITUSEROPTIONS' in securitylist %}
  191. <div class='form-group'>
  192. <div class='form-inline'>
  193. <label class='form-input-label' for='forward'>Forward email a (questa opzione supera le regole della webmail): </label>
  194. <input type='text' clas=form-control' id='forward' name='forward' value="{{ formemail.forward.value }}" size=64></input>
  195. </div>
  196. </div>
  197. <div class='row form-group'>
  198. <div class='col form-inline'>
  199. <label class='form-check-label' for='pop3'>Pop3:&nbsp;&nbsp;</label>
  200. <input type='checkbox' class='form-check-input' id='pop3' name='pop3' {% if formemail.pop3.value %} checked {% endif %}>
  201. </div>
  202. <div class="col form-inline">
  203. <label class='form-check-label' for='imap'>Imap:&nbsp;&nbsp;</label>
  204. <input type='checkbox' class='form-check-input' id='imap' name='imap' {% if formemail.imap.value %} checked {% endif %}>
  205. </div>
  206. <div class="col form-inline">
  207. <label class='form-check-label' for='smtp'>Smtp:&nbsp;&nbsp;</label>
  208. <input type='checkbox' class='form-check-input' id='smtp' name='smtp' {% if formemail.smtp.value %}checked{% endif %}>
  209. </div>
  210. <div class="col form-inline">
  211. <label class='form-check-label' for='smtp_relay'>Relay:&nbsp;&nbsp;</label>
  212. <input type='checkbox' class='form-check-input' id='smtp_relay' name='smtp_relay' {% if formemail.smtp_relay.value %} checked {% endif %}>
  213. </div>
  214. <div class='col form-inline'>
  215. <label for='webmail'>Webmail:&nbsp;&nbsp;</label>
  216. <input type='checkbox' class='form-check-input' id='webmail' name='webmail' {% if formemail.webmail.value %} checked {% endif %}>
  217. </div>
  218. <div class='col form-inline'>
  219. <label for='nextcloud'>Nextcloud:&nbsp;&nbsp;</label>
  220. <input type='checkbox' class='form-check-input' id='nextcloud' name='nextcloud' {% if formemail.nextcloud.value %} checked {% endif %}>
  221. </div>
  222. <div class='col form-inline'>
  223. <label for='nextcloud_pwd'>Nextcloud Pass Sync:&nbsp;&nbsp;</label>
  224. <input type='checkbox' class='form-check-input' id='nextcloud_pwd' name='nextcloud_pwd' {% if formemail.nextcloud_pwd.value %} checked {% endif %}>
  225. </div>
  226. </div>
  227. <div class='row form-group'>
  228. <div class='col form-inline'>
  229. <label for='spf'>Spf:&nbsp;&nbsp;</label>
  230. <input type='checkbox' class='form-check-input' id='spf' name='spf' {% if formemail.spf.value %} checked {% endif %}>
  231. </div>
  232. <div class='col form-inline'>
  233. <label for='antivirus'>Antivirus:&nbsp;&nbsp;</label>
  234. <input type='checkbox' class='form-check-input' id='antivirus' name='antivirus' {% if formemail.antivirus.value %} checked {% endif %}>
  235. </div>
  236. <div class='col form-inline'>
  237. <label for='blacklist'>blacklist:&nbsp;&nbsp;</label>
  238. <input type='checkbox' class='form-check-input' id='blacklist' name='blacklist' {% if formemail.blacklist.value %} checked {% endif %}>
  239. </div>
  240. <div class='col form-inline'>
  241. <label for='sieve'>sieve:&nbsp;&nbsp;</label>
  242. <input type='checkbox' class='form-check-input' id='sieve' name='sieve' {% if formemail.sieve.value %} checked {% endif %}>
  243. </div>
  244. <div class='col form-inline'>
  245. <label for='sms' class='form-inline'>Sms:&nbsp;&nbsp;</label>
  246. <input type='checkbox' class='form-check-input' id='sms' name='sms' {% if formemail.sms.value %} checked {% endif %}>
  247. </div>
  248. <div class='col form-inline'>
  249. <label for='enabled' class='form-inline'>SendaFile:&nbsp;&nbsp;</label>
  250. <input type='checkbox' class='form-check-input' id='sendafile' name='sendafile' {% if formemail.sendafile.value %} checked {% endif %} >
  251. </div>
  252. </div>
  253. {% endif %}
  254. <hr class='half-rule'>
  255. {% if 'EDITUSEROPTIONS' in securitylist %}
  256. <div class='row form-group'>
  257. <div class='col form-inline'>
  258. <label class='form-check-label' for='livello'>Livello:&nbsp;&nbsp;</label>
  259. <select class='form-control' id='securitylevel' name='securitylevel'>
  260. {% for i in livello %}
  261. <option value='{{ i.id }}' {% if i.id|stringformat:'s' == formemail.securitylevel.value|stringformat:'s' %} selected {% endif %}>{{ i.nome }}</option>
  262. {% endfor %}
  263. </select>
  264. </div>
  265. </div>
  266. <div class='row form-group'>
  267. <div class='col form-check-inline'>
  268. <label class='form-check-label' for='lmtp'>Lmtp Server {% if user.domain.lmtp %}( Lmtp Attivo). {% endif %} </label>
  269. <input class='form-check-input' type='checkbox' id='lmtp' name='lmtp' {% if formemail.lmtp.value %} checked {% endif %}>
  270. </div>
  271. <div class='col form-group'>
  272. <label class='form-check-label' for='lmtp_server'>Lmtp Server: </label>
  273. <select id='lmtp_server' class='form-control' name='lmtp_server'>
  274. <option values=''></option>
  275. {% for i in lmtpserverlist %}
  276. <option value='{{ i.id }}' {% if i.id|stringformat:'s' == formemail.lmtp_server.value|stringformat:'s' %} selected {% endif %}>({{ i.id}}) {{ i.server }}</option>
  277. {% endfor %}
  278. </select>
  279. </div>
  280. <div class='col form-group'>
  281. <label class='form-check-label' for='mail_server'>Mail Server</label>
  282. <select id='mail_server' class='form-control' name='mail_server'>
  283. <option values=''></option>
  284. {% for i in mailserverlist %}
  285. <option value='{{ i.id }}' {% if i.id|stringformat:'s' == formemail.mail_server.value|stringformat:'s' %} selected {% endif %}>({{ i.id }}) {{ i.server }}</option>
  286. {% endfor %}
  287. </select>
  288. </div>
  289. <div class='col form-group'>
  290. <label class='form-check-label' for='sql_remote'>Sql Remote</label>
  291. <select id='sql_remote' class='form-control' name='sql_remote'>
  292. <option values=''></option>
  293. {% for i in sqlremotelist %}
  294. <option value='{{ i.id }}' {% if i.id|stringformat:'s' == formemail.sql_remote.value|stringformat:'s' %} selected {% endif %}>({{ i.id }}) {{ i.server }}</option>
  295. {% endfor %}
  296. </select>
  297. </div>
  298. <div class='col select-wrapper'>
  299. <label class='form-check-label' for='mail_proxy'>Mail Proxy</label>
  300. <select id='mail_proxy' class='form-control' name='mail_proxy'>
  301. <option values=''></option>
  302. {% for i in mailproxylist %}
  303. <option value='{{ i.id }}' {% if i.id|stringformat:'s' == formemail.mail_proxy.value|stringformat:'s' %} selected {% endif %}>({{ i.id }}) {{ i.server }}</option>
  304. {% endfor %}
  305. </select>
  306. </div>
  307. </div>
  308. {% endif %}
  309. {% if 'EDITUSERINFO' in securitylist %}
  310. <div class='row'>
  311. <div class='col'>
  312. <label for='nota'>Note e appunti</label>
  313. <textarea class='form-control' rows='3' id='note' placeholder='note e appunti'>{{ formemail.nota.value }}</textarea>
  314. </div>
  315. </div>
  316. <p></p>
  317. <div class='row'>
  318. <div class='col'>
  319. <label for='quota'>Quota (in Mb) al {{ formemail.date_mail_quota.value }}:</label>
  320. <input type='text' class='form-control' id='mail_quota' name='mail_quota' value='{{ formemail.mail_quota.value }}' placeholder='0' readonly=''>
  321. </div>
  322. <div class='col'>
  323. <label for='warning_mail_quota'>Spazio Avviso (in Mb):</label>
  324. <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 %}>
  325. </div>
  326. <div class='col'>
  327. <label for='limit_mail_quota'>Spazio Limite (in Mb):</label>
  328. <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 %}>
  329. </div>
  330. </div>
  331. <p></p>
  332. <div class='row'>
  333. <div class='col'>
  334. <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>
  335. <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 %}>
  336. </div>
  337. </div>
  338. {% endif %}
  339. <br>
  340. <div class='form-group'>
  341. <div class='row'>
  342. <div class='col'>
  343. <label for='mail_who'>Invio Notifica Credenziali a (attenzione: Stiamo inviando informazioni preziose e sensibili riguardo questa mail):</label>
  344. <input type='text' class='form-control' id='mail_who' name='mail_who' value=''>
  345. </div>
  346. </div>
  347. </div>
  348. <br>
  349. <div class='form-group'>
  350. {% if mailinglist %}
  351. L'utente risulta iscritto alle seguenti liste di distribuzione del dominio:<br>
  352. {% for m in mailinglist %}
  353. {{ m.nome }}@{{ m.dominio.nome }}<br>
  354. {% endfor %}
  355. {% endif %}
  356. </div>
  357. <br>
  358. <div class='btn-group' role='group' aria-label='conferme'>
  359. <button type='submit' class='btn btn-primary'>Conferma</button>
  360. <button type='reset' class='btn btn-secondary'>Reset</button>
  361. <button type='submit' class='btn btn-secondary' name="Ritorno">Ritorno (Senza salvare)</button>
  362. </div>
  363. <div class='row'>
  364. <div class='col'>
  365. {% if formemail.errors %}
  366. <p>Rilevati Errori, impossibile proseguire.</p>
  367. {% for f in formemail %}
  368. {% for e in f.errors %}
  369. <div class="alter alter-danger">
  370. <strong>{{f.label|escape }}: {{ e|escape }}</strong>
  371. </div>
  372. {% endfor %}
  373. {% endfor %}
  374. {% for e in formemail.non_field_errors %}
  375. <div class="alter alter-danger">
  376. <strong>{{ e|escape }}</strong>
  377. </div>
  378. {% endfor %}
  379. {% endif %}
  380. </div>
  381. </div>
  382. </form>
  383. </div>
  384. {% endblock %}