remove old readme
[atutor.git] / docs / mods / _core / users / admin_delete.php
1 <?php
2 /****************************************************************/
3 /* ATutor                                                                                                               */
4 /****************************************************************/
5 /* Copyright (c) 2002-2010                                      */
6 /* Inclusive Design Institute                                   */
7 /* http://atutor.ca                                                                                             */
8 /*                                                              */
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 /****************************************************************/
16 // $Id$
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);
21
22 function delete_user($id) {
23         global $db, $msg;
24
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');
31                 exit;*/
32                 return;
33         }
34
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);
38
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);
42
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);
46
47
48         /****/
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);
58                         
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);
63                 }
64
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);
74
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);
79                 }
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);
84
85         /* end delete forum threads block. */
86         /****/
87
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);
91
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);
95
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);
99
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);
103
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);
107
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);
111
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);
115
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);
119         
120         // delete personal files from file storage
121         fs_delete_workspace(WORKSPACE_PERSONAL, $id);
122
123
124         return;
125 }
126
127 $ids = explode(',', $_REQUEST['id']);
128
129 if (isset($_POST['submit_yes'])) {
130         
131         foreach($ids as $id) {
132                 delete_user(intval($id));
133         }
134
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');
138         } else {
139                 header('Location: '.AT_BASE_HREF.'mods/_core/users/users.php');
140         }
141         exit;
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');
146         } else {
147                 header('Location: '.AT_BASE_HREF.'mods/_core/users/users.php');
148         }
149         exit;
150 }
151
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']);
157
158 $confirm = array('DELETE_USER', $names_html);
159 $msg->addConfirm($confirm, $hidden_vars);
160 $msg->printConfirm();
161
162 require(AT_INCLUDE_PATH.'footer.inc.php');
163
164 ?>