edit_server.html 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321
  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') {
  494. ?>
  495. <tr>
  496. <td class="vst-text">
  497. <?=_('phpMyAdmin Single Sign On');?> <span class="hint">(Preview)</span>
  498. </td>
  499. </tr>
  500. <tr>
  501. <td>
  502. <select class="vst-list" name="v_phpmyadmin_key">
  503. <option value='no'><?=_('Disabled'); ?></option>
  504. <option value='yes' <?php if($_POST['v_phpmyadmin_key'] == "yes" || $_SESSION['PHPMYADMIN_KEY'] != ''){ echo 'selected="selected"'; }; ?>><?=_('Enabled'); ?></option>
  505. </select>
  506. <br />
  507. <br />
  508. </td>
  509. </tr>
  510. <?php } ?>
  511. <?php } ?>
  512. <?php if ($v_mysql == 'yes') {
  513. $i = 0;
  514. foreach ($v_mysql_hosts as $value) {
  515. $i++;
  516. ?>
  517. <tr>
  518. <td class="vst-text step-left">
  519. <?=_('Host'). ' #'.$i ?>
  520. </td>
  521. </tr>
  522. <tr>
  523. <td class="step-left">
  524. <input type="text" size="20" class="vst-input" name="v_mysql_host" value="<?=$value['HOST']?>" disabled>
  525. <br><br>
  526. </td>
  527. </tr>
  528. <tr>
  529. <td class="vst-text step-left">
  530. <?=_('Password');?>
  531. </td>
  532. </tr>
  533. <tr>
  534. <td class="step-left">
  535. <input type="text" size="20" class="vst-input password" name="v_mysql_password" value="">
  536. <br><br>
  537. </td>
  538. </tr>
  539. <tr>
  540. <td class="vst-text step-left">
  541. <?=_('Maximum Number Of Databases');?>
  542. </td>
  543. </tr>
  544. <tr>
  545. <td class="step-left">
  546. <input type="text" size="20" class="vst-input" name="v_mysql_max" value="<?=$value['MAX_DB']; ?>" disabled>
  547. <br><br>
  548. </td>
  549. </tr>
  550. <tr>
  551. <td class="vst-text step-left">
  552. <?=_('Current Number Of Databases');?>
  553. </td>
  554. </tr>
  555. <tr>
  556. <td class="step-left">
  557. <input type="text" size="20" class="vst-input" name="v_mysql_max" value="<?=$value['U_DB_BASES']; ?>" disabled>
  558. <br><br>
  559. </td>
  560. </tr>
  561. <?php }} ?>
  562. <!-- PostgreSQL Options-->
  563. <?php if ($v_pgsql == 'yes') { ?>
  564. <tr>
  565. <td class="vst-text input-label">
  566. <?=_('PostgreSQL Support');?> <a href="/edit/server/postgresql/"><i class="fas fa-pencil-alt status-icon orange icon-pad-right"></i></a>
  567. </td>
  568. </tr>
  569. <tr>
  570. <td>
  571. <select class="vst-list" name="v_pgsql" disabled>
  572. <option value='no'><?=_('No'); ?></option>
  573. <option value='yes' <?php if($v_pgsql == 'yes') echo 'selected' ?>><?=_('Yes'); ?></option>
  574. </select>
  575. <br><br>
  576. </td>
  577. </tr>
  578. <tr>
  579. <td class="vst-text">
  580. <?=_('phpPgAdmin URL');?>
  581. </td>
  582. </tr>
  583. <tr>
  584. <td>
  585. <input type="text" size="20" class="vst-input" name="v_pgsql_url" value="<?=$_SESSION['DB_PGA_ALIAS']; ?>">
  586. <br><br>
  587. </td>
  588. </tr>
  589. <?php } ?>
  590. <?php if ($v_pgsql == 'yes') {
  591. $i = 0;
  592. foreach ($v_pgsql_hosts as $value) {
  593. $i++;
  594. ?>
  595. <tr>
  596. <td class="vst-text step-left">
  597. <?=_('Host'). ' #'.$i ?>
  598. </td>
  599. </tr>
  600. <tr>
  601. <td class="step-left">
  602. <input type="text" size="20" class="vst-input" name="v_pgsql_host" value="<?=$value['HOST']?>" disabled>
  603. <br><br>
  604. </td>
  605. </tr>
  606. <tr>
  607. <td class="vst-text step-left">
  608. <?=_('Maximum Number Of Databases');?>
  609. </td>
  610. </tr>
  611. <tr>
  612. <td class="step-left">
  613. <input type="text" size="20" class="vst-input" name="v_psql_max" value="<?=$value['MAX_DB']; ?>" disabled>
  614. <br><br>
  615. </td>
  616. </tr>
  617. <tr>
  618. <td class="vst-text step-left">
  619. <?=_('Current Number Of Databases');?>
  620. </td>
  621. </tr>
  622. <tr>
  623. <td class="step-left">
  624. <input type="text" size="20" class="vst-input" name="v_pgsql_max" value="<?=$value['U_DB_BASES']; ?>" disabled>
  625. <br><br><br><br>
  626. </td>
  627. </tr>
  628. <?php }} ?>
  629. </table>
  630. </td>
  631. </tr>
  632. <tr>
  633. <td class="vst-text input-label step-top advanced-options">
  634. <a href="javascript:elementHideShow('backup');" class="vst-text">
  635. <i class="fas fa-undo"></i><b><?=_('Backups');?> <img src="/images/arrow.png"></b>
  636. </a>
  637. </td>
  638. </tr>
  639. <tr>
  640. <td class="vst-text input-label step-left">
  641. <table style="<?php if (empty($v_backup_adv)) echo 'display:none';?> ;" id="backup">
  642. <tr>
  643. <td class="vst-text step-top">
  644. <?=_('Local backup');?>
  645. </td>
  646. </tr>
  647. <tr>
  648. <td>
  649. <select class="vst-list" name="v_backup">
  650. <option value='no'><?=_('No'); ?></option>
  651. <option value='yes' <?php if($v_backup == 'yes') echo 'selected' ?>><?=_('Yes'); ?></option>
  652. </select>
  653. <br><br>
  654. </td>
  655. </tr>
  656. <tr>
  657. <td class="vst-text">
  658. <?=_('Compression');?> <a target="_blank" 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>
  659. </td>
  660. </tr>
  661. <tr>
  662. <td>
  663. <select class="vst-list" name="v_backup_mode">
  664. <option value='gzip' <?php if($v_backup_mode != 'zstd') echo 'selected' ?>>gzip</option>
  665. <option value='zstd' <?php if($v_backup_mode == 'zstd') echo 'selected' ?>>zstd</option>
  666. </select>
  667. <br><br>
  668. </td>
  669. </tr>
  670. <tr>
  671. <td class="vst-text">
  672. <?=_('Compression level');?> <a target="_blank" href="http://docs.hestiacp.com/admin_docs/backups.html#what-is-the-optimal-compression-ratio"><i class="fas fa-question-circle"></i></a>
  673. </td>
  674. </tr>
  675. <tr>
  676. <td>
  677. <select class="vst-list" name="v_backup_gzip">
  678. <?php for ($level = 1; $level < 20; $level++) { ?>
  679. <option value='<?=$level;?>' <?php if($v_backup_gzip == $level) echo 'selected' ?>><?=$level;?><?php if($level > 9){ echo sprintf(' (%s)', _('zstd only')); } ?></option>
  680. <?php } ?>
  681. </select>
  682. <br><br>
  683. </td>
  684. </tr>
  685. <tr>
  686. <td class="vst-text">
  687. <?=_('Directory');?> <a target="_blank" href="https://docs.hestiacp.com/admin_docs/backups.html#how-to-change-default-backup-folder"><i class="fas fa-question-circle"></i></a>
  688. </td>
  689. </tr>
  690. <tr>
  691. <td>
  692. <input type="text" size="20" class="vst-input" name="v_backup_dir" value="<?=trim($v_backup_dir, "'")?>" disabled="disabled">
  693. <br><br>
  694. </td>
  695. </tr>
  696. <tr>
  697. <td class="vst-text input-label">
  698. <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>
  699. </td>
  700. </tr>
  701. <tr>
  702. <td class="vst-text input-label step-left">
  703. <table style="display:<?php if (empty($v_backup_remote_adv)) echo 'none';?> ;" id="remote_backup">
  704. <tr>
  705. <td class="vst-text">
  706. <?=_('Protocol');?> <a target="_blank" href="http://docs.hestiacp.com/admin_docs/backups.html#what-kind-of-protocols-are-currently-supported"><i class="fas fa-question-circle"></i></a>
  707. </td>
  708. </tr>
  709. <tr>
  710. <td>
  711. <select class="vst-list" name="v_backup_type" id="backup_type">
  712. <option value='ftp'><?=_('ftp'); ?></option>
  713. <option value='sftp' <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'") == 'sftp' )) echo 'selected="selected"'; ?>><?=_('sftp'); ?></option>
  714. <option value="b2" <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'") == 'b2' )) echo 'selected="selected"'; ?>><?=_('Backblaze'); ?>
  715. </select>
  716. <br><br>
  717. </td>
  718. </tr>
  719. <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">
  720. <td>
  721. <table>
  722. <tr>
  723. <td class="vst-text">
  724. <?=_('Host');?>
  725. </td>
  726. </tr>
  727. <tr>
  728. <td>
  729. <input type="text" size="20" class="vst-input" name="v_backup_host" value="<?=trim($v_backup_host, "'")?>">
  730. <br><br>
  731. </td>
  732. </tr>
  733. <tr>
  734. <td class="vst-text">
  735. <?=_('Port');?>
  736. </td>
  737. </tr>
  738. <tr>
  739. <td>
  740. <input type="text" size="20" class="vst-input" name="v_backup_port" value="<?=trim($v_backup_port, "'")?>">
  741. <br><br>
  742. </td>
  743. </tr>
  744. <tr>
  745. <td class="vst-text">
  746. <?=_('Username');?>
  747. </td>
  748. </tr>
  749. <tr>
  750. <td>
  751. <input type="text" size="20" class="vst-input" name="v_backup_username" value="<?=trim($v_backup_username, "'")?>">
  752. <br><br>
  753. </td>
  754. </tr>
  755. <tr>
  756. <td class="vst-text">
  757. <?=_('Password');?>
  758. </td>
  759. </tr>
  760. <tr>
  761. <td>
  762. <input type="text" size="20" class="vst-input password" name="v_backup_password" value="<?=trim($v_backup_password, "'")?>">
  763. <br><br>
  764. </td>
  765. </tr>
  766. <tr>
  767. <td class="vst-text">
  768. <?=_('Directory');?>
  769. </td>
  770. </tr>
  771. <tr>
  772. <td>
  773. <input type="text" size="20" class="vst-input" name="v_backup_bpath" value="<?=trim($v_backup_bpath, "'")?>">
  774. <br><br>
  775. </td>
  776. </tr>
  777. </table>
  778. </td>
  779. </tr>
  780. <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">
  781. <td>
  782. <table>
  783. <tr>
  784. <td class="vst-text">
  785. <?=_('Bucket');?>
  786. </td>
  787. </tr>
  788. <tr>
  789. <td>
  790. <input type="text" size="20" class="vst-input" name="v_backup_bucket" value="<?=trim($v_backup_bucket, "'")?>">
  791. <br><br>
  792. </td>
  793. </tr>
  794. <tr>
  795. <td class="vst-text">
  796. <?=_('Application ID');?>
  797. </td>
  798. </tr>
  799. <tr>
  800. <td>
  801. <input type="text" size="20" class="vst-input" name="v_backup_application_id" value="<?=trim($v_backup_application_id, "'")?>">
  802. <br><br>
  803. </td>
  804. </tr>
  805. <tr>
  806. <td class="vst-text">
  807. <?=_('Application Key');?>
  808. </td>
  809. </tr>
  810. <tr>
  811. <td>
  812. <input type="text" size="20" class="vst-input" name="v_backup_application_key" value="<?=trim($v_backup_application_key, "'")?>">
  813. <br><br>
  814. </td>
  815. </tr>
  816. </table>
  817. </td>
  818. </tr>
  819. </table>
  820. </td>
  821. </tr>
  822. </table>
  823. </td>
  824. </tr>
  825. <tr>
  826. <td class="vst-text input-label step-top advanced-options">
  827. <a href="javascript:elementHideShow('ssl');" class="vst-text">
  828. <i class="fas fa-lock"></i><b><?=_('Hestia SSL');?><img src="/images/arrow.png"></b>
  829. </a>
  830. </td>
  831. </tr>
  832. <tr>
  833. <td class="vst-text input-label step-left">
  834. <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="ssl">
  835. <tr>
  836. <td class="vst-text step-top">
  837. <?=_('SSL Certificate');?>
  838. <span id="generate-csr"> / <a class="generate" target="_blank" href="/generate/ssl/?domain=<?=$v_hostname?>"><?=_('Generate CSR');?></a></span>
  839. </td>
  840. </tr>
  841. <tr>
  842. <td>
  843. <textarea size="20" class="vst-textinput short console" name="v_ssl_crt"><?=htmlentities(trim($v_ssl_crt, "'"))?></textarea>
  844. </td>
  845. </tr>
  846. <tr>
  847. <td class="vst-text input-label">
  848. <?=_('SSL Key');?>
  849. </td>
  850. </tr>
  851. <tr>
  852. <td>
  853. <textarea size="20" class="vst-textinput short console" name="v_ssl_key"><?=htmlentities(trim($v_ssl_key, "'"))?></textarea>
  854. </td>
  855. </tr>
  856. <tr>
  857. <td>
  858. <table class="additional-info">
  859. <tr>
  860. <td>
  861. <b><?=_('SUBJECT');?>:</b>
  862. </td>
  863. <td class="details">
  864. <?=$v_ssl_subject?>
  865. </td>
  866. </tr>
  867. <?php if ($v_ssl_aliases){?>
  868. <tr>
  869. <td>
  870. <b><?=_('Aliases');?>:</b>
  871. </td>
  872. <td class="details">
  873. <?=$v_ssl_aliases?>
  874. </td>
  875. </tr>
  876. <?php } ?>
  877. <tr>
  878. <td>
  879. <b><?=_('NOT_BEFORE');?>:</b>
  880. </td>
  881. <td class="details">
  882. <?=$v_ssl_not_before?>
  883. </td>
  884. </tr>
  885. <tr>
  886. <td>
  887. <b><?=_('NOT_AFTER');?>:</b>
  888. </td>
  889. <td class="details">
  890. <?=$v_ssl_not_after?>
  891. </td>
  892. </tr>
  893. <tr>
  894. <td>
  895. <b><?=_('SIGNATURE');?>:</b>
  896. </td>
  897. <td class="details">
  898. <?=$v_ssl_signature?>
  899. </td>
  900. </tr>
  901. <tr>
  902. <td>
  903. <b><?=_('PUB_KEY');?>:</b>
  904. </td>
  905. <td class="details">
  906. <?=$v_ssl_pub_key?>
  907. </td>
  908. </tr>
  909. <tr>
  910. <td>
  911. <b><?=_('ISSUER');?>:</b>
  912. </td>
  913. <td class="details">
  914. <?=$v_ssl_issuer?>
  915. </td>
  916. </tr>
  917. </table>
  918. </td>
  919. </tr>
  920. </table>
  921. </td>
  922. </tr>
  923. <tr>
  924. <td class="vst-text input-label step-top advanced-options">
  925. <a href="javascript:elementHideShow('security');" class="vst-text">
  926. <i class="fas fa-key"></i><b><?=_('Security');?> <img src="/images/arrow.png"></b>
  927. </a>
  928. </td>
  929. </tr>
  930. <tr>
  931. <td class="vst-text input-label step-left">
  932. <table style="<?php if (empty($v_security_adv)) echo 'display:none;';?>" id="security">
  933. <tr>
  934. <td class="section-title" onclick="javascript:elementHideShow('security-system-table',this);">
  935. <?=('System');?>
  936. <i class="fas fa-plus-square status-icon dim maroon section-hide-button"></i>
  937. </td>
  938. </tr>
  939. <tr>
  940. <td>
  941. <table id="security-system-table" style="display: none;">
  942. <td class="vst-text input-label step-top" style="font-size:1rem;padding-bottom:12px;">
  943. <?=_('API');?>
  944. </td>
  945. <tr>
  946. <td class="vst-text input-label">
  947. <?=_('Enable API access');?>
  948. </td>
  949. </tr>
  950. <tr>
  951. <td>
  952. <select class="vst-list" name="v_api" id="api">
  953. <option value='yes'><?=_('Yes'); ?></option>
  954. <option value='no' <?php if($_SESSION['API'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  955. </select>
  956. <br><br>
  957. </td>
  958. </tr>
  959. <tr>
  960. <td>
  961. <table id="security_ip" style="<?php if ($_SESSION['API'] == "no") echo 'display:none;';?>">
  962. <tr>
  963. <td class="vst-text input-label">
  964. <?=_('Allowed IP addresses for API');?> <span class="optional" style="float:right">1 IP address per line</span>
  965. </td>
  966. </tr>
  967. <tr>
  968. <td>
  969. <textarea size="20" class="vst-textinput short" name="v_api_allowed_ip"><?php
  970. foreach(explode(',',$_SESSION['API_ALLOWED_IP']) as $ip ){
  971. echo trim($ip)."\n";
  972. }
  973. ?></textarea>
  974. <br><br>
  975. </td>
  976. </tr>
  977. </table>
  978. </td>
  979. </tr>
  980. <td class="vst-text input-label step-top" style="font-size:1rem;padding-bottom:12px;">
  981. <?=_('Login');?>
  982. </td>
  983. <tr>
  984. <td class="vst-text input-label">
  985. <?=_('Login screen style');?>
  986. </td>
  987. </tr>
  988. <tr>
  989. <td>
  990. <select class="vst-list" name="v_login_style">
  991. <option value='default'><?=_('Default'); ?></option>
  992. <option value='old' <?php if($_SESSION['LOGIN_STYLE'] == 'old') echo 'selected' ?>><?=_('Old Style'); ?></option>
  993. </select>
  994. <br><br>
  995. </td>
  996. </tr>
  997. <tr>
  998. <td class="vst-text input-label">
  999. <?=_('Allow users to reset their passwords');?>
  1000. </td>
  1001. </tr>
  1002. <tr>
  1003. <td>
  1004. <select class="vst-list" name="v_policy_system_password_reset">
  1005. <option value='yes'><?=_('Yes'); ?></option>
  1006. <option value='no' <?php if($_SESSION['POLICY_SYSTEM_PASSWORD_RESET'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  1007. </select>
  1008. <br><br>
  1009. </td>
  1010. </tr>
  1011. <tr>
  1012. <td class="vst-text input-label">
  1013. <?=_('Inactive session timeout');?> (<?=_('Minutes');?>)
  1014. </td>
  1015. </tr>
  1016. <tr>
  1017. <td>
  1018. <input type="text" size="20" class="vst-input" name="v_inactive_session_timeout" value="<?=trim($_SESSION['INACTIVE_SESSION_TIMEOUT'], "'")?>">
  1019. <br><br>
  1020. </td>
  1021. </tr>
  1022. <tr>
  1023. <td class="vst-text input-label">
  1024. <?=_('Prevent CSRF');?>
  1025. </td>
  1026. </tr>
  1027. <tr>
  1028. <td>
  1029. <select class="vst-list" name="v_policy_csrf_strictness">
  1030. <option value="0" <?php if($_SESSION['POLICY_CSRF_STRICTNESS'] == '0') echo 'selected' ?>><?=_('Disabled');?></option>
  1031. <option value="1" <?php if($_SESSION['POLICY_CSRF_STRICTNESS'] == '1') echo 'selected' ?>><?=_('Enabled');?></option>
  1032. <option value="2" <?php if($_SESSION['POLICY_CSRF_STRICTNESS'] == '2') echo 'selected' ?>><?=_('Strict');?></option>
  1033. </select>
  1034. <br><br>
  1035. </td>
  1036. </tr>
  1037. </table>
  1038. </td>
  1039. </tr>
  1040. <?php if (($_SESSION['userContext'] === "admin") && ($_SESSION['user'] === 'admin')) {?>
  1041. <tr>
  1042. <td class="section-title" onclick="javascript:elementHideShow('security-sysadminprotect-table',this);">
  1043. <?=('System Protection');?>
  1044. <i class="fas fa-plus-square status-icon dim maroon section-hide-button"></i>
  1045. </td>
  1046. </tr>
  1047. <tr>
  1048. <td>
  1049. <table id="security-sysadminprotect-table" class="step-top" style="display: none;">
  1050. <tr>
  1051. <td class="vst-text input-label step-top" style="font-size:1rem;padding-bottom:12px;">
  1052. <?=_('System Administrator account');?>
  1053. </td>
  1054. </tr>
  1055. <tr>
  1056. <td class="vst-text input-label">
  1057. <?=_('Restrict access to read-only for other administrators');?>
  1058. </td>
  1059. </tr>
  1060. <tr>
  1061. <td>
  1062. <select class="vst-list" name="v_policy_system_protected_admin">
  1063. <option value='yes'><?=_('Yes'); ?></option>
  1064. <option value='no' <?php if($_SESSION['POLICY_SYSTEM_PROTECTED_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. <?=_('Hide account from other administrators');?>
  1072. </td>
  1073. </tr>
  1074. <tr>
  1075. <td>
  1076. <select class="vst-list" name="v_policy_system_hide_admin">
  1077. <option value='yes'><?=_('Yes'); ?></option>
  1078. <option value='no' <?php if($_SESSION['POLICY_SYSTEM_HIDE_ADMIN'] !== 'yes') echo 'selected' ?>><?=_('No'); ?></option>
  1079. </select>
  1080. <br><br>
  1081. </td>
  1082. </tr>
  1083. <tr>
  1084. <td class="vst-text input-label">
  1085. <?=_('Do not allow other administrators to access Server Settings');?>
  1086. </td>
  1087. </tr>
  1088. <tr>
  1089. <td>
  1090. <select class="vst-list" name="v_policy_system_hide_services">
  1091. <option value='yes'><?=_('Yes'); ?></option>
  1092. <option value='no' <?php if($_SESSION['POLICY_SYSTEM_HIDE_SERVICES'] !== 'yes') echo 'selected' ?>><?=_('No'); ?></option>
  1093. </select>
  1094. <br><br>
  1095. </td>
  1096. </tr>
  1097. </table>
  1098. </td>
  1099. </tr>
  1100. <?php } ?>
  1101. <tr>
  1102. <td class="section-title" onclick="javascript:elementHideShow('security-policies-table',this);">
  1103. <?=('Policies');?>
  1104. <i class="fas fa-plus-square status-icon dim maroon section-hide-button"></i>
  1105. </td>
  1106. </tr>
  1107. <tr>
  1108. <td>
  1109. <table id="security-policies-table" style="display: none;">
  1110. <tr>
  1111. <td class="vst-text input-label step-top" style="font-size:1rem;padding-bottom:12px;">
  1112. <?=_('Users');?>
  1113. </td>
  1114. </tr>
  1115. <?php if ($_SESSION['POLICY_SYSTEM_ENABLE_BACON'] === 'true') { ?>
  1116. <tr>
  1117. <td class="vst-text input-label">
  1118. <?=_('Allow suspended users to log in with read-only access');?> <span class="hint">(Preview)</span>
  1119. </td>
  1120. </tr>
  1121. <tr>
  1122. <td>
  1123. <select class="vst-list" name="v_policy_user_view_suspended">
  1124. <option value='yes' <?php if($_SESSION['POLICY_USER_VIEW_SUSPENDED'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  1125. <option value='no' <?php if($_SESSION['POLICY_USER_VIEW_SUSPENDED'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  1126. </select>
  1127. <br><br>
  1128. </td>
  1129. </tr>
  1130. <?php } ?>
  1131. <tr>
  1132. <td class="vst-text input-label">
  1133. <?=_('Allow users to edit their account details');?>
  1134. </td>
  1135. </tr>
  1136. <tr>
  1137. <td>
  1138. <select class="vst-list" name="v_policy_user_edit_details">
  1139. <option value='yes' <?php if($_SESSION['POLICY_USER_EDIT_DETAILS'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  1140. <option value='no' <?php if($_SESSION['POLICY_USER_EDIT_DETAILS'] == '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 web domains');?>
  1148. </td>
  1149. </tr>
  1150. <tr>
  1151. <td>
  1152. <select class="vst-list" name="v_policy_user_edit_web_templates">
  1153. <option value='yes' <?php if($_SESSION['POLICY_USER_EDIT_WEB_TEMPLATES'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  1154. <option value='no' <?php if($_SESSION['POLICY_USER_EDIT_WEB_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 change templates when editing DNS zones');?>
  1162. </td>
  1163. </tr>
  1164. <tr>
  1165. <td>
  1166. <select class="vst-list" name="v_policy_user_edit_dns_templates">
  1167. <option value='yes' <?php if($_SESSION['POLICY_USER_EDIT_DNS_TEMPLATES'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  1168. <option value='no' <?php if($_SESSION['POLICY_USER_EDIT_DNS_TEMPLATES'] == '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 view action and login history logs');?>
  1176. </td>
  1177. </tr>
  1178. <tr>
  1179. <td>
  1180. <select class="vst-list" name="v_policy_user_view_logs">
  1181. <option value='yes' <?php if($_SESSION['POLICY_USER_VIEW_LOGS'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  1182. <option value='no' <?php if($_SESSION['POLICY_USER_VIEW_LOGS'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  1183. </select>
  1184. <br><br>
  1185. </td>
  1186. </tr>
  1187. <tr>
  1188. <td class="vst-text input-label">
  1189. <?=_('Allow users to delete log history');?>
  1190. </td>
  1191. </tr>
  1192. <tr>
  1193. <td>
  1194. <select class="vst-list" name="v_policy_user_delete_logs">
  1195. <option value='yes' <?php if($_SESSION['POLICY_USER_DELETE_LOGS'] !== 'no') echo 'selected' ?>><?=_('Yes'); ?></option>
  1196. <option value='no' <?php if($_SESSION['POLICY_USER_DELETE_LOGS'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  1197. </select>
  1198. <br><br>
  1199. </td>
  1200. </tr>
  1201. <tr>
  1202. <td class="vst-text input-label step-top" style="font-size:1rem;padding-bottom:12px;">
  1203. <?=_('Domains');?>
  1204. </td>
  1205. </tr>
  1206. <tr>
  1207. <td class="vst-text input-label">
  1208. <?=_('Enforce subdomain ownership');?>
  1209. </td>
  1210. </tr>
  1211. <tr>
  1212. <td>
  1213. <select class="vst-list" name="v_enforce_subdomain_ownership">
  1214. <option value='yes'><?=_('Yes'); ?></option>
  1215. <option value='no' <?php if($_SESSION['ENFORCE_SUBDOMAIN_OWNERSHIP'] == 'no') echo 'selected' ?>><?=_('No'); ?></option>
  1216. </select>
  1217. </td>
  1218. </tr>
  1219. </table>
  1220. </td>
  1221. </tr>
  1222. <tr>
  1223. <td>
  1224. <br><br>
  1225. </td>
  1226. </tr>
  1227. </table>
  1228. </td>
  1229. </tr>
  1230. <tr>
  1231. <td class="vst-text input-label step-top advanced-options">
  1232. <a href="javascript:elementHideShow('hestia');" class="vst-text">
  1233. <i class="fas fa-puzzle-piece"></i><b><?=_('Hestia Control Panel Plugins');?> <img src="/images/arrow.png"></b>
  1234. </a>
  1235. </td>
  1236. </tr>
  1237. <tr>
  1238. <td class="vst-text input-label step-left">
  1239. <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="hestia">
  1240. <tr>
  1241. <td class="vst-text step-top">
  1242. <?=_('Quick App Installer');?>
  1243. </td>
  1244. </tr>
  1245. <tr>
  1246. <td>
  1247. <select class="vst-list" name="v_plugin_app_installer">
  1248. <option value='false'><?=_('No'); ?></option>
  1249. <option value='true' <?php if($_SESSION['PLUGIN_APP_INSTALLER'] == 'true') echo 'selected' ?>><?=_('Yes'); ?></option>
  1250. </select>
  1251. <br><br>
  1252. </td>
  1253. </tr>
  1254. <tr>
  1255. <td class="vst-text input-label">
  1256. <?=_('Filemanager');?>
  1257. </td>
  1258. </tr>
  1259. <tr>
  1260. <td>
  1261. <select class="vst-list" name="v_filemanager">
  1262. <option value='false'><?=_('No'); ?></option>
  1263. <option value='true' <?php if($_SESSION['FILE_MANAGER'] == 'true') echo 'selected' ?>><?=_('Yes'); ?></option>
  1264. </select>
  1265. <br><br>
  1266. </td>
  1267. </tr>
  1268. <tr>
  1269. <td class="vst-text input-label">
  1270. <?=_('FileSystem Disk Quota');?>
  1271. </td>
  1272. </tr>
  1273. <tr>
  1274. <td>
  1275. <select class="vst-list" name="v_quota">
  1276. <option value='no'><?=_('No'); ?></option>
  1277. <option value='yes' <?php if($_SESSION['DISK_QUOTA'] == 'yes') echo 'selected' ?>><?=_('Yes'); ?></option>
  1278. </select>
  1279. <br><br>
  1280. </td>
  1281. </tr>
  1282. <tr>
  1283. <td class="vst-text input-label">
  1284. <?=_('Firewall');?>
  1285. </td>
  1286. </tr>
  1287. <tr>
  1288. <td>
  1289. <select class="vst-list" name="v_firewall">
  1290. <option value='no'><?=_('No'); ?></option>
  1291. <option value='yes' <?php if($_SESSION['FIREWALL_SYSTEM'] == 'iptables') echo 'selected' ?>><?=_('Yes'); ?></option>
  1292. </select>
  1293. <br><br>
  1294. </td>
  1295. </tr>
  1296. </table>
  1297. </td>
  1298. </tr>
  1299. </table>
  1300. <table class="data-col2"></table>
  1301. </td>
  1302. </tr>
  1303. </table>
  1304. </form>
  1305. </div>