edit_server.html 51 KB

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