panel.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <div class="hidden" id="token" token="<?=$_SESSION['token']?>"></div>
  2. <a href="#" class="to-top" title="<?=_('Top')?>">
  3. <i class="fas fa-arrow-up"></i>
  4. </a>
  5. <a href="#" class="to-shortcuts" title="<?=_('Shortcuts')?>">
  6. <i class="fas fa-keyboard"></i>
  7. </a>
  8. <div class="l-header">
  9. <div class="l-center">
  10. <a href="<?=htmlspecialchars($home_url)?>" class="l-logo" title="<?=_('Hestia Control Panel');?>"></a>
  11. <div class="l-menu clearfix noselect">
  12. <div class="l-menu__item <?php if($TAB == 'WEB' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'DNS' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'MAIL' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'DB' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'BACKUP' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'CRON' ) echo 'l-menu__item--active' ?><?php if($TAB == 'PACKAGE' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'USER' ) echo 'l-menu__item--active' ?><?php if($TAB == 'LOG' ) echo 'l-menu__item--active' ?>"><a href="<?=htmlspecialchars($home_url)?>"><i class="fas fa-tasks panel-icon"></i><?=_('Records')?></a></div>
  13. <?php if ((isset($_SESSION['FILE_MANAGER'])) && (!empty($_SESSION['FILE_MANAGER'])) && ($_SESSION['FILE_MANAGER'] == "true")) {?>
  14. <? if (($_SESSION['userContext'] === 'admin') && (isset($_SESSION['look']) && ($_SESSION['look'] === 'admin') && ($_SESSION['POLICY_SYSTEM_PROTECTED_ADMIN'] == 'yes'))) {?>
  15. <!-- Hide file manager when impersonating admin-->
  16. <? } else { ?>
  17. <div class="l-menu__item <?php if($TAB == 'FM' ) echo 'l-menu__item--active' ?>"><a href="/fm/"><i class="fas fa-folder-open panel-icon"></i><?=_('Files')?></a></div>
  18. <? } ?>
  19. <?php } ?>
  20. <div class="l-menu__item <?php if($TAB == 'STATS' ) echo 'l-menu__item--active' ?>"><a href="/list/stats/"><i class="fas fa-chart-line panel-icon"></i><?=_('Statistics')?></a></div>
  21. </div>
  22. <div class="l-profile noselect">
  23. <div class="l-menu__item">
  24. <span class="pill usage">
  25. <i class="fas
  26. <? if (isset($_SESSION['look'])) {?>
  27. echo fa-binoculars
  28. <? } else { ?>
  29. echo fa-user
  30. <? } ?>" title="<?=_('Statistics')?>: <?=htmlspecialchars($panel[$user]['NAME'])?>"></i>&nbsp;&nbsp;<b><?=htmlspecialchars($user)?></b> /
  31. <i class="fas fa-hdd" title="<?=_('Disk')?>: <?=humanize_usage_size($panel[$user]['U_DISK'])?> <?=humanize_usage_measure($panel[$user]['U_DISK'])?>"></i>&nbsp;&nbsp;<b><?=humanize_usage_size($panel[$user]['U_DISK'])?></b> <?=humanize_usage_measure($panel[$user]['U_DISK'])?> /
  32. <i class="fas fa-exchange-alt" title="<?=_('Bandwidth')?>: <?=humanize_usage_size($panel[$user]['U_DISK'])?> <?=humanize_usage_measure($panel[$user]['U_DISK'])?>"></i>&nbsp;&nbsp;<b><?=humanize_usage_size($panel[$user]['U_BANDWIDTH'])?></b> <?=humanize_usage_measure($panel[$user]['U_BANDWIDTH'])?>
  33. </span>
  34. </div>
  35. <? if (($_SESSION['userContext'] === 'admin') && (isset($_SESSION['look']) && ($user == 'admin'))) {?>
  36. <!-- Do not show notifications panel when impersonating 'admin' user -->
  37. <? } else { ?>
  38. <div class="l-menu__item">
  39. <a title="<?=_('Notifications')?>" class="l-profile__notifications <? if($panel[$user]['NOTIFICATIONS'] == 'yes') echo " updates"; ?>">
  40. <i class="fas fa-bell <?if($panel[$user]['NOTIFICATIONS'] == 'yes') echo " animated extended swing status-icon orange"; ?>"></i>
  41. </a>
  42. </div>
  43. <? } ?>
  44. <? if (($_SESSION['userContext'] === 'admin') && ($_SESSION['look'] === 'admin')) {?>
  45. <!-- Hide 'Server Settings' button when impersonating 'admin' or other users -->
  46. <? } else if (($_SESSION['userContext'] === 'admin') && (!isset($_SESSION['look']))) { ?>
  47. <div class="l-menu__item <?php if($TAB == 'SERVER' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'UPDATES' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'IP' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'RRD' ) echo 'l-menu__item--active' ?> <?php if($TAB == 'FIREWALL' ) echo 'l-menu__item--active' ?>"><a href="/list/server/" class="l-profile__serversettings" title="<?=_('Server')?>"><i class="fas fa-cog"></i></a></div>
  48. <? } ?>
  49. <? if (($_SESSION['userContext'] === 'admin') && (isset($_SESSION['look']) && ($user == 'admin'))) {?>
  50. <!-- Hide 'edit user' entry point from other administrators for default 'admin' account-->
  51. <div class="l-menu__item"><a href="/list/log/" title="<?_('Logs')?>" class="l-profile__username"><i class="fas fa-history"></i></a></div>
  52. <? } else { ?>
  53. <div class="l-menu__item"><a href="/edit/user/?user=<?php echo $user; ?>&token=<?=$_SESSION['token']?>" title="<?=htmlspecialchars($user)?> (<?=htmlspecialchars($panel[$user]['NAME'])?>)" class="l-profile__username"><i class="fas fa-user-circle"></i></a></div>
  54. <? } ?>
  55. <div class="l-menu__item"><a href="https://docs.hestiacp.com/" rel="noopener" title="<?=_('Help')?>" class="l-profile__help" target="_blank"><i class="fas fa-question-circle"></i></a></div>
  56. <? if(isset($_SESSION['look']) && (!empty($_SESSION['look']))){ ?>
  57. <div class="l-menu__item"><a href="/logout/" title="<?=_('Log out')?> (<?=$user?>)" class="l-profile__logout"><i class="fas fa-arrow-alt-circle-up"></i></a></div>
  58. <? } else {?>
  59. <div class="l-menu__item"><a href="/logout/" title="<?=_('Log out')?>" class="l-profile__logout"><i class="fas fa-sign-out-alt"></i></a></div>
  60. <? } ?>
  61. </div>
  62. </div>
  63. </div>
  64. <ul class="notification-container hidden animated fadeIn"></ul>
  65. <div class="l-content">
  66. <div class="l-center">
  67. <div class="l-stat">
  68. <?php if (!isset($_SESSION['look'])) {?>
  69. <div class="l-stat__col <?php if($TAB == 'USER' ) echo 'l-stat__col--active' ?><?php if($TAB == 'LOG' ) echo 'l-stat__col--active' ?>">
  70. <a href="/list/user/">
  71. <div class="l-stat__col-title"><?=_('USER')?>&nbsp;&nbsp;<i class="fas fa-users"></i></div>
  72. <ul>
  73. <li><?=_('users')?>: <span>
  74. <? if (($_SESSION['user'] !== 'admin') && ($_SESSION['POLICY_SYSTEM_HIDE_ADMIN'] === 'yes')) {
  75. $user_count = $panel[$user]['U_USERS'] - 1;
  76. } else {
  77. $user_count = $panel[$user]['U_USERS'];
  78. } ?>
  79. <?=htmlspecialchars($user_count);?></span></li>
  80. <li><?=_('spnd');?>: <span><?=$panel[$user]['SUSPENDED_USERS']?></span></li>
  81. </ul>
  82. </a>
  83. </div>
  84. <?php } ?>
  85. <?php if ((isset($_SESSION['WEB_SYSTEM'])) && (!empty($_SESSION['WEB_SYSTEM']))) {?>
  86. <?php if($panel[$user]['WEB_DOMAINS'] != "0") { ?>
  87. <div class="l-stat__col <?php if($TAB == 'WEB' ) echo 'l-stat__col--active' ?>">
  88. <a href="/list/web/">
  89. <div class="l-stat__col-title"><?=_('WEB')?>&nbsp;&nbsp;<i class="fas fa-globe-americas"></i></div>
  90. <ul>
  91. <li><?=_('domains')?>: <span><?=$panel[$user]['U_WEB_DOMAINS']?> / <?=$panel[$user]['WEB_DOMAINS']=='unlimited' ? "<b>∞</b>" : $panel[$user]['WEB_DOMAINS']?> (<?=$panel[$user]['SUSPENDED_WEB']?>)</span></li>
  92. <li><?=_('aliases')?>: <span><?=$panel[$user]['U_WEB_ALIASES']?> / <?=$panel[$user]['WEB_ALIASES']=='unlimited' ? "<b>∞</b>" : $panel[$user]['WEB_ALIASES'] * $panel[$user]['WEB_DOMAINS']?></span></li>
  93. </ul>
  94. </a>
  95. </div>
  96. <?php } ?>
  97. <?php } ?>
  98. <?php if ((isset($_SESSION['DNS_SYSTEM'])) && (!empty($_SESSION['DNS_SYSTEM']))) {?>
  99. <?php if($panel[$user]['DNS_DOMAINS'] != "0") { ?>
  100. <div class="l-stat__col <?php if($TAB == 'DNS' ) echo 'l-stat__col--active' ?>">
  101. <a href="/list/dns/">
  102. <div class="l-stat__col-title"><?=_('DNS')?>&nbsp;&nbsp;<i class="fas fa-atlas"></i></div>
  103. <ul>
  104. <li><?=_('zones')?>: <span><?=$panel[$user]['U_DNS_DOMAINS']?> / <?=$panel[$user]['DNS_DOMAINS']=='unlimited' ? "<b>∞</b>" : $panel[$user]['DNS_DOMAINS']?> (<?=$panel[$user]['SUSPENDED_DNS']?>)</span></li>
  105. <li><?=_('records')?>: <span><?=$panel[$user]['U_DNS_RECORDS']?> / <?=$panel[$user]['DNS_RECORDS']=='unlimited' ? "<b>∞</b>" : $panel[$user]['DNS_RECORDS'] * $panel[$user]['DNS_DOMAINS']?></span></li>
  106. </ul>
  107. </a>
  108. </div>
  109. <?php } ?>
  110. <?php } ?>
  111. <?php if ((isset($_SESSION['MAIL_SYSTEM'])) && (!empty($_SESSION['MAIL_SYSTEM']))) {?>
  112. <?php if($panel[$user]['MAIL_DOMAINS'] != "0") { ?>
  113. <div class="l-stat__col <?php if($TAB == 'MAIL' ) echo 'l-stat__col--active' ?>">
  114. <a href="/list/mail/">
  115. <div class="l-stat__col-title"><?=_('MAIL')?>&nbsp;&nbsp;<i class="fas fa-mail-bulk"></i></div>
  116. <ul>
  117. <li><?=_('domains')?>: <span><?=$panel[$user]['U_MAIL_DOMAINS']?> / <?=$panel[$user]['MAIL_DOMAINS']=='unlimited' ? "<b>∞</b>" : $panel[$user]['MAIL_DOMAINS']?> (<?=$panel[$user]['SUSPENDED_MAIL']?>)</span></li>
  118. <li><?=_('accounts')?>: <span><?=$panel[$user]['U_MAIL_ACCOUNTS']?> / <?=$panel[$user]['MAIL_ACCOUNTS']=='unlimited' ? "<b>∞</b>" : $panel[$user]['MAIL_ACCOUNTS'] * $panel[$user]['MAIL_DOMAINS']?></span></li>
  119. </ul>
  120. </a>
  121. </div>
  122. <?php } ?>
  123. <?php } ?>
  124. <?php if ((isset($_SESSION['DB_SYSTEM'])) && (!empty($_SESSION['DB_SYSTEM']))) {?>
  125. <?php if($panel[$user]['DATABASES'] != "0") { ?>
  126. <div class="l-stat__col <?php if($TAB == 'DB' ) echo 'l-stat__col--active' ?>">
  127. <a href="/list/db/">
  128. <div class="l-stat__col-title"><?=_('DB')?>&nbsp;&nbsp;<i class="fas fa-database"></i></div>
  129. <ul>
  130. <li><?=_('databases')?>: <span><?=$panel[$user]['U_DATABASES']?> / <?=$panel[$user]['DATABASES']=='unlimited' ? "<b>∞</b>" : $panel[$user]['DATABASES']?> (<?=$panel[$user]['SUSPENDED_DB']?>)</span></li>
  131. </ul>
  132. </a>
  133. </div>
  134. <?php } ?>
  135. <?php } ?>
  136. <?php if ((isset($_SESSION['CRON_SYSTEM'])) && (!empty($_SESSION['CRON_SYSTEM']))) {?>
  137. <?php if($panel[$user]['CRON_JOBS'] != "0") { ?>
  138. <div class="l-stat__col <?php if($TAB == 'CRON' ) echo 'l-stat__col--active' ?>">
  139. <a href="/list/cron/">
  140. <div class="l-stat__col-title"><?=_('CRON')?>&nbsp;&nbsp;<i class="fas fa-clock"></i></div>
  141. <ul>
  142. <li><?=_('jobs')?>: <span><?=$panel[$user]['U_CRON_JOBS']?> / <?=$panel[$user]['CRON_JOBS']=='unlimited' ? "<b>∞</b>" : $panel[$user]['CRON_JOBS']?> (<?=$panel[$user]['SUSPENDED_CRON']?>)</span></li>
  143. </ul>
  144. </a>
  145. </div>
  146. <?php } ?>
  147. <?php } ?>
  148. <?php if ((isset($_SESSION['BACKUP_SYSTEM'])) && (!empty($_SESSION['BACKUP_SYSTEM']))) {?>
  149. <?php if($panel[$user]['BACKUPS'] != "0") { ?>
  150. <div class="l-stat__col <?php if($TAB == 'BACKUP' ) echo 'l-stat__col--active' ?>">
  151. <a href="/list/backup/">
  152. <div class="l-stat__col-title"><?=_('BACKUP')?>&nbsp;&nbsp;<i class="fas fa-file-archive"></i></div>
  153. <ul>
  154. <li><?=_('backups')?>: <span><?=$panel[$user]['U_BACKUPS']?> / <?=$panel[$user]['BACKUPS']=='unlimited' ? "<b>∞</b>" : $panel[$user]['BACKUPS']?></span></li>
  155. </ul>
  156. </a>
  157. </div>
  158. <?php } ?>
  159. <?php } ?>
  160. </div>
  161. </div>
  162. <div class="l-separator"></div>