(* COCANWIKI - a wiki written in Objective CAML.
* Written by Richard W.M. Jones <rich@merjis.com>.
* Copyright (C) 2004 Merjis Ltd.
- * $Id: set_password.ml,v 1.1 2004/09/21 13:01:16 rich Exp $
+ * $Id: set_password.ml,v 1.5 2006/03/28 16:24:08 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
open Cocanwiki
open Cocanwiki_ok
-let run r (q : cgi) (dbh : Dbi.connection) hostid _ _ =
- let userid = int_of_string (q#param "userid") in
+let run r (q : cgi) dbh hostid _ _ =
+ let userid = Int32.of_string (q#param "userid") in
let password1 = q#param "password1" in
let password2 = q#param "password2" in
if password1 <> password2 then (
error ~back_button:true ~title:"Passwords don't match"
- q "The two passwords you gave aren't identical.";
- raise CgiExit
+ dbh hostid q "The two passwords you gave aren't identical.";
+ return ()
);
let password = password1 in
- let sth = dbh#prepare_cached "update users set password = ?
- where id = ? and hostid = ?" in
- sth#execute [`String password; `Int userid; `Int hostid];
+ PGSQL(dbh) "update users set password = $password
+ where id = $userid and hostid = $hostid";
- dbh#commit ();
+ PGOCaml.commit dbh;
ok ~title:"Password updated" ~buttons:[ok_button "/_users"]
- q "The password on that user account was updated."
+ dbh hostid q "The password on that user account was updated."
let () =
register_script ~restrict:[CanManageUsers] run