From 3c86aa158f1a0464c877f2b4f1c0efb9494e0a47 Mon Sep 17 00:00:00 2001 From: Wilmer Ricciotti Date: Mon, 12 Dec 2011 15:37:38 +0000 Subject: [PATCH] Matitaweb: added utility for conversion of user dbs from the old to the new format. --- matitaB/matita/webdb_convert.ml | 64 +++++++++++++++++++++++++++++++++ matitaB/matita/webdb_convert.sh | 2 ++ 2 files changed, 66 insertions(+) create mode 100644 matitaB/matita/webdb_convert.ml create mode 100755 matitaB/matita/webdb_convert.sh diff --git a/matitaB/matita/webdb_convert.ml b/matitaB/matita/webdb_convert.ml new file mode 100644 index 000000000..ccd60930a --- /dev/null +++ b/matitaB/matita/webdb_convert.ml @@ -0,0 +1,64 @@ +(* Copyright (C) 2004-2011, HELM Team. + * + * This file is part of HELM, an Hypertextual, Electronic + * Library of Mathematics, developed at the Computer Science + * Department, University of Bologna, Italy. + * + * HELM is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * HELM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HELM; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, + * MA 02111-1307, USA. + * + * For details, see the HELM World-Wide-Web page, + * http://helm.cs.unibo.it/ + *) + +type session_id = Uuidm.t + +(* user table: user id, (password, optional session id) *) +type user = string * (string * session_id option) + +let user_tbl = (ref [] : user list ref) + +let lookup_user uid = List.assoc uid !user_tbl + +let get_users () = List.map fst !user_tbl + +(* serialization and deserialization of the user table *) +let config_path () = + let path = Helm_registry.get "matita.basedir" in + let dirname = Filename.dirname path in + HExtlib.mkdir dirname; + path +;; + +let deserialize () = + try + let utbl_ch = open_in (config_path () ^ "/usertable.dump.old") in + user_tbl := Marshal.from_channel utbl_ch; + close_in utbl_ch; + with + | Sys_error _ -> + user_tbl := [] +;; + +let _ = + MatitaInit.initialize_all (); + deserialize (); + let users = get_users () in + List.iter + (fun uid -> + let pw,_ = lookup_user uid in + MatitaAuthentication.add_user_no_checkout uid pw) + users +;; diff --git a/matitaB/matita/webdb_convert.sh b/matitaB/matita/webdb_convert.sh new file mode 100755 index 000000000..917b09084 --- /dev/null +++ b/matitaB/matita/webdb_convert.sh @@ -0,0 +1,2 @@ +#! +cp ~/.matita/usertable.dump ~/.matita/usertable.dump.old && ./webdb_convert -- 2.39.2