(* COCANWIKI - a wiki written in Objective CAML.
* Written by Richard W.M. Jones <rich@merjis.com>.
* Copyright (C) 2004 Merjis Ltd.
- * $Id: create_user.ml,v 1.2 2004/09/22 10:19:26 rich Exp $
+ * $Id: create_user.ml,v 1.5 2004/10/23 09:36: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
if username = "" || password1 = "" || password2 = "" then (
error ~back_button:true ~title:"Bad username or password"
q "The username or password you gave is empty.";
- raise CgiExit
+ return ()
);
if password1 <> password2 then (
error ~back_button:true ~title:"Passwords don't match"
q "The two passwords you gave aren't identical.";
- raise CgiExit
+ return ()
);
let password = password1 in
if String.length username > 32 || String.length password > 32 then
*)
- let email = trim (q#param "email") in
- let email = if string_is_whitespace email then `Null else `String email in
-
(* Not a duplicate? *)
let sth = dbh#prepare_cached "select id from users
where hostid = ? and name = ?" in
sth#fetch1 ();
error ~back_button:true ~title:"Username already taken"
q "Someone has already taken that username.";
- raise CgiExit
+ return ()
with
Not_found -> ());
let can_manage_contacts = q#param_true "can_manage_contacts" in
let can_manage_site = q#param_true "can_manage_site" in
let can_edit_global_css = q#param_true "can_edit_global_css" in
+ let can_import_mail = q#param_true "can_import_mail" in
+ let force_password_change = q#param_true "force_password_change" in
(* Create the user account. *)
- let sth = dbh#prepare_cached "insert into users (name, password, email,
+ let sth = dbh#prepare_cached "insert into users (name, password,
hostid, can_edit, can_manage_users,
can_manage_contacts, can_manage_site,
- can_edit_global_css)
- values (?, ?, ?, ?, ?, ?, ?, ?, ?)" in
- sth#execute [`String username; `String password; email; `Int hostid;
+ can_edit_global_css, can_import_mail,
+ force_password_change)
+ values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" in
+ sth#execute [`String username; `String password; `Int hostid;
`Bool can_edit; `Bool can_manage_users;
`Bool can_manage_contacts; `Bool can_manage_site;
- `Bool can_edit_global_css];
+ `Bool can_edit_global_css; `Bool can_import_mail;
+ `Bool force_password_change];
dbh#commit ();