2 /****************************************************************/
4 /****************************************************************/
5 /* Copyright (c) 2002-2010 */
6 /* Inclusive Design Institute */
9 /* This program is free software. You can redistribute it and/or*/
10 /* modify it under the terms of the GNU General Public License */
11 /* as published by the Free Software Foundation. */
12 /****************************************************************/
13 /* linked from admin/users.php */
14 /* deletes a user from the system. */
15 /****************************************************************/
17 define('AT_INCLUDE_PATH', '../../../include/');
18 require(AT_INCLUDE_PATH.'vitals.inc.php');
19 require(AT_INCLUDE_PATH.'../mods/_standard/file_storage/file_storage.inc.php');
20 admin_authenticate(AT_ADMIN_PRIV_USERS);
22 function delete_user($id) {
25 //make sure not instructor of a course
26 $sql = "SELECT course_id FROM ".TABLE_PREFIX."courses WHERE member_id=$id";
27 $result = mysql_query($sql, $db);
28 if (($row = mysql_fetch_assoc($result))) {
29 /*$msg->addError('NODELETE_USER');
30 header('Location: '.AT_BASE_HREF.'users.php');
35 $sql = "DELETE FROM ".TABLE_PREFIX."course_enrollment WHERE member_id=$id";
36 mysql_query($sql, $db);
37 write_to_log(AT_ADMIN_LOG_DELETE, 'course_enrollment', mysql_affected_rows($db), $sql);
39 $sql = "DELETE FROM ".TABLE_PREFIX."forums_accessed WHERE member_id=$id";
40 mysql_query($sql, $db);
41 write_to_log(AT_ADMIN_LOG_DELETE, 'forums_accessed', mysql_affected_rows($db), $sql);
43 $sql = "DELETE FROM ".TABLE_PREFIX."forums_subscriptions WHERE member_id=$id";
44 mysql_query($sql, $db);
45 write_to_log(AT_ADMIN_LOG_DELETE, 'forums_subscriptions', mysql_affected_rows($db), $sql);
49 /* delete forum threads block: */
50 /* delete the thread replies: */
51 $sql = "SELECT COUNT(*) AS cnt, parent_id, forum_id FROM ".TABLE_PREFIX."forums_threads WHERE member_id=$id AND parent_id<>0 GROUP BY parent_id";
52 $result = mysql_query($sql, $db);
53 while ($row = mysql_fetch_assoc($result)) {
54 /* update the forum posts counter */
55 $sql = "UPDATE ".TABLE_PREFIX."forums SET num_posts=num_posts - $row[cnt], last_post=last_post WHERE forum_id=$row[forum_id]";
56 mysql_query($sql, $db);
57 write_to_log(AT_ADMIN_LOG_UPDATE, 'forums', mysql_affected_rows($db), $sql);
59 /* update the topics reply counter */
60 $sql = "UPDATE ".TABLE_PREFIX."forums_threads SET num_comments=num_comments-$row[cnt], last_comment=last_comment, date=date WHERE post_id=$row[parent_id]";
61 mysql_query($sql, $db);
62 write_to_log(AT_ADMIN_LOG_UPDATE, 'forums_threads', mysql_affected_rows($db), $sql);
65 /* delete threads this member started: */
66 $sql = "SELECT post_id, forum_id, num_comments FROM ".TABLE_PREFIX."forums_threads WHERE member_id=$id AND parent_id=0";
67 $result = mysql_query($sql, $db);
68 while ($row = mysql_fetch_assoc($result)) {
69 /* update the forum posts and topics counters */
70 $num_posts = $row['num_comments'] + 1;
71 $sql = "UPDATE ".TABLE_PREFIX."forums SET num_topics=num_topics-1, num_posts=num_posts - $num_posts, last_post=last_post WHERE forum_id=$row[forum_id]";
72 mysql_query($sql, $db);
73 write_to_log(AT_ADMIN_LOG_UPDATE, 'forums', mysql_affected_rows($db), $sql);
75 /* delete the replies */
76 $sql = "DELETE FROM ".TABLE_PREFIX."forums_threads WHERE parent_id=$row[post_id]";
77 mysql_query($sql, $db);
78 write_to_log(AT_ADMIN_LOG_DELETE, 'forums_threads', mysql_affected_rows($db), $sql);
80 /* delete the actual threads */
81 $sql = "DELETE FROM ".TABLE_PREFIX."forums_threads WHERE member_id=$id";
82 mysql_query($sql, $db);
83 write_to_log(AT_ADMIN_LOG_DELETE, 'forums_threads', mysql_affected_rows($db), $sql);
85 /* end delete forum threads block. */
88 $sql = "DELETE FROM ".TABLE_PREFIX."instructor_approvals WHERE member_id=$id";
89 mysql_query($sql, $db);
90 write_to_log(AT_ADMIN_LOG_DELETE, 'instructor_approvals', mysql_affected_rows($db), $sql);
92 $sql = "DELETE FROM ".TABLE_PREFIX."messages WHERE from_member_id=$id OR to_member_id=$id";
93 mysql_query($sql, $db);
94 write_to_log(AT_ADMIN_LOG_DELETE, 'messages', mysql_affected_rows($db), $sql);
96 $sql = "DELETE FROM ".TABLE_PREFIX."polls_members WHERE member_id=$id";
97 mysql_query($sql, $db);
98 write_to_log(AT_ADMIN_LOG_DELETE, 'polls_members', mysql_affected_rows($db), $sql);
100 $sql = "DELETE FROM ".TABLE_PREFIX."tests_answers WHERE member_id=$id";
101 mysql_query($sql, $db);
102 write_to_log(AT_ADMIN_LOG_DELETE, 'tests_answers', mysql_affected_rows($db), $sql);
104 $sql = "DELETE FROM ".TABLE_PREFIX."tests_results WHERE member_id='$id'";
105 mysql_query($sql, $db);
106 write_to_log(AT_ADMIN_LOG_DELETE, 'tests_results', mysql_affected_rows($db), $sql);
108 $sql = "DELETE FROM ".TABLE_PREFIX."users_online WHERE member_id=$id";
109 mysql_query($sql, $db);
110 write_to_log(AT_ADMIN_LOG_DELETE, 'users_online', mysql_affected_rows($db), $sql);
112 $sql = "DELETE FROM ".TABLE_PREFIX."members WHERE member_id=$id";
113 mysql_query($sql, $db);
114 write_to_log(AT_ADMIN_LOG_DELETE, 'members', mysql_affected_rows($db), $sql);
116 $sql = "DELETE FROM ".TABLE_PREFIX."member_track WHERE member_id=$id";
117 mysql_query($sql, $db);
118 write_to_log(AT_ADMIN_LOG_DELETE, 'member_track', mysql_affected_rows($db), $sql);
120 // delete personal files from file storage
121 fs_delete_workspace(WORKSPACE_PERSONAL, $id);
127 $ids = explode(',', $_REQUEST['id']);
129 if (isset($_POST['submit_yes'])) {
131 foreach($ids as $id) {
132 delete_user(intval($id));
135 $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');
136 if (isset($_POST['ml']) && $_REQUEST['ml']) {
137 header('Location: '.AT_BASE_HREF.'mods/_core/users/master_list.php');
139 header('Location: '.AT_BASE_HREF.'mods/_core/users/users.php');
142 } else if (isset($_POST['submit_no'])) {
143 $msg->addFeedback('CANCELLED');
144 if (isset($_POST['ml']) && $_REQUEST['ml']) {
145 header('Location: '.AT_BASE_HREF.'mods/_core/users/master_list.php');
147 header('Location: '.AT_BASE_HREF.'mods/_core/users/users.php');
152 require(AT_INCLUDE_PATH.'header.inc.php');
153 $names = get_login($ids);
154 $names_html = '<ul>'.html_get_list($names).'</ul>';
155 $hidden_vars['id'] = implode(',', array_keys($names));
156 $hidden_vars['ml'] = intval($_REQUEST['ml']);
158 $confirm = array('DELETE_USER', $names_html);
159 $msg->addConfirm($confirm, $hidden_vars);
160 $msg->printConfirm();
162 require(AT_INCLUDE_PATH.'footer.inc.php');