More thorough inclusion of the page bug. This should mean the page bug appears just...
[cocanwiki.git] / scripts / delete_user.ml
index ab2b8a4..da705f5 100644 (file)
@@ -1,7 +1,7 @@
 (* COCANWIKI - a wiki written in Objective CAML.
  * Written by Richard W.M. Jones <rich@merjis.com>.
  * Copyright (C) 2004 Merjis Ltd.
- * $Id: delete_user.ml,v 1.2 2004/09/23 11:56:47 rich Exp $
+ * $Id: delete_user.ml,v 1.5 2005/11/24 14:54:11 rich Exp $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -48,13 +48,24 @@ let run r (q : cgi) (dbh : Dbi.connection) hostid {hostname = hostname} self =
   (* Can't delete self! *)
   let () =
     match self with
-      | User (id, _, _) when id = userid ->
+      | User (id, _, _, _) when id = userid ->
          error ~back_button:true ~title:"Delete own account"
-           q "You cannot delete your own user account.";
+           dbh hostid q "You cannot delete your own user account.";
          return ()
       | _ -> () in
 
   (* Delete the user. *)
+  let sth =
+    dbh#prepare_cached "delete from recently_visited
+                         where userid = ? and hostid = ?" in
+  sth#execute [`Int userid; `Int hostid];
+
+  let sth =
+    dbh#prepare_cached "delete from pending_email_changes
+                         where userid = ?" in
+  sth#execute [`Int userid];
+
+
   let sth = dbh#prepare_cached "delete from usercookies where userid = ?" in
   sth#execute [`Int userid];
 
@@ -69,7 +80,7 @@ let run r (q : cgi) (dbh : Dbi.connection) hostid {hostname = hostname} self =
   dbh#commit ();
 
   ok ~title:"Account deleted" ~buttons:[ok_button "/_users"]
-    q "That user account was deleted."
+    dbh hostid q "That user account was deleted."
 
 let () =
   register_script ~restrict:[CanManageUsers] run