PageRenderTime 46ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

/wp-content/plugins/simple-forum/admin/panel-usergroups/support/sfa-usergroups-save.php

https://bitbucket.org/openfarmtech/weblog-content
PHP | 235 lines | 166 code | 44 blank | 25 comment | 40 complexity | ca6549f44f98ace7b065ecccef479c97 MD5 | raw file
Possible License(s): GPL-2.0, AGPL-1.0, LGPL-2.0, LGPL-3.0, BSD-3-Clause, GPL-3.0, LGPL-2.1, AGPL-3.0, CC-BY-SA-3.0
  1. <?php
  2. /*
  3. Simple:Press
  4. Admin User Groups Support Functions
  5. $LastChangedDate: 2010-03-26 16:38:27 -0700 (Fri, 26 Mar 2010) $
  6. $Rev: 3818 $
  7. */
  8. if (preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF']))
  9. {
  10. die('Access Denied');
  11. }
  12. # function to create a new user group
  13. function sfa_save_usergroups_new_usergroup()
  14. {
  15. check_admin_referer('forum-adminform_usergroupnew', 'forum-adminform_usergroupnew');
  16. # if no usergroup name supplied use a default name
  17. if (empty($_POST['usergroup_name']))
  18. {
  19. $usergroupname = __("New User Group", "sforum");
  20. } else {
  21. $usergroupname = sf_filter_title_save(trim($_POST['usergroup_name']));
  22. }
  23. $usergroupdesc = sf_filter_title_save(trim($_POST['usergroup_desc']));
  24. if (isset($_POST['usergroup_is_moderator']))
  25. {
  26. $usergroupismod = 1;
  27. } else {
  28. $usergroupismod = 0;
  29. }
  30. # create the usergroup
  31. $success = sfa_create_usergroup_row($usergroupname, $usergroupdesc, $usergroupismod, true);
  32. if ($success == false)
  33. {
  34. $mess = __("New User Group Creation Failed!", "sforum");
  35. } else {
  36. $mess = __("New User Group Created", "sforum");
  37. }
  38. return $mess;
  39. }
  40. # function to update an existing user group
  41. function sfa_save_usergroups_edit_usergroup()
  42. {
  43. global $wpdb;
  44. check_admin_referer('forum-adminform_usergroupedit', 'forum-adminform_usergroupedit');
  45. $usergroupdata = array();
  46. $usergroup_id = sf_esc_int($_POST['usergroup_id']);
  47. $usergroupdata['usergroup_name'] = sf_filter_title_save(trim($_POST['usergroup_name']));
  48. $usergroupdata['usergroup_desc'] = sf_filter_title_save(trim($_POST['usergroup_desc']));
  49. if (isset($_POST['usergroup_is_moderator'])) { $usergroupdata['usergroup_is_moderator'] = 1; } else { $usergroupdata['usergroup_is_moderator'] = 0; }
  50. # ensure that something has actually changed
  51. if ($usergroupdata['usergroup_name'] == $_POST['ugroup_name'] && $usergroupdata['usergroup_desc'] ==
  52. $_POST['ugroup_desc'] && $usergroupdata['usergroup_is_moderator'] == $_POST['ugroup_ismod'])
  53. {
  54. $mess = __("No Data Changed", "sforum");
  55. return $mess;
  56. }
  57. # update the user group info
  58. $sql = "UPDATE ".SFUSERGROUPS." SET ";
  59. $sql.= 'usergroup_name="'.$usergroupdata['usergroup_name'].'", ';
  60. $sql.= 'usergroup_desc="'.$usergroupdata['usergroup_desc'].'", ';
  61. $sql.= 'usergroup_is_moderator="'.$usergroupdata['usergroup_is_moderator'].'" ';
  62. $sql.= 'WHERE usergroup_id="'.$usergroup_id.'";';
  63. $success = $wpdb->query($sql);
  64. if ($success == false)
  65. {
  66. $mess = __("User Group Update Failed!", "sforum");
  67. } else {
  68. $mess = __("User Group Record Updated", "sforum");
  69. }
  70. return $mess;
  71. }
  72. function sfa_save_usergroups_delete_usergroup()
  73. {
  74. global $wpdb;
  75. check_admin_referer('forum-adminform_usergroupdelete', 'forum-adminform_usergroupdelete');
  76. $usergroup_id = sf_esc_int($_POST['usergroup_id']);
  77. # dont allow updates to the default user groups
  78. $usergroup = sfa_get_usergroups_row($usergroup_id);
  79. if ($usergroup->usergroup_locked)
  80. {
  81. $mess = __("Sorry, the default User Groups cannot be deleted.", "sforum");
  82. return $mess;
  83. }
  84. # remove all memberships for this user group
  85. $wpdb->query("DELETE FROM ".SFMEMBERSHIPS." WHERE usergroup_id=".$usergroup_id);
  86. # remove any permission sets using this user group
  87. $permissions = $wpdb->get_results("SELECT permission_id FROM ".SFPERMISSIONS." WHERE usergroup_id=".$usergroup_id);
  88. if ($permissions)
  89. {
  90. foreach ($permissions as $permission)
  91. {
  92. sfa_remove_permission_data($permission->permission_id);
  93. }
  94. }
  95. # remove any group default permissions using this user group
  96. $wpdb->query("DELETE FROM ".SFDEFPERMISSIONS." WHERE usergroup_id=".$usergroup_id);
  97. # remove the user group
  98. $wpdb->query("DELETE FROM ".SFMEMBERSHIPS." WHERE usergroup_id=".$usergroup_id);
  99. $success = $wpdb->query("DELETE FROM ".SFUSERGROUPS." WHERE usergroup_id=".$usergroup_id);
  100. if ($success == false)
  101. {
  102. $mess = __("User Group Delete Failed!", "sforum");
  103. } else {
  104. $mess = __("User Group Deleted", "sforum");
  105. #get affected members and update pm flag
  106. $members = $wpdb->get_results("SELECT user_id FROM ".SFMEMBERSHIPS.' WHERE usergroup_id='.$usergroup_id);
  107. sfc_rebuild_members_pm($members);
  108. }
  109. return $mess;
  110. }
  111. function sfa_save_usergroups_add_members()
  112. {
  113. check_admin_referer('forum-adminform_membernew', 'forum-adminform_membernew');
  114. # add the users to the user group membership
  115. $usergroup_id = sf_esc_int($_POST['usergroup_id']);
  116. if (isset($_POST['member_id']))
  117. {
  118. $user_id_list = array_unique($_POST['member_id']);
  119. }
  120. if (!isset($user_id_list)){
  121. $mess = __("No Data Changed!", "sforum");
  122. return $mess;
  123. }
  124. $members = array();
  125. for( $x=0; $x<count($user_id_list); $x++)
  126. {
  127. $user_id = sf_esc_int($user_id_list[$x]);
  128. $check = sf_check_membership($usergroup_id, $user_id);
  129. if (empty($check))
  130. {
  131. $success = sfc_add_membership($usergroup_id, $user_id);
  132. }
  133. if ($success == false)
  134. {
  135. $mess = __("Member Add Failed!", "sforum");
  136. return $mess;
  137. }
  138. # build members list to update
  139. $members[$x]->user_id = $user_id;
  140. # update mod flag
  141. sfc_update_member_moderator_flag($user_id);
  142. }
  143. sfc_rebuild_members_pm($members);
  144. $mess = __("Member(s) Added to User Group", "sforum");
  145. return $mess;
  146. }
  147. function sfa_save_usergroups_delete_members()
  148. {
  149. global $wpdb;
  150. check_admin_referer('forum-adminform_memberdel', 'forum-adminform_memberdel');
  151. $usergroup_id = sf_esc_int($_POST['usergroupid']);
  152. $new_usergroup_id = $_POST['usergroup_id'];
  153. if (isset($_POST['dmember_id']))
  154. {
  155. $user_id_list = array_unique($_POST['dmember_id']);
  156. }
  157. # make sure not moving to same user group
  158. if (!isset($user_id_list) || $usergroup_id == $new_usergroup_id)
  159. {
  160. $mess = __("No Data Changed!", "sforum");
  161. return $mess;
  162. }
  163. $members = array();
  164. for( $x=0; $x<count($user_id_list); $x++)
  165. {
  166. $user_id = sf_esc_int($user_id_list[$x]);
  167. $success = $wpdb->query("DELETE FROM ".SFMEMBERSHIPS." WHERE user_id=".$user_id." AND usergroup_id=".$usergroup_id);
  168. # build members list to update
  169. $members[$x]->user_id = $user_id;
  170. if ($new_usergroup_id != -1)
  171. {
  172. $check = sf_check_membership($new_usergroup_id, $user_id);
  173. if (empty($check))
  174. {
  175. $success = sfc_add_membership($new_usergroup_id, $user_id);
  176. }
  177. }
  178. # update mod flag
  179. sfc_update_member_moderator_flag($user_id);
  180. }
  181. # update pm flag for affected members
  182. sfc_rebuild_members_pm($members);
  183. if ($new_usergroup_id != -1)
  184. {
  185. $mess = __("Member(s) Moved", "sforum");
  186. } else {
  187. $mess = __("Member(s) Deleted From User Group", "sforum");
  188. }
  189. return $mess;
  190. }
  191. ?>