panel.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  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. <!-- Logo / Home Button -->
  11. <a href="<?=htmlspecialchars($home_url)?>" class="l-logo" title="<?=_('Hestia Control Panel');?>"></a>
  12. <!-- Left Menu -->
  13. <div class="l-menu clearfix noselect">
  14. <!-- Records tab -->
  15. <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>
  16. <!-- File Manager tab -->
  17. <?php if ((isset($_SESSION['FILE_MANAGER'])) && (!empty($_SESSION['FILE_MANAGER'])) && ($_SESSION['FILE_MANAGER'] == "true")) {?>
  18. <?php if (($_SESSION['userContext'] === 'admin') && (isset($_SESSION['look']) && ($_SESSION['look'] === 'admin') && ($_SESSION['POLICY_SYSTEM_PROTECTED_ADMIN'] == 'yes'))) {?>
  19. <!-- Hide file manager when impersonating admin-->
  20. <?php } else { ?>
  21. <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>
  22. <?php } ?>
  23. <?php } ?>
  24. <!-- Statistics tab-->
  25. <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>
  26. </div>
  27. <!-- Right Menu -->
  28. <div class="l-profile noselect">
  29. <div class="l-menu__item">
  30. <!-- Logged in as / Usage Statistics Overview -->
  31. <span class="pill usage">
  32. <?php
  33. if (isset($_SESSION['look'])) {
  34. $user_icon = 'fa-binoculars';
  35. } else if ($_SESSION['userContext'] === 'admin') {
  36. $user_icon = 'fa-user-tie';
  37. } else {
  38. $user_icon = 'fa-user';
  39. }
  40. ?>
  41. <span class="label-space-right"><i class="fas <?=$user_icon;?> icon-pad-right" title="<?=_('Logged in as');?>: <?=htmlspecialchars($panel[$user]['NAME'])?>"></i><b><?=htmlspecialchars($user)?></b></span>
  42. <span class="label-space-right"><i class="fas fa-hdd icon-pad-right" title="<?=_('Disk');?>: <?=humanize_usage_size($panel[$user]['U_DISK'])?> <?=humanize_usage_measure($panel[$user]['U_DISK'])?>"></i><b><?=humanize_usage_size($panel[$user]['U_DISK'])?></b> <?=humanize_usage_measure($panel[$user]['U_DISK'])?></span>
  43. <span><i class="fas fa-exchange-alt icon-pad-right" title="<?=_('Bandwidth');?>: <?=humanize_usage_size($panel[$user]['U_BANDWIDTH'])?> <?=humanize_usage_measure($panel[$user]['U_BANDWIDTH'])?>"></i><b><?=humanize_usage_size($panel[$user]['U_BANDWIDTH'])?></b> <?=humanize_usage_measure($panel[$user]['U_BANDWIDTH'])?></span>
  44. </span>
  45. </div>
  46. <!-- Notifications -->
  47. <?php if (($_SESSION['userContext'] === 'admin') && (isset($_SESSION['look']) && ($user == 'admin'))) {?>
  48. <!-- Do not show notifications panel when impersonating 'admin' user -->
  49. <?php } else { ?>
  50. <div class="l-menu__item">
  51. <a title="<?=_('Notifications');?>" class="l-profile__notifications <?php if ($panel[$user]['NOTIFICATIONS'] == 'yes') echo " updates"; ?>">
  52. <i class="fas fa-bell <?php if ($panel[$user]['NOTIFICATIONS'] == 'yes') echo " animated extended swing status-icon orange"; ?>"></i>
  53. </a>
  54. </div>
  55. <?php } ?>
  56. <!-- Server Settings -->
  57. <?php if (($_SESSION['userContext'] === 'admin') && ($_SESSION['POLICY_SYSTEM_HIDE_SERVICES'] !== 'yes') || ($_SESSION['user'] === 'admin')) {?>
  58. <?php if (($_SESSION['userContext'] === 'admin') && (!empty($_SESSION['look']))) {?>
  59. <!-- Hide 'Server Settings' button when impersonating 'admin' or other users -->
  60. <?php } else { ?>
  61. <div class="l-menu__item <?php if($TAB == 'SERVER') 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>
  62. <?php } ?>
  63. <?php } ?>
  64. <!-- Edit User -->
  65. <?php if (($_SESSION['userContext'] === 'admin') && (isset($_SESSION['look']) && ($user == 'admin'))) {?>
  66. <!-- Hide 'edit user' entry point from other administrators for default 'admin' account-->
  67. <div class="l-menu__item"><a href="/list/log/" title="<?_('Logs');?>" class="l-profile__username"><i class="fas fa-history"></i></a></div>
  68. <?php } else { ?>
  69. <?php if ($panel[$user]['SUSPENDED'] === 'no') {?>
  70. <div class="l-menu__item"><a href="/edit/user/?user=<?=$user; ?>&token=<?=$_SESSION['token']?>" title="<?=htmlspecialchars($user)?> (<?=htmlspecialchars($panel[$user]['NAME'])?>)" class="l-profile__username"><i class="fas fa-user-circle"></i></a></div>
  71. <?php } ?>
  72. <?php } ?>
  73. <!-- Help / Documentation-->
  74. <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>
  75. <!-- Logout -->
  76. <?php if (isset($_SESSION['look']) && (!empty($_SESSION['look']))) { ?>
  77. <div class="l-menu__item"><a href="/logout/?token=<?=$_SESSION['token']?>" title="<?=_('Log out');?> (<?=$user?>)" class="l-profile__logout"><i class="fas fa-arrow-alt-circle-up"></i></a></div>
  78. <?php } else { ?>
  79. <div class="l-menu__item"><a href="/logout/?token=<?=$_SESSION['token']?>" title="<?=_('Log out');?>" class="l-profile__logout"><i class="fas fa-sign-out-alt"></i></a></div>
  80. <?php } ?>
  81. </div>
  82. </div>
  83. </div>
  84. <ul class="notification-container hidden animated fadeIn"></ul>
  85. <div class="l-content">
  86. <div class="l-center">
  87. <div class="l-stat">
  88. <!-- Users tab -->
  89. <?php if (($_SESSION['userContext'] === 'admin') && (!isset($_SESSION['look']))) {?>
  90. <?php
  91. if (($_SESSION['user'] !== 'admin') && ($_SESSION['POLICY_SYSTEM_HIDE_ADMIN'] === 'yes')) {
  92. $user_count = $panel[$user]['U_USERS'] - 1;
  93. } else {
  94. $user_count = $panel[$user]['U_USERS'];
  95. }
  96. ?>
  97. <div class="l-stat__col <?php if($TAB == 'USER') echo 'l-stat__col--active' ?><?php if($TAB == 'LOG') echo 'l-stat__col--active' ?>">
  98. <a href="/list/user/" title="<?=_('Users');?>: <?=$user_count;?>&#13;<?=_('Suspended');?>: <?=$panel[$user]['SUSPENDED_USERS']?>">
  99. <div class="l-stat__col-title"><?=_('USER');?>&nbsp;&nbsp;<i class="fas fa-users"></i></div>
  100. <ul>
  101. <li><?=_('users');?>: <span><?=htmlspecialchars($user_count);?></span></li>
  102. <li><?=_('spnd');?>: <span><?=$panel[$user]['SUSPENDED_USERS']?></span></li>
  103. </ul>
  104. </a>
  105. </div>
  106. <?php } ?>
  107. <!-- Web tab -->
  108. <?php if ((isset($_SESSION['WEB_SYSTEM'])) && (!empty($_SESSION['WEB_SYSTEM']))) {?>
  109. <?php if($panel[$user]['WEB_DOMAINS'] != "0") { ?>
  110. <div class="l-stat__col <?php if($TAB == 'WEB') echo 'l-stat__col--active' ?>">
  111. <a href="/list/web/" title="<?=_('Domains');?>: <?=$panel[$user]['U_WEB_DOMAINS']?>&#13;<?=_('Aliases');?>: <?=$panel[$user]['U_WEB_ALIASES']?>&#13;<?=_('Limit')?>: <?=$panel[$user]['WEB_DOMAINS']=='unlimited' ? "∞" : $panel[$user]['WEB_DOMAINS']?>&#13;<?=_('Suspended');?>: <?=$panel[$user]['SUSPENDED_WEB']?>">
  112. <div class="l-stat__col-title"><?=_('WEB');?>&nbsp;&nbsp;<i class="fas fa-globe-americas"></i></div>
  113. <ul>
  114. <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>
  115. <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>
  116. </ul>
  117. </a>
  118. </div>
  119. <?php } ?>
  120. <?php } ?>
  121. <!-- DNS tab -->
  122. <?php if ((isset($_SESSION['DNS_SYSTEM'])) && (!empty($_SESSION['DNS_SYSTEM']))) {?>
  123. <?php if($panel[$user]['DNS_DOMAINS'] != "0") { ?>
  124. <div class="l-stat__col <?php if($TAB == 'DNS') echo 'l-stat__col--active' ?>">
  125. <a href="/list/dns/" title="<?=_('Domains');?>: <?=$panel[$user]['U_DNS_DOMAINS']?>&#13;<?=_('Limit')?>: <?=$panel[$user]['DNS_DOMAINS']=='unlimited' ? "∞" : $panel[$user]['DNS_DOMAINS']?>&#13;<?=_('Suspended');?>: <?=$panel[$user]['SUSPENDED_DNS']?>">
  126. <div class="l-stat__col-title"><?=_('DNS');?>&nbsp;&nbsp;<i class="fas fa-atlas"></i></div>
  127. <ul>
  128. <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>
  129. <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>
  130. </ul>
  131. </a>
  132. </div>
  133. <?php } ?>
  134. <?php } ?>
  135. <!-- Mail tab -->
  136. <?php if ((isset($_SESSION['MAIL_SYSTEM'])) && (!empty($_SESSION['MAIL_SYSTEM']))) {?>
  137. <?php if($panel[$user]['MAIL_DOMAINS'] != "0") { ?>
  138. <div class="l-stat__col <?php if($TAB == 'MAIL') echo 'l-stat__col--active' ?>">
  139. <a href="/list/mail/" title="<?=_('Domains');?>: <?=$panel[$user]['U_MAIL_DOMAINS']?>&#13;<?=_('Limit')?>: <?=$panel[$user]['MAIL_DOMAINS']=='unlimited' ? "∞" : $panel[$user]['MAIL_DOMAINS']?>&#13;<?=_('Suspended');?>: <?=$panel[$user]['SUSPENDED_MAIL']?>">
  140. <div class="l-stat__col-title"><?=_('MAIL');?>&nbsp;&nbsp;<i class="fas fa-mail-bulk"></i></div>
  141. <ul>
  142. <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>
  143. <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>
  144. </ul>
  145. </a>
  146. </div>
  147. <?php } ?>
  148. <?php } ?>
  149. <!-- Databases tab -->
  150. <?php if ((isset($_SESSION['DB_SYSTEM'])) && (!empty($_SESSION['DB_SYSTEM']))) {?>
  151. <?php if($panel[$user]['DATABASES'] != "0") { ?>
  152. <div class="l-stat__col <?php if($TAB == 'DB') echo 'l-stat__col--active' ?>">
  153. <a href="/list/db/" title="<?=_('Databases');?>: <?=$panel[$user]['U_DATABASES']?>&#13;<?=_('Limit')?>: <?=$panel[$user]['DATABASES']=='unlimited' ? "∞" : $panel[$user]['DATABASES']?>&#13;<?=_('Suspended');?>: <?=$panel[$user]['SUSPENDED_DB']?>">
  154. <div class="l-stat__col-title"><?=_('DB');?>&nbsp;&nbsp;<i class="fas fa-database"></i></div>
  155. <ul>
  156. <li><?=_('databases');?>: <span><?=$panel[$user]['U_DATABASES']?> / <?=$panel[$user]['DATABASES']=='unlimited' ? "<b>∞</b>" : $panel[$user]['DATABASES']?> (<?=$panel[$user]['SUSPENDED_DB']?>)</span></li>
  157. </ul>
  158. </a>
  159. </div>
  160. <?php } ?>
  161. <?php } ?>
  162. <!-- Cron tab -->
  163. <?php if ((isset($_SESSION['CRON_SYSTEM'])) && (!empty($_SESSION['CRON_SYSTEM']))) {?>
  164. <?php if($panel[$user]['CRON_JOBS'] != "0") { ?>
  165. <div class="l-stat__col <?php if($TAB == 'CRON') echo 'l-stat__col--active' ?>">
  166. <a href="/list/cron/" title="<?=_('Jobs');?>: <?=$panel[$user]['U_WEB_DOMAINS']?>&#13;<?=_('Limit')?>: <?=$panel[$user]['CRON_JOBS']=='unlimited' ? "∞" : $panel[$user]['CRON_JOBS']?>&#13;<?=_('Suspended');?>: <?=$panel[$user]['SUSPENDED_CRON']?>">
  167. <div class="l-stat__col-title"><?=_('CRON');?>&nbsp;&nbsp;<i class="fas fa-clock"></i></div>
  168. <ul>
  169. <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>
  170. </ul>
  171. </a>
  172. </div>
  173. <?php } ?>
  174. <?php } ?>
  175. <!-- Backups tab -->
  176. <?php if ((isset($_SESSION['BACKUP_SYSTEM'])) && (!empty($_SESSION['BACKUP_SYSTEM']))) {?>
  177. <?php if($panel[$user]['BACKUPS'] != "0") { ?>
  178. <div class="l-stat__col <?php if($TAB == 'BACKUP') echo 'l-stat__col--active' ?>">
  179. <a href="/list/backup/" title="<?=_('Backups');?>: <?=$panel[$user]['U_BACKUPS']?>&#13;<?=_('Limit')?>: <?=$panel[$user]['BACKUPS']=='unlimited' ? "∞" : $panel[$user]['BACKUPS']?>">
  180. <div class="l-stat__col-title"><?=_('BACKUP');?>&nbsp;&nbsp;<i class="fas fa-file-archive"></i></div>
  181. <ul>
  182. <li><?=_('backups');?>: <span><?=$panel[$user]['U_BACKUPS']?> / <?=$panel[$user]['BACKUPS']=='unlimited' ? "<b>∞</b>" : $panel[$user]['BACKUPS']?></span></li>
  183. </ul>
  184. </a>
  185. </div>
  186. <?php } ?>
  187. <?php } ?>
  188. </div>
  189. </div>
  190. <div class="l-separator"></div>