delete.php 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. <?php
  2. require_once("inc/prerequisites.inc.php");
  3. $AuthUsers = array("admin", "domainadmin", "user");
  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="mailbox_delete_domain" 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="mailbox_delete_alias" 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 = $_GET["aliasdomain"];
  70. $result = mailbox_get_alias_domain_details($alias_domain);
  71. if (!empty($result)) {
  72. ?>
  73. <div class="alert alert-warning" role="alert"><?=sprintf($lang['delete']['remove_domainalias_warning'], htmlspecialchars($_GET["aliasdomain"]));?></div>
  74. <form class="form-horizontal" role="form" method="post" action="/mailbox.php">
  75. <input type="hidden" name="alias_domain" value="<?php echo htmlspecialchars($alias_domain) ?>">
  76. <div class="form-group">
  77. <div class="col-sm-offset-1 col-sm-10">
  78. <button type="submit" name="mailbox_delete_alias_domain" class="btn btn-default btn-sm"><?=$lang['delete']['remove_button'];?></button>
  79. </div>
  80. </div>
  81. </form>
  82. <?php
  83. }
  84. else {
  85. ?>
  86. <div class="alert alert-info" role="alert"><?=$lang['info']['no_action'];?></div>
  87. <?php
  88. }
  89. }
  90. // DELETE DOMAIN ADMIN
  91. elseif (isset($_GET["domainadmin"]) &&
  92. ctype_alnum(str_replace(array('_', '.', '-'), '', $_GET["domainadmin"])) &&
  93. !empty($_GET["domainadmin"]) &&
  94. $_SESSION['mailcow_cc_role'] == "admin") {
  95. $domain_admin = $_GET["domainadmin"];
  96. ?>
  97. <div class="alert alert-warning" role="alert"><?=sprintf($lang['delete']['remove_domainadmin_warning'], htmlspecialchars($_GET["domainadmin"]));?></div>
  98. <form class="form-horizontal" role="form" method="post" action="/admin.php">
  99. <input type="hidden" name="username" value="<?=htmlspecialchars($domain_admin);?>">
  100. <div class="form-group">
  101. <div class="col-sm-offset-1 col-sm-10">
  102. <button type="submit" name="delete_domain_admin" class="btn btn-default btn-sm"><?=$lang['delete']['remove_button'];?></button>
  103. </div>
  104. </div>
  105. </form>
  106. <?php
  107. }
  108. // DELETE FORWARDING HOST
  109. elseif (isset($_GET["forwardinghost"]) &&
  110. !empty($_GET["forwardinghost"]) &&
  111. $_SESSION['mailcow_cc_role'] == "admin") {
  112. $host = $_GET["forwardinghost"];
  113. ?>
  114. <div class="alert alert-warning" role="alert"><?=sprintf($lang['delete']['remove_forwardinghost_warning'], htmlspecialchars($_GET["forwardinghost"]));?></div>
  115. <form class="form-horizontal" role="form" method="post" action="/admin.php">
  116. <input type="hidden" name="forwardinghost" value="<?=htmlspecialchars($host);?>">
  117. <div class="form-group">
  118. <div class="col-sm-offset-1 col-sm-10">
  119. <button type="submit" name="delete_forwarding_host" class="btn btn-default btn-sm"><?=$lang['delete']['remove_button'];?></button>
  120. </div>
  121. </div>
  122. </form>
  123. <?php
  124. }
  125. // DELETE MAILBOX
  126. elseif (isset($_GET["mailbox"]) &&
  127. filter_var($_GET["mailbox"], FILTER_VALIDATE_EMAIL) &&
  128. !empty($_GET["mailbox"])) {
  129. $mailbox = $_GET["mailbox"];
  130. if (hasMailboxObjectAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $mailbox)) {
  131. ?>
  132. <div class="alert alert-warning" role="alert"><?=sprintf($lang['delete']['remove_mailbox_warning'], htmlspecialchars($mailbox));?></div>
  133. <p><?=$lang['delete']['remove_mailbox_details'];?></p>
  134. <form class="form-horizontal" role="form" method="post" action="/mailbox.php">
  135. <input type="hidden" name="username" value="<?=htmlspecialchars($mailbox);?>">
  136. <div class="form-group">
  137. <div class="col-sm-offset-1 col-sm-10">
  138. <button type="submit" name="mailbox_delete_mailbox" class="btn btn-default btn-sm"><?=$lang['delete']['remove_button'];?></button>
  139. </div>
  140. </div>
  141. </form>
  142. <?php
  143. }
  144. else {
  145. ?>
  146. <div class="alert alert-info" role="alert"><?=$lang['info']['no_action'];?></div>
  147. <?php
  148. }
  149. }
  150. // DELETE RESOURCE
  151. elseif (isset($_GET["resource"]) &&
  152. filter_var($_GET["resource"], FILTER_VALIDATE_EMAIL) &&
  153. !empty($_GET["resource"])) {
  154. $resource = $_GET["resource"];
  155. if (hasMailboxObjectAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $resource)) {
  156. ?>
  157. <div class="alert alert-warning" role="alert"><?=sprintf($lang['delete']['remove_resource_warning'], htmlspecialchars($resource));?></div>
  158. <p><?=$lang['delete']['remove_resource_details'];?></p>
  159. <form class="form-horizontal" role="form" method="post" action="/mailbox.php">
  160. <input type="hidden" name="name" value="<?=htmlspecialchars($resource);?>">
  161. <div class="form-group">
  162. <div class="col-sm-offset-1 col-sm-10">
  163. <button type="submit" name="mailbox_delete_resource" class="btn btn-default btn-sm"><?=$lang['delete']['remove_button'];?></button>
  164. </div>
  165. </div>
  166. </form>
  167. <?php
  168. }
  169. else {
  170. ?>
  171. <div class="alert alert-info" role="alert"><?=$lang['info']['no_action'];?></div>
  172. <?php
  173. }
  174. }
  175. else {
  176. ?>
  177. <div class="alert alert-info" role="alert"><?=$lang['info']['no_action'];?></div>
  178. <?php
  179. }
  180. }
  181. elseif (isset($_SESSION['mailcow_cc_role']) && ($_SESSION['mailcow_cc_role'] == "user")) {
  182. // DELETE SYNCJOB
  183. if (isset($_GET["syncjob"]) &&
  184. is_numeric($_GET["syncjob"]) &&
  185. filter_var($_SESSION['mailcow_cc_username'], FILTER_VALIDATE_EMAIL)) {
  186. $id = $_GET["syncjob"];
  187. $result = get_syncjob_details($id);
  188. if (!empty($result)) {
  189. ?>
  190. <div class="alert alert-warning" role="alert"><?=sprintf($lang['delete']['remove_syncjob_warning'], htmlspecialchars($result['user2']));?></div>
  191. <p><?=$lang['delete']['remove_syncjob_details'];?></p>
  192. <form class="form-horizontal" role="form" method="post" action="/user.php">
  193. <input type="hidden" name="username" value="<?=htmlspecialchars($mailbox);?>">
  194. <div class="form-group">
  195. <div class="col-sm-offset-1 col-sm-10">
  196. <input type="hidden" name="id" value="<?=$_GET["syncjob"];?>">
  197. <button type="submit" name="delete_syncjob" value="1" class="btn btn-default btn-sm"><?=$lang['delete']['remove_button'];?></button>
  198. </div>
  199. </div>
  200. </form>
  201. <?php
  202. }
  203. else {
  204. ?>
  205. <div class="alert alert-info" role="alert"><?=$lang['info']['no_action'];?></div>
  206. <?php
  207. }
  208. }
  209. else {
  210. ?>
  211. <div class="alert alert-info" role="alert"><?=$lang['info']['no_action'];?></div>
  212. <?php
  213. }
  214. }
  215. else {
  216. ?>
  217. <div class="alert alert-danger" role="alert"><?=$lang['danger']['access_denied'];?></div>
  218. <?php
  219. }
  220. ?>
  221. </div>
  222. </div>
  223. </div>
  224. </div>
  225. <a href="<?=$_SESSION['return_to'];?>">&#8592; <?=$lang['delete']['previous'];?></a>
  226. </div> <!-- /container -->
  227. <?php
  228. require_once("inc/footer.inc.php");
  229. ?>