/Upload/usercp2.php

https://gitlab.com/Conors99/ppm-1.8 · PHP · 250 lines · 200 code · 35 blank · 15 comment · 80 complexity · 0dc8085a95b33d592c45c17a20a198b8 MD5 · raw file

  1. <?php
  2. /**
  3. * MyBB 1.8
  4. * Copyright 2014 MyBB Group, All Rights Reserved
  5. *
  6. * Website: http://www.mybb.com
  7. * License: http://www.mybb.com/about/license
  8. *
  9. */
  10. define("IN_MYBB", 1);
  11. define('THIS_SCRIPT', 'usercp2.php');
  12. define("ALLOWABLE_PAGE", "removesubscription,removesubscriptions");
  13. $templatelist = 'usercp_nav_messenger,usercp_nav_changename,usercp_nav_profile,usercp_nav_misc,usercp_nav,usercp_addsubscription_thread,usercp_nav_messenger_tracking,usercp_nav_editsignature,usercp_nav_attachments,usercp_nav_messenger_compose,usercp_nav_messenger_folder';
  14. require_once "./global.php";
  15. require_once MYBB_ROOT."inc/functions_user.php";
  16. if($mybb->user['uid'] == 0)
  17. {
  18. error_no_permission();
  19. }
  20. // Verify incoming POST request
  21. verify_post_check($mybb->get_input('my_post_key'));
  22. $lang->load("usercp");
  23. usercp_menu();
  24. $server_http_referer = htmlentities($_SERVER['HTTP_REFERER']);
  25. $plugins->run_hooks("usercp2_start");
  26. if($mybb->get_input('action') == "do_addsubscription" && $mybb->get_input('type') != "forum")
  27. {
  28. $thread = get_thread($mybb->get_input('tid'));
  29. if(!$thread)
  30. {
  31. error($lang->error_invalidthread);
  32. }
  33. // Is the currently logged in user a moderator of this forum?
  34. $ismod = is_moderator($thread['fid']);
  35. // Make sure we are looking at a real thread here.
  36. if(($thread['visible'] != 1 && $ismod == false) || ($thread['visible'] > 1 && $ismod == true))
  37. {
  38. error($lang->error_invalidthread);
  39. }
  40. $forumpermissions = forum_permissions($thread['fid']);
  41. if($forumpermissions['canview'] == 0 || $forumpermissions['canviewthreads'] == 0 || (isset($forumpermissions['canonlyviewownthreads']) && $forumpermissions['canonlyviewownthreads'] != 0 && $thread['uid'] != $mybb->user['uid']))
  42. {
  43. error_no_permission();
  44. }
  45. $plugins->run_hooks("usercp2_do_addsubscription");
  46. add_subscribed_thread($thread['tid'], $mybb->get_input('notification', MyBB::INPUT_INT));
  47. if($mybb->get_input('referrer'))
  48. {
  49. $url = htmlspecialchars_uni($mybb->get_input('referrer'));
  50. }
  51. else
  52. {
  53. $url = get_thread_link($thread['tid']);
  54. }
  55. redirect($url, $lang->redirect_subscriptionadded);
  56. }
  57. elseif($mybb->get_input('action') == "addsubscription")
  58. {
  59. if($mybb->get_input('type') == "forum")
  60. {
  61. $forum = get_forum($mybb->get_input('fid', MyBB::INPUT_INT));
  62. if(!$forum)
  63. {
  64. error($lang->error_invalidforum);
  65. }
  66. $forumpermissions = forum_permissions($forum['fid']);
  67. if($forumpermissions['canview'] == 0 || $forumpermissions['canviewthreads'] == 0)
  68. {
  69. error_no_permission();
  70. }
  71. $plugins->run_hooks("usercp2_addsubscription_forum");
  72. add_subscribed_forum($forum['fid']);
  73. if($server_http_referer)
  74. {
  75. $url = $server_http_referer;
  76. }
  77. else
  78. {
  79. $url = "index.php";
  80. }
  81. redirect($url, $lang->redirect_forumsubscriptionadded);
  82. }
  83. else
  84. {
  85. $thread = get_thread($mybb->get_input('tid', MyBB::INPUT_INT));
  86. if(!$thread)
  87. {
  88. error($lang->error_invalidthread);
  89. }
  90. // Is the currently logged in user a moderator of this forum?
  91. $ismod = is_moderator($thread['fid']);
  92. // Make sure we are looking at a real thread here.
  93. if(($thread['visible'] != 1 && $ismod == false) || ($thread['visible'] > 1 && $ismod == true))
  94. {
  95. error($lang->error_invalidthread);
  96. }
  97. add_breadcrumb($lang->nav_subthreads, "usercp.php?action=subscriptions");
  98. add_breadcrumb($lang->nav_addsubscription);
  99. $forumpermissions = forum_permissions($thread['fid']);
  100. if($forumpermissions['canview'] == 0 || $forumpermissions['canviewthreads'] == 0 || (isset($forumpermissions['canonlyviewownthreads']) && $forumpermissions['canonlyviewownthreads'] != 0 && $thread['uid'] != $mybb->user['uid']))
  101. {
  102. error_no_permission();
  103. }
  104. $referrer = '';
  105. if($server_http_referer)
  106. {
  107. $referrer = $server_http_referer;
  108. }
  109. require_once MYBB_ROOT."inc/class_parser.php";
  110. $parser = new postParser;
  111. $thread['subject'] = $parser->parse_badwords($thread['subject']);
  112. $thread['subject'] = htmlspecialchars_uni($thread['subject']);
  113. $lang->subscribe_to_thread = $lang->sprintf($lang->subscribe_to_thread, $thread['subject']);
  114. $notification_none_checked = $notification_email_checked = $notification_pm_checked = '';
  115. if($mybb->user['subscriptionmethod'] == 1 || $mybb->user['subscriptionmethod'] == 0)
  116. {
  117. $notification_none_checked = "checked=\"checked\"";
  118. }
  119. else if($mybb->user['subscriptionmethod'] == 2)
  120. {
  121. $notification_email_checked = "checked=\"checked\"";
  122. }
  123. else if($mybb->user['subscriptionmethod'] == 3)
  124. {
  125. $notification_pm_checked = "checked=\"checked\"";
  126. }
  127. $plugins->run_hooks("usercp2_addsubscription_thread");
  128. eval("\$add_subscription = \"".$templates->get("usercp_addsubscription_thread")."\";");
  129. output_page($add_subscription);
  130. exit;
  131. }
  132. }
  133. elseif($mybb->get_input('action') == "removesubscription")
  134. {
  135. if($mybb->get_input('type') == "forum")
  136. {
  137. $forum = get_forum($mybb->get_input('fid', MyBB::INPUT_INT));
  138. if(!$forum)
  139. {
  140. error($lang->error_invalidforum);
  141. }
  142. $plugins->run_hooks("usercp2_removesubscription_forum");
  143. remove_subscribed_forum($forum['fid']);
  144. if($server_http_referer)
  145. {
  146. $url = $server_http_referer;
  147. }
  148. else
  149. {
  150. $url = "usercp.php?action=forumsubscriptions";
  151. }
  152. redirect($url, $lang->redirect_forumsubscriptionremoved);
  153. }
  154. else
  155. {
  156. $thread = get_thread($mybb->get_input('tid', MyBB::INPUT_INT));
  157. if(!$thread)
  158. {
  159. error($lang->error_invalidthread);
  160. }
  161. // Is the currently logged in user a moderator of this forum?
  162. $ismod = is_moderator($thread['fid']);
  163. // Make sure we are looking at a real thread here.
  164. if(($thread['visible'] != 1 && $ismod == false) || ($thread['visible'] > 1 && $ismod == true))
  165. {
  166. error($lang->error_invalidthread);
  167. }
  168. $plugins->run_hooks("usercp2_removesubscription_thread");
  169. remove_subscribed_thread($thread['tid']);
  170. if($server_http_referer)
  171. {
  172. $url = $server_http_referer;
  173. }
  174. else
  175. {
  176. $url = "usercp.php?action=subscriptions";
  177. }
  178. redirect($url, $lang->redirect_subscriptionremoved);
  179. }
  180. }
  181. elseif($mybb->get_input('action') == "removesubscriptions")
  182. {
  183. if($mybb->get_input('type') == "forum")
  184. {
  185. $plugins->run_hooks("usercp2_removesubscriptions_forum");
  186. $db->delete_query("forumsubscriptions", "uid='".$mybb->user['uid']."'");
  187. if($server_http_referer)
  188. {
  189. $url = $server_http_referer;
  190. }
  191. else
  192. {
  193. $url = "usercp.php?action=forumsubscriptions";
  194. }
  195. redirect($url, $lang->redirect_forumsubscriptionsremoved);
  196. }
  197. else
  198. {
  199. $plugins->run_hooks("usercp2_removesubscriptions_thread");
  200. $db->delete_query("threadsubscriptions", "uid='".$mybb->user['uid']."'");
  201. if($server_http_referer)
  202. {
  203. $url = $server_http_referer;
  204. }
  205. else
  206. {
  207. $url = "usercp.php?action=subscriptions";
  208. }
  209. redirect($url, $lang->redirect_subscriptionsremoved);
  210. }
  211. }
  212. else
  213. {
  214. error($lang->error_invalidaction);
  215. }