delete.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. require_once("inc/prerequisites.inc.php");
  3. $AuthUsers = array("admin", "domainadmin");
  4. if (!isset($_SESSION['mailcow_cc_role']) OR !in_array($_SESSION['mailcow_cc_role'], $AuthUsers)) {
  5. header('Location: /');
  6. exit();
  7. }
  8. require_once("inc/header.inc.php");
  9. ?>
  10. <div class="container">
  11. <div class="row">
  12. <div class="col-md-12">
  13. <div class="panel panel-default">
  14. <div class="panel-heading">
  15. <h3 class="panel-title"><?=$lang['delete']['title'];?></h3>
  16. </div>
  17. <div class="panel-body">
  18. <?php
  19. if (isset($_SESSION['mailcow_cc_role']) && ($_SESSION['mailcow_cc_role'] == "admin" || $_SESSION['mailcow_cc_role'] == "domainadmin")) {
  20. // DELETE DOMAIN
  21. if (isset($_GET["domain"]) &&
  22. is_valid_domain_name($_GET["domain"]) &&
  23. !empty($_GET["domain"]) &&
  24. $_SESSION['mailcow_cc_role'] == "admin") {
  25. $domain = $_GET["domain"];
  26. ?>
  27. <div class="alert alert-warning" role="alert"><?=sprintf($lang['delete']['remove_domain_warning'], htmlspecialchars($_GET["domain"]));?></div>
  28. <p><?=$lang['delete']['remove_domain_details'];?></p>
  29. <form class="form-horizontal" role="form" method="post" action="/mailbox.php">
  30. <input type="hidden" name="domain" value="<?php echo htmlspecialchars($domain) ?>">
  31. <div class="form-group">
  32. <div class="col-sm-offset-1 col-sm-10">
  33. <button type="submit" name="trigger_mailbox_action" value="deletedomain" class="btn btn-default btn-sm"><?=$lang['delete']['remove_button'];?></button>
  34. </div>
  35. </div>
  36. </form>
  37. <?php
  38. }
  39. // DELETE ALIAS
  40. elseif (isset($_GET["alias"]) &&
  41. (filter_var($_GET["alias"], FILTER_VALIDATE_EMAIL) || is_valid_domain_name(substr(strrchr($_GET["alias"], "@"), 1))) &&
  42. !empty($_GET["alias"])) {
  43. $domain = substr(strrchr($_GET["alias"], "@"), 1);
  44. if (hasDomainAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $domain)) {
  45. ?>
  46. <div class="alert alert-warning" role="alert"><?=sprintf($lang['delete']['remove_alias_warning'], htmlspecialchars($_GET["alias"]));?></div>
  47. <p><?=$lang['delete']['remove_alias_details'];?></p>
  48. <form class="form-horizontal" role="form" method="post" action="/mailbox.php">
  49. <input type="hidden" name="address" value="<?php echo htmlspecialchars($_GET["alias"]) ?>">
  50. <div class="form-group">
  51. <div class="col-sm-offset-1 col-sm-10">
  52. <button type="submit" name="trigger_mailbox_action" value="deletealias" class="btn btn-default btn-sm"><?=$lang['delete']['remove_button'];?></button>
  53. </div>
  54. </div>
  55. </form>
  56. <?php
  57. }
  58. else {
  59. ?>
  60. <div class="alert alert-info" role="alert"><?=$lang['info']['no_action'];?></div>
  61. <?php
  62. }
  63. }
  64. // DELETE ALIAS DOMAIN
  65. elseif (
  66. isset($_GET["aliasdomain"]) &&
  67. is_valid_domain_name($_GET["aliasdomain"]) &&
  68. !empty($_GET["aliasdomain"])) {
  69. $alias_domain = strtolower(trim($_GET["aliasdomain"]));
  70. try {
  71. $stmt = $pdo->prepare("SELECT `target_domain` FROM `alias_domain`
  72. WHERE `alias_domain`= :alias_domain");
  73. $stmt->execute(array(':alias_domain' => $alias_domain));
  74. $DomainData = $stmt->fetch(PDO::FETCH_ASSOC);
  75. }
  76. catch(PDOException $e) {
  77. $_SESSION['return'] = array(
  78. 'type' => 'danger',
  79. 'msg' => 'MySQL: '.$e
  80. );
  81. }
  82. if (hasDomainAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $DomainData['target_domain'])) {
  83. ?>
  84. <div class="alert alert-warning" role="alert"><?=sprintf($lang['delete']['remove_domainalias_warning'], htmlspecialchars($_GET["aliasdomain"]));?></div>
  85. <form class="form-horizontal" role="form" method="post" action="/mailbox.php">
  86. <input type="hidden" name="alias_domain" value="<?php echo htmlspecialchars($alias_domain) ?>">
  87. <div class="form-group">
  88. <div class="col-sm-offset-1 col-sm-10">
  89. <button type="submit" name="trigger_mailbox_action" value="deletealiasdomain" class="btn btn-default btn-sm"><?=$lang['delete']['remove_button'];?></button>
  90. </div>
  91. </div>
  92. </form>
  93. <?php
  94. }
  95. else {
  96. ?>
  97. <div class="alert alert-info" role="alert"><?=$lang['info']['no_action'];?></div>
  98. <?php
  99. }
  100. }
  101. // DELETE DOMAIN ADMIN
  102. elseif (isset($_GET["domainadmin"]) &&
  103. ctype_alnum(str_replace(array('_', '.', '-'), '', $_GET["domainadmin"])) &&
  104. !empty($_GET["domainadmin"]) &&
  105. $_SESSION['mailcow_cc_role'] == "admin") {
  106. $domain_admin = $_GET["domainadmin"];
  107. ?>
  108. <div class="alert alert-warning" role="alert"><?=sprintf($lang['delete']['remove_domainadmin_warning'], htmlspecialchars($_GET["domainadmin"]));?></div>
  109. <form class="form-horizontal" role="form" method="post" action="/admin.php">
  110. <input type="hidden" name="username" value="<?=htmlspecialchars($domain_admin);?>">
  111. <div class="form-group">
  112. <div class="col-sm-offset-1 col-sm-10">
  113. <button type="submit" name="trigger_delete_domain_admin" class="btn btn-default btn-sm"><?=$lang['delete']['remove_button'];?></button>
  114. </div>
  115. </div>
  116. </form>
  117. <?php
  118. }
  119. // DELETE MAILBOX
  120. elseif (isset($_GET["mailbox"]) &&
  121. filter_var($_GET["mailbox"], FILTER_VALIDATE_EMAIL) &&
  122. !empty($_GET["mailbox"])) {
  123. $mailbox = $_GET["mailbox"];
  124. $domain = substr(strrchr($mailbox, "@"), 1);
  125. if (hasDomainAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $domain)) {
  126. ?>
  127. <div class="alert alert-warning" role="alert"><?=sprintf($lang['delete']['remove_mailbox_warning'], htmlspecialchars($_GET["mailbox"]));?></div>
  128. <p><?=$lang['delete']['remove_mailbox_details'];?></p>
  129. <form class="form-horizontal" role="form" method="post" action="/mailbox.php">
  130. <input type="hidden" name="username" value="<?=htmlspecialchars($mailbox);?>">
  131. <div class="form-group">
  132. <div class="col-sm-offset-1 col-sm-10">
  133. <button type="submit" name="trigger_mailbox_action" value="deletemailbox" class="btn btn-default btn-sm"><?=$lang['delete']['remove_button'];?></button>
  134. </div>
  135. </div>
  136. </form>
  137. <?php
  138. }
  139. else {
  140. ?>
  141. <div class="alert alert-info" role="alert"><?=$lang['info']['no_action'];?></div>
  142. <?php
  143. }
  144. }
  145. else {
  146. ?>
  147. <div class="alert alert-info" role="alert"><?=$lang['info']['no_action'];?></div>
  148. <?php
  149. }
  150. }
  151. else {
  152. ?>
  153. <div class="alert alert-danger" role="alert"><?=$lang['danger']['access_denied'];?></div>
  154. <?php
  155. }
  156. ?>
  157. </div>
  158. </div>
  159. </div>
  160. </div>
  161. <a href="<?=$_SESSION['return_to'];?>">&#8592; <?=$lang['delete']['previous'];?></a>
  162. </div> <!-- /container -->
  163. <?php
  164. require_once("inc/footer.inc.php");
  165. ?>