Ajout script migration
authorCyril Robert <Cyril Robert crobert@inverse.ca>
Thu, 11 Feb 2010 15:14:18 +0000 (10:14 -0500)
committerCyril Robert <Cyril Robert crobert@inverse.ca>
Thu, 11 Feb 2010 15:14:18 +0000 (10:14 -0500)
Scripts/SigmaCopyUsers/conf.py.edit [new file with mode: 0644]
Scripts/SigmaCopyUsers/copy_users.py [new file with mode: 0755]

diff --git a/Scripts/SigmaCopyUsers/conf.py.edit b/Scripts/SigmaCopyUsers/conf.py.edit
new file mode 100644 (file)
index 0000000..8cfb1c5
--- /dev/null
@@ -0,0 +1,13 @@
+db_origin = { 'host': '',
+              'user': '', 
+              'pass': '',
+              'db': '',
+             }
+
+db_destination = { 'host': '',
+                   'user': '',
+                   'pass': '',
+                   'db': '',
+                 }
+
+default_password = ""
diff --git a/Scripts/SigmaCopyUsers/copy_users.py b/Scripts/SigmaCopyUsers/copy_users.py
new file mode 100755 (executable)
index 0000000..ac740b5
--- /dev/null
@@ -0,0 +1,59 @@
+#!/usr/bin/env python
+
+import MySQLdb, re
+from datetime import datetime
+from conf import db_origin, db_destination, default_password
+
+
+# Correspondance: code_bureau:id_groupe (responsable)
+responsables = {1:21, 2:22, 4:23, 5:24, 6:25, 7:26, 
+                8:27, 9:28, 10:29, 15:30}
+
+
+if __name__ == "__main__":
+    origin = MySQLdb.connect(host=db_origin['host'],
+                             user=db_origin['user'],
+                             passwd=db_origin['pass'],
+                             db=db_origin['db'])
+    destination = MySQLdb.connect(host=db_destination['host'],
+                                  user=db_destination['user'],
+                                  passwd=db_destination['pass'],
+                                  db=db_destination['db'])
+    o = origin.cursor ()
+    d = destination.cursor ()
+
+    # Cherche les anciens
+    o.execute (
+    """SELECT u.c_utilisateur, u.l_prenom_utilisateur, u.l_nom_utilisateur, 
+              u.l_email, h.l_habilitation 
+       FROM `RE_UTILISATEUR_SIGMA` u, `GM_HABILITATIONS` h 
+       WHERE u.c_matricule=h.f_matricule 
+       AND h.l_habilitation like '%AB[%' 
+       AND h.df_activ is null 
+       AND u.i_utilisateur_actif = 1 
+       AND u.df_activation_utilisateur IS NULL 
+       AND u.c_utilisateur!='' 
+       ORDER BY u.c_utilisateur""")
+    rows = o.fetchall ()
+
+    print len (rows), "utilisateurs"
+    for row in rows:
+        (utilisateur, prenom, nom, email, habilitation) = row
+        d.execute (
+        """INSERT INTO `auth_user` (username, first_name, last_name, email, 
+                                    password, is_staff, is_active, is_superuser, 
+                                    last_login, date_joined) 
+           VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""", 
+           (utilisateur, prenom, nom, email, default_password, 0, 1, 
+            0, datetime.now(), datetime.now()))
+        d.execute ("""SELECT `id` FROM `auth_user` WHERE `username`=%s""", utilisateur)
+        user_id = d.fetchone()[0]
+
+        if re.match (r'AB\[\d+\]$', habilitation):
+            bureau = re.search (r'\[(\d+)\]', habilitation).group(1)
+            group = responsables[int(bureau)]
+            d.execute ("""INSERT INTO auth_user_groups (user_id, group_id) VALUES (%s, %s)""", (user_id, group))
+
+
+    o.close ()
+    d.close ()