edit_server.html 50 KB

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