edit_server.html 48 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306
  1. <!-- Begin toolbar -->
  2. <div class="l-center edit">
  3. <div class="l-sort clearfix">
  4. <div class="l-unit-toolbar__buttonstrip">
  5. <a class="ui-button cancel" dir="ltr" id="btn-back" href="/list/server/"><i class="fas fa-arrow-left status-icon blue"></i><?=_('Back');?></a>
  6. <a href="/list/ip/" class="ui-button cancel" dir="ltr"><i class="fas fa-ethernet status-icon blue"></i><?=_('IP');?></a>
  7. <?php if ((isset($_SESSION['FIREWALL_SYSTEM'])) && (!empty($_SESSION['FIREWALL_SYSTEM']))) {?>
  8. <a href="/list/firewall/" class="ui-button cancel" dir="ltr"><i class="fas fa-shield-alt status-icon red"></i><?=_('Firewall');?></a>
  9. <?php }?>
  10. </div>
  11. <div class="l-unit-toolbar__buttonstrip float-right">
  12. <a href="#" class="ui-button" data-action="submit" data-id="vstobjects"><i class="fas fa-save status-icon purple"></i><?=_('Save');?></a>
  13. </div>
  14. </div>
  15. </div>
  16. <!-- End toolbar -->
  17. <div class="l-separator"></div>
  18. <div class="l-center animated fadeIn">
  19. <form id="vstobjects" name="v_configure_server" method="post">
  20. <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
  21. <input type="hidden" name="save" value="save" />
  22. <table class="data mode-add">
  23. <tr class="data-add">
  24. <td class="data-dotted">
  25. <table class="data-col1">
  26. <tr>
  27. <td></td>
  28. </tr>
  29. </table>
  30. </td>
  31. <td class="data-dotted">
  32. <table class="data-col2" width="600px">
  33. <tr>
  34. <td class="step-top">
  35. <span class="page-title"><?=_('Configuring Server');?></span>
  36. </td>
  37. </tr>
  38. <tr>
  39. <td>
  40. <?php
  41. if (!empty($_SESSION['error_msg'])) {
  42. $msg_icon = 'fa-exclamation-circle status-icon red';
  43. $msg_text = htmlentities($_SESSION['error_msg']);
  44. $msg_id = 'vst-error';
  45. } else {
  46. if (!empty($_SESSION['ok_msg'])) {
  47. $msg_icon = 'fa-check-circle status-icon green';
  48. $msg_text = $_SESSION['ok_msg'];
  49. $msg_id = 'vst-ok';
  50. }
  51. }
  52. ?>
  53. <span class="<?=$msg_id;?>"> <i class="fas <?=$msg_icon;?>"></i> <?=$msg_text;?></span>
  54. <br><br>
  55. </td>
  56. </tr>
  57. <!-- Basic options tab -->
  58. <tr>
  59. <td class="vst-text input-label step-top advanced-options">
  60. <a href="javascript:elementHideShow('basic');" class="vst-text">
  61. <i class="fas fa-cog"></i><b><?=_('Basic options');?> <img src="/images/arrow.png"></b>
  62. </a>
  63. </td>
  64. </tr>
  65. <tr>
  66. <td class="vst-text input-label step-left">
  67. <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="basic">
  68. <tr>
  69. <td class="vst-text step-top">
  70. <?=_('Hostname');?>
  71. </td>
  72. </tr>
  73. <tr>
  74. <td>
  75. <input type="text" size="20" class="vst-input" name="v_hostname" value="<?=htmlentities(trim($v_hostname, "'"))?>">
  76. <br><br>
  77. </td>
  78. </tr>
  79. <tr>
  80. <td class="vst-text input-label">
  81. <?=_('Time Zone');?>
  82. </td>
  83. </tr>
  84. <tr>
  85. <td>
  86. <select class="vst-list" name="v_timezone">
  87. <?php
  88. foreach ($v_timezones as $key => $value) {
  89. echo "\t\t\t\t<option value=\"".$key."\"";
  90. if ((!empty($v_timezone)) && ( $key == $v_timezone)){
  91. echo ' selected' ;
  92. }
  93. if ((!empty($v_timezone)) && ( $key == $_POST['v_timezone'])){
  94. echo ' selected' ;
  95. }
  96. echo ">".$value."</option>\n";
  97. }
  98. ?>
  99. </select>
  100. <br><br>
  101. </td>
  102. </tr>
  103. <tr>
  104. <td class="vst-text input-label">
  105. <?=_('Theme');?>
  106. </td>
  107. </tr>
  108. <tr>
  109. <td>
  110. <select class="vst-list" name="v_theme">
  111. <?php
  112. foreach ($theme as $key => $value) {
  113. echo "\t\t\t\t<option value=\"".$value."\"";
  114. if ((!empty($_SESSION['THEME'])) && ( $value == $_SESSION['THEME'])){
  115. echo ' selected' ;
  116. }
  117. if ((!empty($_SESSION['THEME'])) && ( $value == $_POST['v_theme'])){
  118. echo ' selected' ;
  119. }
  120. echo ">".$value."</option>\n";
  121. }
  122. ?>
  123. </select>
  124. </td>
  125. </tr>
  126. <tr>
  127. <td class="vst-text input-label">
  128. <label><input type="checkbox" size="20" class="vst-checkbox" name="v_policy_user_change_theme" <?php if ((isset($_SESSION['POLICY_USER_CHANGE_THEME'])) && (!empty($_SESSION['POLICY_USER_CHANGE_THEME'])) && ($_SESSION['POLICY_USER_CHANGE_THEME'] == "no")) echo "checked=yes" ?>><?=_('Set as selected theme for all users');?></label>
  129. </td>
  130. </tr>
  131. <tr>
  132. <td class="vst-text input-label step-top">
  133. <?=_('Default Language');?>
  134. </td>
  135. </tr>
  136. <tr>
  137. <td>
  138. <select class="vst-list" name="v_language">
  139. <?php
  140. foreach ($languages as $key => $value) {
  141. echo "\n\t\t\t\t\t\t\t\t\t<option value=\"".$key."\"";
  142. if ( $key == $v_language ){
  143. echo 'selected' ;
  144. }
  145. if (( $key == $_SESSION['LANGUAGE'] && (empty($v_language)) )) {
  146. echo 'selected' ;
  147. }
  148. echo ">".htmlentities($value)."</option>\n";
  149. }
  150. ?>
  151. </select>
  152. </td>
  153. </tr>
  154. <tr>
  155. <td class="vst-text input-label">
  156. <label><input type="checkbox" size="20" class="vst-checkbox" name="v_language_update"><?=_('Set as default language for all users');?></label>
  157. </td>
  158. </tr>
  159. <tr>
  160. <td>
  161. <br><br>
  162. </td>
  163. </tr>
  164. </table>
  165. </td>
  166. </tr>
  167. <!-- Updates tab -->
  168. <tr>
  169. <td class="vst-text input-label step-top advanced-options">
  170. <a href="javascript:elementHideShow('version');" class="vst-text">
  171. <i class="fas fa-code-branch"></i><b><?=_('Updates');?> <img src="/images/arrow.png"></b>
  172. </a>
  173. </td>
  174. </tr>
  175. <tr>
  176. <td class="vst-text input-label step-left">
  177. <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="version">
  178. <tr>
  179. <td class="vst-text step-top">
  180. <?=_('Version'); ?>: <span class="optional"><?=$_SESSION['VERSION'];?></span>
  181. </td>
  182. </tr>
  183. <?php if ($_SESSION['RELEASE_BRANCH'] !== 'release') {?>
  184. <tr>
  185. <td class="vst-text">
  186. <?=_('Release'); ?>: <span class="optional"><?=$_SESSION['RELEASE_BRANCH'];?></span>
  187. </td>
  188. </tr>
  189. <?php } ?>
  190. <tr>
  191. <td class="vst-text input-label">
  192. <?=_('Options'); ?>
  193. </td>
  194. </tr>
  195. <?php if ($_SESSION['RELEASE_BRANCH'] != "release") { ?>
  196. <tr>
  197. <td>
  198. <label><input type="checkbox" size="20" class="vst-checkbox" name="v_debug_mode" <?php if ((isset($_SESSION['DEBUG_MODE'])) && (!empty($_SESSION['DEBUG_MODE'])) && ($_SESSION['DEBUG_MODE'] == "true")) echo "checked=yes" ?>><?=_('Enable debug mode');?></label>
  199. </td>
  200. </tr>
  201. <?php } ?>
  202. <tr>
  203. <td>
  204. <label><input type="checkbox" size="20" class="vst-checkbox" name="v_experimental_features" <?php if ((isset($_SESSION['POLICY_SYSTEM_ENABLE_BACON'])) && (!empty($_SESSION['POLICY_SYSTEM_ENABLE_BACON'])) && ($_SESSION['POLICY_SYSTEM_ENABLE_BACON'] == "true")) echo "checked=yes" ?>><?=_('Enable preview features');?></label> <span class="hint">(<a href="/list/server/preview/"><?=_('View');?></a>)</span>
  205. </td>
  206. </tr>
  207. <tr>
  208. <td>
  209. <label><input type="checkbox" size="20" class="vst-checkbox" name="v_upgrade_send_notification_email" <?php if ((isset($_SESSION['UPGRADE_SEND_EMAIL'])) && (!empty($_SESSION['UPGRADE_SEND_EMAIL'])) && ($_SESSION['UPGRADE_SEND_EMAIL'] == "true")) echo "checked=yes" ?>><?=_('SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL');?></label>
  210. </td>
  211. </tr>
  212. <tr>
  213. <td>
  214. <label><input type="checkbox" size="20" class="vst-checkbox" name="v_upgrade_send_email_log" <?php if ((isset($_SESSION['UPGRADE_SEND_EMAIL_LOG'])) && (!empty($_SESSION['UPGRADE_SEND_EMAIL_LOG'])) && ($_SESSION['UPGRADE_SEND_EMAIL_LOG'] == "true")) echo "checked=yes" ?>><?=_('SYSTEM_UPGRADE_SEND_EMAIL_LOG');?></label>
  215. </td>
  216. </tr>
  217. <tr>
  218. <td>
  219. <br />
  220. </td>
  221. </tr>
  222. </table>
  223. </td>
  224. </tr>
  225. <!-- Web Server tab -->
  226. <tr>
  227. <td class="vst-text input-label step-top advanced-options">
  228. <a href="javascript:elementHideShow('web');" class="vst-text">
  229. <i class="fas fa-globe-americas"></i><b><?=_('Web Server');?> <img src="/images/arrow.png"></b>
  230. </a>
  231. </td>
  232. </tr>
  233. <tr>
  234. <td class="vst-text input-label step-left">
  235. <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="web" class="step-top">
  236. <?php if (!empty($_SESSION['PROXY_SYSTEM'])) { ?>
  237. <tr>
  238. <td class="vst-text">
  239. <?=_('Proxy Server');?>: <span class="optional"><?=$_SESSION['PROXY_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['PROXY_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
  240. </td>
  241. </tr>
  242. <?php } ?>
  243. <?php if (!empty($_SESSION['WEB_SYSTEM'])) { ?>
  244. <tr>
  245. <td class="vst-text">
  246. <?=_('Web Server');?>: <span class="optional"><?=$_SESSION['WEB_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['WEB_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
  247. </td>
  248. </tr>
  249. <?php } ?>
  250. <?php if (!empty($_SESSION['WEB_BACKEND'])) { ?>
  251. <tr>
  252. <td class="vst-text">
  253. <?=_('Backend Server');?>: <span class="optional"><?=$_SESSION['WEB_BACKEND']; ?> <a href="/edit/server/<? echo $_SESSION['WEB_BACKEND'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
  254. </td>
  255. </tr>
  256. <?php } ?>
  257. <?php if (!empty($_SESSION['WEB_BACKEND_POOL'])) { ?>
  258. <tr>
  259. <td class="vst-text">
  260. <?=_('Backend Pool Mode');?>: <span class="optional"><?=$_SESSION['WEB_BACKEND_POOL']; ?></span>
  261. </td>
  262. </tr>
  263. <?php } ?>
  264. <?php if(count($v_php_versions)): ?>
  265. <tr>
  266. <td class="vst-text step-top">
  267. <?=_('Enabled multi PHP versions');?>
  268. <span class="alert alert-info alert-with-icon">
  269. <i class="fas fa-info"></i>
  270. <?=_('Please wait while php is installed or removed');?>
  271. </span>
  272. </td>
  273. </tr>
  274. <?php foreach($v_php_versions as $php_version): ?>
  275. <tr>
  276. <td class="vst-text input-label">
  277. <input type="checkbox" size="20" class="vst-checkbox"
  278. <?=$php_version->installed?'checked':''; ?>
  279. <?=$php_version->protected?'disabled':''; ?>
  280. id="<?=$php_version->name?>"
  281. name="v_php_versions[<?=$php_version->tpl?>]">
  282. <label for="<?=$php_version->name?>"><?=$php_version->name?></label>
  283. </td>
  284. </tr>
  285. <?php foreach($php_version->usedby as $wd_user => $wd_domains ): ?>
  286. <?php foreach($wd_domains as $wd_domain ): ?>
  287. <tr>
  288. <td class="vst-text" style="border: 1px lightgrey; padding:0 10px;">
  289. <span>
  290. <i class="fas fa-user"></i>
  291. <?=$wd_user;?>
  292. </span>
  293. <span class="optional" style="float:right"><?=$wd_domain;?></span>
  294. </td>
  295. </tr>
  296. <?php endforeach; ?>
  297. <?php endforeach; ?>
  298. <?php endforeach; ?>
  299. <?php endif; ?>
  300. <tr>
  301. <td>
  302. <br />
  303. </td>
  304. </tr>
  305. </table>
  306. </td>
  307. </tr>
  308. <!-- DNS Server tab -->
  309. <tr>
  310. <td class="vst-text input-label step-top advanced-options">
  311. <a href="javascript:elementHideShow('dns');" class="vst-text">
  312. <i class="fas fa-atlas"></i><b><?=_('DNS Server');?> <img src="/images/arrow.png"></b>
  313. </a>
  314. </td>
  315. </tr>
  316. <tr>
  317. <td class="vst-text input-label step-left">
  318. <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="dns">
  319. <tr>
  320. <td class="vst-text step-top">
  321. <?=_('DNS Server');?>: <span class="optional"><?=$_SESSION['DNS_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['DNS_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
  322. </td>
  323. </tr>
  324. <tr>
  325. <td class="vst-text">
  326. <?=_('DNS Cluster');?>: <span class="optional"><?php if ($v_dns_cluster == 'yes') { echo _('Yes'); } else { echo _('No'); } ?></span>
  327. </td>
  328. </tr>
  329. <?php if ($v_dns_cluster == 'yes') {
  330. $i = 0;
  331. foreach ($dns_cluster as $key => $value) {
  332. $i++;
  333. ?>
  334. <tr>
  335. <td class="vst-text">
  336. <?=_('Host'). ' #'.$i ?>
  337. </td>
  338. </tr>
  339. <tr>
  340. <td class="vst-text">
  341. <input type="text" size="20" class="vst-input" name="v_dns_remote_host" value="<?=$key; ?>" disabled>
  342. </td>
  343. </tr>
  344. <?php } } ?>
  345. <tr>
  346. <td><br></td>
  347. </tr>
  348. </table>
  349. </td>
  350. </tr>
  351. <!-- Mail Server tab -->
  352. <tr>
  353. <td class="vst-text input-label step-top advanced-options">
  354. <a href="javascript:elementHideShow('mail');" class="vst-text">
  355. <i class="fas fa-mail-bulk"></i><b><?=_('Mail Server');?> <img src="/images/arrow.png"></b>
  356. </a>
  357. </td>
  358. </tr>
  359. <tr>
  360. <td class="vst-text input-label step-left">
  361. <table style="display:<?php if (empty($v_mail_adv)) echo 'none';?> ;" id="mail">
  362. <tr>
  363. <td class="vst-text step-top">
  364. <?=_('Mail Server');?>: <span class="optional"><?=$_SESSION['MAIL_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['MAIL_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
  365. </td>
  366. </tr>
  367. <?php if (!empty($_SESSION['ANTIVIRUS_SYSTEM'])) { ?>
  368. <tr>
  369. <td class="vst-text">
  370. <?=_('Antivirus');?>: <span class="optional"><?=$_SESSION['ANTIVIRUS_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['ANTIVIRUS_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
  371. </td>
  372. </tr>
  373. <?php } ?>
  374. <?php if (!empty($_SESSION['ANTISPAM_SYSTEM'])) { ?>
  375. <tr>
  376. <td class="vst-text">
  377. <?=_('AntiSpam');?>: <span class="optional"><?=$_SESSION['ANTISPAM_SYSTEM']; ?> <a href="/edit/server/<? echo $_SESSION['ANTISPAM_SYSTEM'] ?>/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a></span>
  378. </td>
  379. </tr>
  380. <?php } ?>
  381. <?php if($_SESSION['WEBMAIL_SYSTEM']){?>
  382. <tr>
  383. <td class="vst-text step-top">
  384. <?=_('Webmail URL');?> <span class="hint">(<?=$_SESSION['WEBMAIL_ALIAS'];?>.example.com)</span>
  385. </td>
  386. </tr>
  387. <tr>
  388. <td>
  389. <input type="text" size="20" class="vst-input" name="v_webmail_alias" value="<?=$_SESSION['WEBMAIL_ALIAS']; ?>">
  390. <br><br>
  391. </td>
  392. </tr>
  393. <?php } ?>
  394. <tr>
  395. <td class="vst-text">
  396. <label>
  397. <input type="checkbox" size="20" class="vst-checkbox" name="v_smtp_relay" <?php if ($v_smtp_relay == 'true') echo "checked=yes"; ?> onclick="javascript:elementHideShow('smtp_relay_table');"><?=_('Global SMTP Relay');?>
  398. </label>
  399. </td>
  400. </tr>
  401. <tr>
  402. <td class="step-left">
  403. <table style="display:<?php if ($v_smtp_relay == 'true') {echo 'block';} else {echo 'none';} ?>;" id="smtp_relay_table">
  404. <tr>
  405. <td class="input-label vst-text">
  406. <?=_('Host');?>
  407. </td>
  408. </tr>
  409. <tr>
  410. <td>
  411. <input type="text" size="20" class="vst-input" name="v_smtp_relay_host" value="<?=htmlentities(trim($v_smtp_relay_host, "'"))?>">
  412. </td>
  413. </tr>
  414. <tr>
  415. <td class="input-label vst-text">
  416. <?=_('Port');?>
  417. </td>
  418. </tr>
  419. <tr>
  420. <td>
  421. <input type="text" size="20" class="vst-input" name="v_smtp_relay_port" value="<?=htmlentities(trim($v_smtp_relay_port, "'"))?>">
  422. </td>
  423. </tr>
  424. <tr>
  425. <td class="input-label vst-text">
  426. <?=_('Username');?>
  427. </td>
  428. </tr>
  429. <tr>
  430. <td>
  431. <input type="text" size="20" class="vst-input" name="v_smtp_relay_user" value="<?=htmlentities(trim($v_smtp_relay_user, "'"))?>">
  432. </td>
  433. </tr>
  434. <tr>
  435. <td class="input-label vst-text">
  436. <?=_('Password');?>
  437. </td>
  438. </tr>
  439. <tr>
  440. <td>
  441. <input type="text" size="20" class="vst-input password" name="v_smtp_relay_pass">
  442. </td>
  443. </tr>
  444. </table>
  445. </td>
  446. </tr>
  447. <tr>
  448. <td>
  449. <br>
  450. </td>
  451. </tr>
  452. </table>
  453. </td>
  454. </tr>
  455. <!-- Databases tab -->
  456. <tr>
  457. <td class="vst-text input-label step-top advanced-options">
  458. <a href="javascript:elementHideShow('db');" class="vst-text">
  459. <i class="fas fa-database"></i><b><?=_('Databases');?> <img src="/images/arrow.png"></b>
  460. </a>
  461. </td>
  462. </tr>
  463. <tr>
  464. <td class="vst-text input-label step-left">
  465. <table style="display:<?php if (empty($v_db_adv)) echo 'none';?> ;" id="db">
  466. <tr>
  467. <td class="vst-text step-top">
  468. <?=_('MySQL Support');?> <a href="/edit/server/mysql/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a>
  469. </td>
  470. </tr>
  471. <tr>
  472. <td>
  473. <select class="vst-list" name="v_mysql" disabled>
  474. <option value='no'><?=_('No'); ?></option>
  475. <option value='yes' <?php if($v_mysql == 'yes') echo 'selected' ?>><?=_('Yes'); ?></option>
  476. </select>
  477. <br><br>
  478. </td>
  479. </tr>
  480. <!-- MySQL / MariaDB Options-->
  481. <?php if ($v_mysql == 'yes') { ?>
  482. <tr>
  483. <td class="vst-text">
  484. <?=_('phpMyAdmin URL');?>
  485. </td>
  486. </tr>
  487. <tr>
  488. <td>
  489. <input type="text" size="20" class="vst-input" name="v_mysql_url" value="<?=$_SESSION['DB_PMA_ALIAS']; ?>">
  490. <br><br>
  491. </td>
  492. </tr>
  493. <?php if ($_SESSION['POLICY_SYSTEM_ENABLE_BACON'] === 'true' && 1 != 1) {
  494. //disable for 1.4.0 release due some bugs
  495. ?>
  496. <tr>
  497. <td class="vst-text">
  498. <?=_('phpMyAdmin Single Sign On');?> <span class="hint">(Preview)</span>
  499. </td>
  500. </tr>
  501. <tr>
  502. <td>
  503. <select class="vst-list" name="v_phpmyadmin_key">
  504. <option value='no'><?=_('Disabled'); ?></option>
  505. <option value='yes' <?php if($_POST['v_phpmyadmin_key'] == "yes" || $_SESSION['PHPMYADMIN_KEY'] != ''){ echo 'selected="selected"'; }; ?>><?=_('Enabled'); ?></option>
  506. </select>
  507. <br />
  508. <br />
  509. </td>
  510. </tr>
  511. <?php } ?>
  512. <?php } ?>
  513. <?php if ($v_mysql == 'yes') {
  514. $i = 0;
  515. foreach ($v_mysql_hosts as $value) {
  516. $i++;
  517. ?>
  518. <tr>
  519. <td class="vst-text step-left">
  520. <?=_('Host'). ' #'.$i ?>
  521. </td>
  522. </tr>
  523. <tr>
  524. <td class="step-left">
  525. <input type="text" size="20" class="vst-input" name="v_mysql_host" value="<?=$value['HOST']?>" disabled>
  526. <br><br>
  527. </td>
  528. </tr>
  529. <tr>
  530. <td class="vst-text step-left">
  531. <?=_('Password');?>
  532. </td>
  533. </tr>
  534. <tr>
  535. <td class="step-left">
  536. <input type="text" size="20" class="vst-input password" name="v_mysql_password" value="">
  537. <br><br>
  538. </td>
  539. </tr>
  540. <tr>
  541. <td class="vst-text step-left">
  542. <?=_('Maximum Number Of Databases');?>
  543. </td>
  544. </tr>
  545. <tr>
  546. <td class="step-left">
  547. <input type="text" size="20" class="vst-input" name="v_mysql_max" value="<?=$value['MAX_DB']; ?>" disabled>
  548. <br><br>
  549. </td>
  550. </tr>
  551. <tr>
  552. <td class="vst-text step-left">
  553. <?=_('Current Number Of Databases');?>
  554. </td>
  555. </tr>
  556. <tr>
  557. <td class="step-left">
  558. <input type="text" size="20" class="vst-input" name="v_mysql_max" value="<?=$value['U_DB_BASES']; ?>" disabled>
  559. <br><br>
  560. </td>
  561. </tr>
  562. <?php }} ?>
  563. <!-- PostgreSQL Options-->
  564. <?php if ($v_pgsql == 'yes') { ?>
  565. <tr>
  566. <td class="vst-text input-label">
  567. <?=_('PostgreSQL Support');?> <a href="/edit/server/postgresql/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a>
  568. </td>
  569. </tr>
  570. <tr>
  571. <td>
  572. <select class="vst-list" name="v_pgsql" disabled>
  573. <option value='no'><?=_('No'); ?></option>
  574. <option value='yes' <?php if($v_pgsql == 'yes') echo 'selected' ?>><?=_('Yes'); ?></option>
  575. </select>
  576. <br><br>
  577. </td>
  578. </tr>
  579. <tr>
  580. <td class="vst-text">
  581. <?=_('phpPgAdmin URL');?>
  582. </td>
  583. </tr>
  584. <tr>
  585. <td>
  586. <input type="text" size="20" class="vst-input" name="v_pgsql_url" value="<?=$_SESSION['DB_PGA_ALIAS']; ?>">
  587. <br><br>
  588. </td>
  589. </tr>
  590. <?php } ?>
  591. <?php if ($v_pgsql == 'yes') {
  592. $i = 0;
  593. foreach ($v_pgsql_hosts as $value) {
  594. $i++;
  595. ?>
  596. <tr>
  597. <td class="vst-text step-left">
  598. <?=_('Host'). ' #'.$i ?>
  599. </td>
  600. </tr>
  601. <tr>
  602. <td class="step-left">
  603. <input type="text" size="20" class="vst-input" name="v_pgsql_host" value="<?=$value['HOST']?>" disabled>
  604. <br><br>
  605. </td>
  606. </tr>
  607. <tr>
  608. <td class="vst-text step-left">
  609. <?=_('Maximum Number Of Databases');?>
  610. </td>
  611. </tr>
  612. <tr>
  613. <td class="step-left">
  614. <input type="text" size="20" class="vst-input" name="v_psql_max" value="<?=$value['MAX_DB']; ?>" disabled>
  615. <br><br>
  616. </td>
  617. </tr>
  618. <tr>
  619. <td class="vst-text step-left">
  620. <?=_('Current Number Of Databases');?>
  621. </td>
  622. </tr>
  623. <tr>
  624. <td class="step-left">
  625. <input type="text" size="20" class="vst-input" name="v_pgsql_max" value="<?=$value['U_DB_BASES']; ?>" disabled>
  626. <br><br><br><br>
  627. </td>
  628. </tr>
  629. <?php }} ?>
  630. </table>
  631. </td>
  632. </tr>
  633. <tr>
  634. <td class="vst-text input-label step-top advanced-options">
  635. <a href="javascript:elementHideShow('backup');" class="vst-text">
  636. <i class="fas fa-undo"></i><b><?=_('Backups');?> <img src="/images/arrow.png"></b>
  637. </a>
  638. </td>
  639. </tr>
  640. <tr>
  641. <td class="vst-text input-label step-left">
  642. <table style="<?php if (empty($v_backup_adv)) echo 'display:none';?> ;" id="backup">
  643. <tr>
  644. <td class="vst-text step-top">
  645. <?=_('Local backup');?>
  646. </td>
  647. </tr>
  648. <tr>
  649. <td>
  650. <select class="vst-list" name="v_backup">
  651. <option value='no'><?=_('No'); ?></option>
  652. <option value='yes' <?php if($v_backup == 'yes') echo 'selected' ?>><?=_('Yes'); ?></option>
  653. </select>
  654. <br><br>
  655. </td>
  656. </tr>
  657. <tr>
  658. <td class="vst-text">
  659. <?=_('Compression');?> <a href="http://docs.hestiacp.com/admin_docs/backups.html#what-is-the-difference-between-zstd-and-gzip"><i class="fas fa-question-circle"></i></a>
  660. </td>
  661. </tr>
  662. <tr>
  663. <td>
  664. <select class="vst-list" name="v_backup_mode">
  665. <option value='gzip' <?php if($v_backup_mode != 'zstd') echo 'selected' ?>>gzip</option>
  666. <option value='zstd' <?php if($v_backup_mode == 'zstd') echo 'selected' ?>>zstd</option>
  667. </select>
  668. <br><br>
  669. </td>
  670. </tr>
  671. <tr>
  672. <td class="vst-text">
  673. <?=_('Compression level');?> <a href="http://docs.hestiacp.com/admin_docs/backups.html#what-is-the-optimal-compression-ratio"><i class="fas fa-question-circle"></i></a>
  674. </td>
  675. </tr>
  676. <tr>
  677. <td>
  678. <select class="vst-list" name="v_backup_gzip">
  679. <?php for ($level = 1; $level < 20; $level++) { ?>
  680. <option value='<?=$level;?>' <?php if($v_backup_gzip == $level) echo 'selected' ?>><?=$level;?><?php if($level > 9){ echo sprintf(' (%s)', _('zstd only')); } ?></option>
  681. <?php } ?>
  682. </select>
  683. <br><br>
  684. </td>
  685. </tr>
  686. <tr>
  687. <td class="vst-text">
  688. <?=_('Directory');?> <a href="https://docs.hestiacp.com/admin_docs/backups.html#how-to-change-default-backup-folder"><i class="fas fa-question-circle"></i></a>
  689. </td>
  690. </tr>
  691. <tr>
  692. <td>
  693. <input type="text" size="20" class="vst-input" name="v_backup_dir" value="<?=trim($v_backup_dir, "'")?>" disabled="disabled">
  694. <br><br>
  695. </td>
  696. </tr>
  697. <tr>
  698. <td class="vst-text input-label">
  699. <label><input type="checkbox" size="20" class="vst-checkbox" name="v_backup_remote_adv" <?php if (!empty($v_backup_remote_adv)) echo "checked=yes" ?> onclick="javascript:elementHideShow('remote_backup');"><?=_('Remote backup');?></label>
  700. </td>
  701. </tr>
  702. <tr>
  703. <td class="vst-text input-label step-left">
  704. <table style="display:<?php if (empty($v_backup_remote_adv)) echo 'none';?> ;" id="remote_backup">
  705. <tr>
  706. <td class="vst-text">
  707. <?=_('Protocol');?> <a href="http://docs.hestiacp.com/admin_docs/backups.html#what-kind-of-protocols-are-currently-supported"><i class="fas fa-question-circle"></i></a>
  708. </td>
  709. </tr>
  710. <tr>
  711. <td>
  712. <select class="vst-list" name="v_backup_type" id="backup_type">
  713. <option value='ftp'><?=_('ftp'); ?></option>
  714. <option value='sftp' <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'") == 'sftp' )) echo 'selected="selected"'; ?>><?=_('sftp'); ?></option>
  715. <option value="b2" <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'") == 'b2' )) echo 'selected="selected"'; ?>><?=_('Backblaze '); ?>
  716. </select>
  717. <br><br>
  718. </td>
  719. </tr>
  720. <tr style="display: <?php if ((!empty($v_backup_type)) && !in_array(trim($v_backup_type, "'"),array('ftp','sftp'))){ echo 'none';} else {echo 'block';} ?>" id="backup_sftp">
  721. <td>
  722. <table>
  723. <tr>
  724. <td class="vst-text">
  725. <?=_('Host');?>
  726. </td>
  727. </tr>
  728. <tr>
  729. <td>
  730. <input type="text" size="20" class="vst-input" name="v_backup_host" value="<?=trim($v_backup_host, "'")?>">
  731. <br><br>
  732. </td>
  733. </tr>
  734. <tr>
  735. <td class="vst-text">
  736. <?=_('Port');?>
  737. </td>
  738. </tr>
  739. <tr>
  740. <td>
  741. <input type="text" size="20" class="vst-input" name="v_backup_port" value="<?=trim($v_backup_port, "'")?>">
  742. <br><br>
  743. </td>
  744. </tr>
  745. <tr>
  746. <td class="vst-text">
  747. <?=_('Username');?>
  748. </td>
  749. </tr>
  750. <tr>
  751. <td>
  752. <input type="text" size="20" class="vst-input" name="v_backup_username" value="<?=trim($v_backup_username, "'")?>">
  753. <br><br>
  754. </td>
  755. </tr>
  756. <tr>
  757. <td class="vst-text">
  758. <?=_('Password');?>
  759. </td>
  760. </tr>
  761. <tr>
  762. <td>
  763. <input type="text" size="20" class="vst-input password" name="v_backup_password" value="<?=trim($v_backup_password, "'")?>">
  764. <br><br>
  765. </td>
  766. </tr>
  767. <tr>
  768. <td class="vst-text">
  769. <?=_('Directory');?>
  770. </td>
  771. </tr>
  772. <tr>
  773. <td>
  774. <input type="text" size="20" class="vst-input" name="v_backup_bpath" value="<?=trim($v_backup_bpath, "'")?>">
  775. <br><br>
  776. </td>
  777. </tr>
  778. </table>
  779. </td>
  780. </tr>
  781. <tr style="display: <?php if ((empty($v_backup_type)) || !in_array(trim($v_backup_type, "'"),array('b2'))){ echo 'none';} else {echo 'block';} ?>" id="backup_bucket">
  782. <td>
  783. <table>
  784. <tr>
  785. <td class="vst-text">
  786. <?=_('Bucket');?>
  787. </td>
  788. </tr>
  789. <tr>
  790. <td>
  791. <input type="text" size="20" class="vst-input" name="v_backup_bucket" value="<?=trim($v_backup_bucket, "'")?>">
  792. <br><br>
  793. </td>
  794. </tr>
  795. <tr>
  796. <td class="vst-text">
  797. <?=_('Application ID');?>
  798. </td>
  799. </tr>
  800. <tr>
  801. <td>
  802. <input type="text" size="20" class="vst-input" name="v_backup_application_id" value="<?=trim($v_backup_application_id, "'")?>">
  803. <br><br>
  804. </td>
  805. </tr>
  806. <tr>
  807. <td class="vst-text">
  808. <?=_('Application Key');?>
  809. </td>
  810. </tr>
  811. <tr>
  812. <td>
  813. <input type="text" size="20" class="vst-input" name="v_backup_application_key" value="<?=trim($v_backup_application_key, "'")?>">
  814. <br><br>
  815. </td>
  816. </tr>
  817. </table>
  818. </td>
  819. </tr>
  820. </table>
  821. </td>
  822. </tr>
  823. </table>
  824. </td>
  825. </tr>
  826. <tr>
  827. <td class="vst-text input-label step-top advanced-options">
  828. <a href="javascript:elementHideShow('ssl');" class="vst-text">
  829. <i class="fas fa-lock"></i><b><?=_('Hestia SSL');?><img src="/images/arrow.png"></b>
  830. </a>
  831. </td>
  832. </tr>
  833. <tr>
  834. <td class="vst-text input-label step-left">
  835. <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="ssl">
  836. <tr>
  837. <td class="vst-text step-top">
  838. <?=_('SSL Certificate');?>
  839. <span id="generate-csr"> / <a class="generate" target="_blank" href="/generate/ssl/?domain=<?=$v_hostname?>"><?=_('Generate CSR');?></a></span>
  840. </td>
  841. </tr>
  842. <tr>
  843. <td>
  844. <textarea size="20" class="vst-textinput short console" name="v_ssl_crt"><?=htmlentities(trim($v_ssl_crt, "'"))?></textarea>
  845. </td>
  846. </tr>
  847. <tr>
  848. <td class="vst-text input-label">
  849. <?=_('SSL Key');?>
  850. </td>
  851. </tr>
  852. <tr>
  853. <td>
  854. <textarea size="20" class="vst-textinput short console" name="v_ssl_key"><?=htmlentities(trim($v_ssl_key, "'"))?></textarea>
  855. </td>
  856. </tr>
  857. <tr>
  858. <td>
  859. <table class="additional-info">
  860. <tr>
  861. <td>
  862. <b><?=_('SUBJECT');?>:</b>
  863. </td>
  864. <td class="details">
  865. <?=$v_ssl_subject?>
  866. </td>
  867. </tr>
  868. <?php if ($v_ssl_aliases){?>
  869. <tr>
  870. <td>
  871. <b><?=_('Aliases');?>:</b>
  872. </td>
  873. <td class="details">
  874. <?=$v_ssl_aliases?>
  875. </td>
  876. </tr>
  877. <?php } ?>
  878. <tr>
  879. <td>
  880. <b><?=_('NOT_BEFORE');?>:</b>
  881. </td>
  882. <td class="details">
  883. <?=$v_ssl_not_before?>
  884. </td>
  885. </tr>
  886. <tr>
  887. <td>
  888. <b><?=_('NOT_AFTER');?>:</b>
  889. </td>
  890. <td class="details">
  891. <?=$v_ssl_not_after?>
  892. </td>
  893. </tr>
  894. <tr>
  895. <td>
  896. <b><?=_('SIGNATURE');?>:</b>
  897. </td>
  898. <td class="details">
  899. <?=$v_ssl_signature?>
  900. </td>
  901. </tr>
  902. <tr>
  903. <td>
  904. <b><?=_('PUB_KEY');?>:</b>
  905. </td>
  906. <td class="details">
  907. <?=$v_ssl_pub_key?>
  908. </td>
  909. </tr>
  910. <tr>
  911. <td>
  912. <b><?=_('ISSUER');?>:</b>
  913. </td>
  914. <td class="details">
  915. <?=$v_ssl_issuer?>
  916. </td>
  917. </tr>
  918. </table>
  919. </td>
  920. </tr>
  921. </table>
  922. </td>
  923. </tr>
  924. <tr>
  925. <td class="vst-text input-label step-top advanced-options">
  926. <a href="javascript:elementHideShow('security');" class="vst-text">
  927. <i class="fas fa-key"></i><b><?=_('Security');?> <img src="/images/arrow.png"></b>
  928. </a>
  929. </td>
  930. </tr>
  931. <tr>
  932. <td class="vst-text input-label step-left">
  933. <table style="<?php if (empty($v_security_adv)) echo 'display:none;';?>" id="security">
  934. <tr>
  935. <td class="section-title" onclick="javascript:elementHideShow('security-system-table',this);">
  936. <?=('System');?>
  937. <i class="fas fa-plus-square status-icon dim maroon section-hide-button"></i>
  938. </td>
  939. </tr>
  940. <tr>
  941. <td>
  942. <table id="security-system-table" style="display: none;">
  943. <td class="vst-text input-label step-top" style="font-size:1rem;padding-bottom:12px;">
  944. <?=_('API');?>
  945. </td>
  946. <tr>
  947. <td class="vst-text input-label">
  948. <?=_('Enable API access');?>
  949. </td>
  950. </tr>
  951. <tr>
  952. <td>
  953. <select class="vst-list" name="v_api" id="api">
  954. <option value='yes'><?=_('Yes'); ?></option>
  955. <option value='no' <?php if($_SESSION['API'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  956. </select>
  957. <br><br>
  958. </td>
  959. </tr>
  960. <tr>
  961. <td>
  962. <table id="security_ip" style="<?php if ($_SESSION['API'] == "no") echo 'display:none;';?>">
  963. <tr>
  964. <td class="vst-text input-label">
  965. <?=_('Allowed IP addresses for API');?> <span class="optional" style="float:right">1 IP address per line</span>
  966. </td>
  967. </tr>
  968. <tr>
  969. <td>
  970. <textarea size="20" class="vst-textinput short" name="v_api_allowed_ip"><?php
  971. foreach(explode(',',$_SESSION['API_ALLOWED_IP']) as $ip ){
  972. echo trim($ip)."\n";
  973. }
  974. ?></textarea>
  975. <br><br>
  976. </td>
  977. </tr>
  978. </table>
  979. </td>
  980. </tr>
  981. <td class="vst-text input-label step-top" style="font-size:1rem;padding-bottom:12px;">
  982. <?=_('Login');?>
  983. </td>
  984. <tr>
  985. <td class="vst-text input-label">
  986. <?=_('Login screen style');?>
  987. </td>
  988. </tr>
  989. <tr>
  990. <td>
  991. <select class="vst-list" name="v_login_style">
  992. <option value='default'><?=_('Default'); ?></option>
  993. <option value='old' <?php if($_SESSION['LOGIN_STYLE'] == 'old') echo 'selected' ?>><?=_('Old Style'); ?></option>
  994. </select>
  995. <br><br>
  996. </td>
  997. </tr>
  998. <tr>
  999. <td class="vst-text input-label">
  1000. <?=_('Allow users to reset their passwords');?>
  1001. </td>
  1002. </tr>
  1003. <tr>
  1004. <td>
  1005. <select class="vst-list" name="v_policy_system_password_reset">
  1006. <option value='yes'><?=_('Yes'); ?></option>
  1007. <option value='no' <?php if($_SESSION['POLICY_SYSTEM_PASSWORD_RESET'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  1008. </select>
  1009. <br><br>
  1010. </td>
  1011. </tr>
  1012. <tr>
  1013. <td class="vst-text input-label">
  1014. <?=_('Inactive session timeout');?> (<?=_('Minutes');?>)
  1015. </td>
  1016. </tr>
  1017. <tr>
  1018. <td>
  1019. <input type="text" size="20" class="vst-input" name="v_inactive_session_timeout" value="<?=trim($_SESSION['INACTIVE_SESSION_TIMEOUT'], "'")?>">
  1020. <br><br>
  1021. </td>
  1022. </tr>
  1023. </table>
  1024. </td>
  1025. </tr>
  1026. <?php if (($_SESSION['userContext'] === "admin") && ($_SESSION['user'] === 'admin')) {?>
  1027. <tr>
  1028. <td class="section-title" onclick="javascript:elementHideShow('security-sysadminprotect-table',this);">
  1029. <?=('System Protection');?>
  1030. <i class="fas fa-plus-square status-icon dim maroon section-hide-button"></i>
  1031. </td>
  1032. </tr>
  1033. <tr>
  1034. <td>
  1035. <table id="security-sysadminprotect-table" class="step-top" style="display: none;">
  1036. <tr>
  1037. <td class="vst-text input-label step-top" style="font-size:1rem;padding-bottom:12px;">
  1038. <?=_('System Administrator account');?>
  1039. </td>
  1040. </tr>
  1041. <tr>
  1042. <td class="vst-text input-label">
  1043. <?=_('Restrict access to read-only for other administrators');?>
  1044. </td>
  1045. </tr>
  1046. <tr>
  1047. <td>
  1048. <select class="vst-list" name="v_policy_system_protected_admin">
  1049. <option value='yes'><?=_('Yes'); ?></option>
  1050. <option value='no' <?php if($_SESSION['POLICY_SYSTEM_PROTECTED_ADMIN'] !== 'yes') echo 'selected' ?>><?=_('No'); ?></option>
  1051. </select>
  1052. <br><br>
  1053. </td>
  1054. </tr>
  1055. <tr>
  1056. <td class="vst-text input-label">
  1057. <?=_('Hide account from other administrators');?>
  1058. </td>
  1059. </tr>
  1060. <tr>
  1061. <td>
  1062. <select class="vst-list" name="v_policy_system_hide_admin">
  1063. <option value='yes'><?=_('Yes'); ?></option>
  1064. <option value='no' <?php if($_SESSION['POLICY_SYSTEM_HIDE_ADMIN'] !== 'yes') echo 'selected' ?>><?=_('No'); ?></option>
  1065. </select>
  1066. <br><br>
  1067. </td>
  1068. </tr>
  1069. <tr>
  1070. <td class="vst-text input-label">
  1071. <?=_('Do not allow other administrators to access Server Settings');?>
  1072. </td>
  1073. </tr>
  1074. <tr>
  1075. <td>
  1076. <select class="vst-list" name="v_policy_system_hide_services">
  1077. <option value='yes'><?=_('Yes'); ?></option>
  1078. <option value='no' <?php if($_SESSION['POLICY_SYSTEM_HIDE_SERVICES'] !== 'yes') echo 'selected' ?>><?=_('No'); ?></option>
  1079. </select>
  1080. <br><br>
  1081. </td>
  1082. </tr>
  1083. </table>
  1084. </td>
  1085. </tr>
  1086. <?php } ?>
  1087. <tr>
  1088. <td class="section-title" onclick="javascript:elementHideShow('security-policies-table',this);">
  1089. <?=('Policies');?>
  1090. <i class="fas fa-plus-square status-icon dim maroon section-hide-button"></i>
  1091. </td>
  1092. </tr>
  1093. <tr>
  1094. <td>
  1095. <table id="security-policies-table" style="display: none;">
  1096. <tr>
  1097. <td class="vst-text input-label step-top" style="font-size:1rem;padding-bottom:12px;">
  1098. <?=_('Users');?>
  1099. </td>
  1100. </tr>
  1101. <?php if ($_SESSION['POLICY_SYSTEM_ENABLE_BACON'] === 'true') { ?>
  1102. <tr>
  1103. <td class="vst-text input-label">
  1104. <?=_('Allow suspended users to log in with read-only access');?> <span class="hint">(Preview)</span>
  1105. </td>
  1106. </tr>
  1107. <tr>
  1108. <td>
  1109. <select class="vst-list" name="v_policy_user_view_suspended">
  1110. <option value='yes' <?php if($_SESSION['POLICY_USER_VIEW_SUSPENDED'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  1111. <option value='no' <?php if($_SESSION['POLICY_USER_VIEW_SUSPENDED'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  1112. </select>
  1113. <br><br>
  1114. </td>
  1115. </tr>
  1116. <?php } ?>
  1117. <tr>
  1118. <td class="vst-text input-label">
  1119. <?=_('Allow users to edit their account details');?>
  1120. </td>
  1121. </tr>
  1122. <tr>
  1123. <td>
  1124. <select class="vst-list" name="v_policy_user_edit_details">
  1125. <option value='yes' <?php if($_SESSION['POLICY_USER_EDIT_DETAILS'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  1126. <option value='no' <?php if($_SESSION['POLICY_USER_EDIT_DETAILS'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  1127. </select>
  1128. <br><br>
  1129. </td>
  1130. </tr>
  1131. <tr>
  1132. <td class="vst-text input-label">
  1133. <?=_('Allow users to change templates when editing web domains');?>
  1134. </td>
  1135. </tr>
  1136. <tr>
  1137. <td>
  1138. <select class="vst-list" name="v_policy_user_edit_web_templates">
  1139. <option value='yes' <?php if($_SESSION['POLICY_USER_EDIT_WEB_TEMPLATES'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  1140. <option value='no' <?php if($_SESSION['POLICY_USER_EDIT_WEB_TEMPLATES'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  1141. </select>
  1142. <br><br>
  1143. </td>
  1144. </tr>
  1145. <tr>
  1146. <td class="vst-text input-label">
  1147. <?=_('Allow users to change templates when editing DNS zones');?>
  1148. </td>
  1149. </tr>
  1150. <tr>
  1151. <td>
  1152. <select class="vst-list" name="v_policy_user_edit_dns_templates">
  1153. <option value='yes' <?php if($_SESSION['POLICY_USER_EDIT_DNS_TEMPLATES'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  1154. <option value='no' <?php if($_SESSION['POLICY_USER_EDIT_DNS_TEMPLATES'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  1155. </select>
  1156. <br><br>
  1157. </td>
  1158. </tr>
  1159. <tr>
  1160. <td class="vst-text input-label">
  1161. <?=_('Allow users to view action and login history logs');?>
  1162. </td>
  1163. </tr>
  1164. <tr>
  1165. <td>
  1166. <select class="vst-list" name="v_policy_user_view_logs">
  1167. <option value='yes' <?php if($_SESSION['POLICY_USER_VIEW_LOGS'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  1168. <option value='no' <?php if($_SESSION['POLICY_USER_VIEW_LOGS'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  1169. </select>
  1170. <br><br>
  1171. </td>
  1172. </tr>
  1173. <tr>
  1174. <td class="vst-text input-label">
  1175. <?=_('Allow users to delete log history');?>
  1176. </td>
  1177. </tr>
  1178. <tr>
  1179. <td>
  1180. <select class="vst-list" name="v_policy_user_delete_logs">
  1181. <option value='yes' <?php if($_SESSION['POLICY_USER_DELETE_LOGS'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  1182. <option value='no' <?php if($_SESSION['POLICY_USER_DELETE_LOGS'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  1183. </select>
  1184. <br><br>
  1185. </td>
  1186. </tr>
  1187. <tr>
  1188. <td class="vst-text input-label step-top" style="font-size:1rem;padding-bottom:12px;">
  1189. <?=_('Domains');?>
  1190. </td>
  1191. </tr>
  1192. <tr>
  1193. <td class="vst-text input-label">
  1194. <?=_('Enforce subdomain ownership');?>
  1195. </td>
  1196. </tr>
  1197. <tr>
  1198. <td>
  1199. <select class="vst-list" name="v_enforce_subdomain_ownership">
  1200. <option value='yes'><?=_('Yes'); ?></option>
  1201. <option value='no' <?php if($_SESSION['ENFORCE_SUBDOMAIN_OWNERSHIP'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  1202. </select>
  1203. </td>
  1204. </tr>
  1205. </table>
  1206. </td>
  1207. </tr>
  1208. <tr>
  1209. <td>
  1210. <br><br>
  1211. </td>
  1212. </tr>
  1213. </table>
  1214. </td>
  1215. </tr>
  1216. <tr>
  1217. <td class="vst-text input-label step-top advanced-options">
  1218. <a href="javascript:elementHideShow('hestia');" class="vst-text">
  1219. <i class="fas fa-puzzle-piece"></i><b><?=_('Hestia Control Panel Plugins');?> <img src="/images/arrow.png"></b>
  1220. </a>
  1221. </td>
  1222. </tr>
  1223. <tr>
  1224. <td class="vst-text input-label step-left">
  1225. <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="hestia">
  1226. <tr>
  1227. <td class="vst-text step-top">
  1228. <?=_('Quick App Installer');?>
  1229. </td>
  1230. </tr>
  1231. <tr>
  1232. <td>
  1233. <select class="vst-list" name="v_plugin_app_installer">
  1234. <option value='false'><?=_('No'); ?></option>
  1235. <option value='true' <?php if($_SESSION['PLUGIN_APP_INSTALLER'] == 'true') echo 'selected' ?>><?=_('Yes'); ?></option>
  1236. </select>
  1237. <br><br>
  1238. </td>
  1239. </tr>
  1240. <tr>
  1241. <td class="vst-text input-label">
  1242. <?=_('Filemanager');?>
  1243. </td>
  1244. </tr>
  1245. <tr>
  1246. <td>
  1247. <select class="vst-list" name="v_filemanager">
  1248. <option value='false'><?=_('No'); ?></option>
  1249. <option value='true' <?php if($_SESSION['FILE_MANAGER'] == 'true') echo 'selected' ?>><?=_('Yes'); ?></option>
  1250. </select>
  1251. <br><br>
  1252. </td>
  1253. </tr>
  1254. <tr>
  1255. <td class="vst-text input-label">
  1256. <?=_('FileSystem Disk Quota');?>
  1257. </td>
  1258. </tr>
  1259. <tr>
  1260. <td>
  1261. <select class="vst-list" name="v_quota">
  1262. <option value='no'><?=_('No'); ?></option>
  1263. <option value='yes' <?php if($_SESSION['DISK_QUOTA'] == 'yes') echo 'selected' ?>><?=_('Yes'); ?></option>
  1264. </select>
  1265. <br><br>
  1266. </td>
  1267. </tr>
  1268. <tr>
  1269. <td class="vst-text input-label">
  1270. <?=_('Firewall');?>
  1271. </td>
  1272. </tr>
  1273. <tr>
  1274. <td>
  1275. <select class="vst-list" name="v_firewall">
  1276. <option value='no'><?=_('No'); ?></option>
  1277. <option value='yes' <?php if($_SESSION['FIREWALL_SYSTEM'] == 'iptables') echo 'selected' ?>><?=_('Yes'); ?></option>
  1278. </select>
  1279. <br><br>
  1280. </td>
  1281. </tr>
  1282. </table>
  1283. </td>
  1284. </tr>
  1285. </table>
  1286. <table class="data-col2"></table>
  1287. </td>
  1288. </tr>
  1289. </table>
  1290. </form>
  1291. </div>