From d994ae836f16169dbb455259d4fa898298ccd105 Mon Sep 17 00:00:00 2001
From: Daniel STAN <daniel.stan@crans.org>
Date: Fri, 23 Nov 2012 03:38:59 +0100
Subject: [PATCH] =?UTF-8?q?D=C3=A9but=20de=20restructuration?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitignore                            |  3 ++
 README                                | 11 ++++
 config.py => clientconfig.example.py  |  0
 converter.py                          | 28 ----------
 cranspasswords-server                 |  2 -
 cranspasswords.py                     |  4 +-
 cranspasswords-server.py => server.py | 61 +--------------------
 serverconfig.example.py               | 77 +++++++++++++++++++++++++++
 8 files changed, 95 insertions(+), 91 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 README
 rename config.py => clientconfig.example.py (100%)
 delete mode 100755 converter.py
 delete mode 100755 cranspasswords-server
 rename cranspasswords-server.py => server.py (75%)
 create mode 100755 serverconfig.example.py

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3b5fe9a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+clientconfig.py
+serverconfig.py
+*.pyc
diff --git a/README b/README
new file mode 100644
index 0000000..26c1c62
--- /dev/null
+++ b/README
@@ -0,0 +1,11 @@
+Bienvenue sur l'outil de gestion de mot de passe du Cr@ns.
+Ce dépôt git contient à la fois le programme client (à utiliser sur votre
+ordinateur) et le serveur.
+
+== Installation et configuration du client ==
+ * Copier le dépôt git sur votre ordinateur:
+    $ git clone git://git.crans.org/git/cranspasswords.git 
+ * Copier clientconfig.example.py en clientconfig.py et adapter
+   à vos besoins
+ * ???
+ 
diff --git a/config.py b/clientconfig.example.py
similarity index 100%
rename from config.py
rename to clientconfig.example.py
diff --git a/converter.py b/converter.py
deleted file mode 100755
index 6591b1b..0000000
--- a/converter.py
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/env python
-# -*- encoding: utf-8 -*-
-
-import json
-import glob
-import os,sys
-# Basic converter to json, avec roles nounous partout
-
-init_path = '/home/dstan/crans/passwords/'
-final_path = '/home/dstan/crans/passwords/v2/'
-
-os.chdir(init_path)
-
-filenames = glob.glob('*.asc')
-
-encoder=json.JSONEncoder()
-for filename in filenames:
-    fname=final_path+filename[:-4]+'.json'
-    if os.path.exists(fname):
-        print "%s already exists, ignored" % filename
-        continue
-    else:
-        print "Traitement de %s" % filename
-    nf = file(fname,'w')
-    
-    nf.write(encoder.encode({'roles':['nounous']\
-        ,'contents':open(filename).read()}))
-        
diff --git a/cranspasswords-server b/cranspasswords-server
deleted file mode 100755
index 30ace5f..0000000
--- a/cranspasswords-server
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-sudo /root/cranspasswords/cranspasswords-server.py $*
diff --git a/cranspasswords.py b/cranspasswords.py
index 44891d9..123fa00 100755
--- a/cranspasswords.py
+++ b/cranspasswords.py
@@ -10,7 +10,7 @@ import os
 import atexit
 import argparse
 import re
-import config
+import clientconfig as config
 
 ## Password pattern in files:
 PASS = re.compile('[\t ]*pass(?:word)?[\t ]*:[\t ]*(.*)\r?\n?$', \
@@ -222,7 +222,7 @@ def show_files():
     os.waitpid(proc.pid,0)
 
 def show_roles():
-    print """Liste des roles disponibles""" 
+    print """Liste des roles disponibles"""
     for role in all_roles().keys():
         if role.endswith('-w'): continue
         print " * " + role 
diff --git a/cranspasswords-server.py b/server.py
similarity index 75%
rename from cranspasswords-server.py
rename to server.py
index a633cae..2e63db3 100755
--- a/cranspasswords-server.py
+++ b/server.py
@@ -2,9 +2,6 @@
 # -*- encoding: utf-8 -*-
 """cranspasswords-server.py: Serveur pour cranspasswords"""
 
-MYDIR = '/root/cranspasswords/'
-STORE = MYDIR+'db/'
-
 import glob
 import os
 import pwd
@@ -15,66 +12,12 @@ import datetime
 from email.mime.text import MIMEText
 from email.mime.multipart import MIMEMultipart
 
+from serverconfig import CRANSP_MAIL, DEST_MAIL, KEYS, ROLES, STORE
+
 MYUID = pwd.getpwuid(os.getuid())[0]
 if MYUID == 'root':
     MYUID = os.environ['SUDO_USER']
 
-CRANSP_MAIL = "root@crans.org"
-DEST_MAIL = "root@crans.org"
-
-KEYS = {
-    "aza-vallina": ("Damien.Aza-Vallina@crans.org", None),
-    "dandrimont": ("nicolas.dandrimont@crans.org", "66475AAF"),
-    "blockelet": ("blockelet@crans.org", "AF087A52"),
-    "chambart": ("pierre.chambart@crans.org", "F2530FCE"),
-    "dimino": ("jdimino@dptinfo.ens-cachan.fr", "2127F85A"),
-    "durand-gasselin": ("adg@crans.org", "8E96ACDA"),
-    "glondu": ("Stephane.Glondu@crans.org", "49881AD3"),
-    "huber": ("olivier.huber@crans.org", "E0DCF376"),
-    "lagorce": ("xavier.lagorce@crans.org", "0BF3708E"),
-    "parret-freaud": ("parret-freaud@crans.org", "7D980513"),
-    "tvincent": ("vincent.thomas@crans.org", "C5C4ACC0"),
-    "iffrig": ("iffrig@crans.org","5BEC9A2F"),
-    "becue": ("becue@crans.org", "194974E2"),
-    "dstan": ("daniel.stan@crans.org", "6E1C820B"),
-    "samir": ("samir@crans.org", "41C2B76B"),
-    "boilard": ("boilard@crans.org", "C39EB6F4"),
-    "cauderlier": ("cauderlier@crans.org",None),    #Méchant pas beau
-    "maioli": ("maioli@crans.org",None),             #Bis (maybe 9E5026E8)
-    "legallic": ("legallic@crans.org", "3784CFC3"),
-    }
-
-RTC=[
-    "iffrig"
-    ]
-NOUNOUS=RTC+[
-    "blockelet",
-    "becue",
-    "dstan",
-    "chambart",
-    "dimino",
-    "durand-gasselin",
-    "glondu",
-    "huber",
-    "lagorce",
-    "parret-freaud",
-    "cauderlier",
-    "maioli",
-    "samir",
-    "boilard",
-    "legallic",
-    ]
-
-CA=[]
-
-ROLES = {
-    "ca": CA,
-    "ca-w": CA,
-    "nounous": NOUNOUS,
-    "nounous-w": NOUNOUS,
-    }
-
-
 def validate(roles,mode='r'):
     """Valide que l'appelant appartient bien aux roles précisés
     Si mode mode='w', recherche un rôle en écriture
diff --git a/serverconfig.example.py b/serverconfig.example.py
new file mode 100755
index 0000000..c01a672
--- /dev/null
+++ b/serverconfig.example.py
@@ -0,0 +1,77 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+""" Configuration Serveur de cranspasswords.
+Sont définis ici les utilisateurs et les rôles associés.
+Ce fichier est donné à titre d'exemple, mais n'est PAS
+utilisé lorsque fonctionnement en mode client.
+Dans le futur, sera remplacé par une connexion ldap.
+"""
+
+STORE = '/root/cranspasswords/db/'
+""" Répertoire de stockage """
+
+CRANSP_MAIL = "root@crans.org"
+""" Expéditeur du mail de notification """
+
+DEST_MAIL = "root@crans.org"
+""" Destinataire du mail de notification """
+
+
+KEYS = {
+    "aza-vallina": ("Damien.Aza-Vallina@crans.org", None),
+    "dandrimont": ("nicolas.dandrimont@crans.org", "66475AAF"),
+    "blockelet": ("blockelet@crans.org", "AF087A52"),
+    "chambart": ("pierre.chambart@crans.org", "F2530FCE"),
+    "dimino": ("jdimino@dptinfo.ens-cachan.fr", "2127F85A"),
+    "durand-gasselin": ("adg@crans.org", "8E96ACDA"),
+    "glondu": ("Stephane.Glondu@crans.org", "49881AD3"),
+    "huber": ("olivier.huber@crans.org", "E0DCF376"),
+    "lagorce": ("xavier.lagorce@crans.org", "0BF3708E"),
+    "parret-freaud": ("parret-freaud@crans.org", "7D980513"),
+    "tvincent": ("vincent.thomas@crans.org", "C5C4ACC0"),
+    "iffrig": ("iffrig@crans.org","5BEC9A2F"),
+    "becue": ("becue@crans.org", "194974E2"),
+    "dstan": ("daniel.stan@crans.org", "6E1C820B"),
+    "samir": ("samir@crans.org", "41C2B76B"),
+    "boilard": ("boilard@crans.org", "C39EB6F4"),
+    "cauderlier": ("cauderlier@crans.org",None),    #Méchant pas beau
+    "maioli": ("maioli@crans.org",None),             #Bis (maybe 9E5026E8)
+    "legallic": ("legallic@crans.org", "3784CFC3"),
+    }
+
+# Les variables suivantes sont utilisées pour définir le dictionnaire des
+# rôles.
+RTC=[
+    "iffrig"
+    ]
+NOUNOUS=RTC+[
+    "blockelet",
+    "becue",
+    "dstan",
+    "chambart",
+    "dimino",
+    "durand-gasselin",
+    "glondu",
+    "huber",
+    "lagorce",
+    "parret-freaud",
+    "cauderlier",
+    "maioli",
+    "samir",
+    "boilard",
+    "legallic",
+    ]
+
+CA=[
+    "samir",
+    "iffrig",
+    "cauderlier",
+]
+
+## Les vrais rôles !
+ROLES = {
+    "ca": CA,
+    "ca-w": CA,
+    "nounous": NOUNOUS,
+    "nounous-w": NOUNOUS,
+    }
-- 
GitLab