Index: arma2/frontend/config.py
===================================================================
--- arma2/frontend/config.py	(revision 102080c104b4fb5d3307c8a7fe5776becae17738)
+++ arma2/frontend/config.py	(revision 2c1e9b313f17c3adcca1e53bbf5c32cba4db58e1)
@@ -7,5 +7,5 @@
 
 ldapSERVER		= 'localhost'
-ldapBASE		= ''
+ldapBASE = 'dc=usla, dc=org, dc=ar'
 ldapDN			= ''
 ldapSECRET		= ''
Index: arma2/frontend/daemon_xmlrpc.py
===================================================================
--- arma2/frontend/daemon_xmlrpc.py	(revision 102080c104b4fb5d3307c8a7fe5776becae17738)
+++ arma2/frontend/daemon_xmlrpc.py	(revision 2c1e9b313f17c3adcca1e53bbf5c32cba4db58e1)
@@ -1,7 +1,11 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
 from SimpleXMLRPCServer import SimpleXMLRPCServer
 from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler
+
 from config import xmlrpcServerIP, xmlrpcServerPort
 import password
 import challange
+import org
 
 # Restrict to a particular path.
@@ -18,4 +22,6 @@
         self.server.register_function(challange.validateTexcha)
         self.server.register_function(challange.getTexcha)
+        self.server.register_function(org.listORGs)
+        self.server.register_function(self.createUser)
 
     def run(self):
@@ -23,4 +29,9 @@
         self.server.serve_forever()
 
+    def createUser(self, name, userid, password, lug):
+        """Just dummy for test"""
+        print "Nombre: %s, UserId: %s, Lug: %s" % (name, userid, lug)
+        return u"User creado con Ã©xito"
+
 if __name__ == "__main__":
     s = RequestHandler(xmlrpcServerIP, xmlrpcServerPort)
Index: arma2/idCentral/idcentral/idcentral.py
===================================================================
--- arma2/idCentral/idcentral/idcentral.py	(revision 03d5364592543369d35b1ad6fcae67be27c5c4d9)
+++ arma2/idCentral/idcentral/idcentral.py	(revision 2c1e9b313f17c3adcca1e53bbf5c32cba4db58e1)
@@ -34,22 +34,22 @@
     implements(IRequestHandler, ITemplateProvider, IPermissionRequestor)
 
-    project_id_validator = re.compile("[a-z]+[_\-0-9]*[a-z]*$")
-    sug_project_name = Option('NewProject', 'sug_project_name',
-            doc=u'Sugerencias para el nombre del proyecto')
-    sug_project_id = Option('NewProject', 'sug_project_id',
-            doc=u'Sugerencias para el Id del proyecto')
-    intro = Option('NewProject', 'intro',
-            doc=u'IntroducciÃ³n del formulario de nuevo Proyecto')
-    script = Option('NewProject', 'script',
-            doc=u'Script bÃ¡shico al que llama luego de parsear los datos '\
-                    u'ingresados, el script debe aceptar los siguientes '\
-                    u'parÃ¡metros repo_type project_id titulo owner')
-    max_cant_proj = IntOption('NewProject', 'width', 5,
-                    """Cantidad de proyectos por persona""")
-    project_list_cache = []
-    clear_cache = True
-    repo_type_supported = ['svn', 'hg', 'bzr', 'git']
+    user_id_validator = re.compile("^[_\-\.a-zA-Z]+$")
+    sug_name_lastname = Option('IdCentral', 'sug_name_lastname',
+            doc=u'Sugerencias para el nombre')
+    sug_user_id = Option('IdCentral', 'sug_project_id',
+            doc=u'Sugerencias para el Id del usuario')
+    sug_usergroup = Option('IdCentral', 'sug_usergroup',
+            doc=u'Sugerencia para el grupo de usuario')
+    sug_texcha = Option('IdCentral', 'sug_texcha',
+            doc=u'Sugerencia para el TexCha')
+    sug_passwd = Option('IdCentral', 'sug_passwd',
+            doc=u'Sugerencia para el Password')
+    sug_confirm_passwd = Option('IdCentral', 'sug_confirm_passwd',
+            doc=u'Sugerencia para el Confirm Password')
+    intro = Option('IdCentral', 'intro',
+            doc=u'IntroducciÃ³n del formulario de nuevo usuario')
     daemon_idCentral = xmlrpclib.ServerProxy("http://localhost:8008", allow_none=1)
     texcha = ""
+    data = {}
 
     # IRequestHandler methods
@@ -59,5 +59,5 @@
     def process_request(self, req):
         add_stylesheet(req, 'nuldap/css/password.css')
-        self.data = {'intro': self.intro}
+        self.sugerencias()
         action = req.args.get('action')
         format = req.args.get('format')
@@ -65,9 +65,10 @@
         if req.method == 'GET':
             self.data['texcha'] = self.texcha = self.daemon_idCentral.getTexcha()
+            self.data['orgs'] = self.daemon_idCentral.listORGs()
         elif req.method == 'POST' and action == 'newuser':
-            self._parser(req)
-                #self.create_project()
-                #return 'project_created.html', self.data, None
-            #add_stylesheet(req, 'common/css/trac.css')
+            if self._parser(req):
+                self.daemon_idCentral.createUser(self.data['name_lastname'],
+                        self.data['userid'], self.data['passwd'], self.data['lug_selected'])
+                return 'usuario_creado.html', self.data, None
         return 'nuevo_usuario.html', self.data, None
 
@@ -77,7 +78,8 @@
         valid = True
         self.data['name_lastname'] = req.args.get('name_lastname')
-        self.data['user_put'] = req.args.get('user_put').lower()
-        self.data['lug'] = req.args.get('lug')
-        self.data[self.data['lug']] = {"selected" : "True"}
+        self.data['userid'] = req.args.get('userid').lower()
+        self.data['lug_selected'] = req.args.get('lug')
+        self.data[self.data['lug_selected']] = {"selected" : "True"}
+        self.data['orgs'] = self.daemon_idCentral.listORGs()
         self.data['passwd'] = req.args.get('passwd')
         self.data['confirm_passwd'] = req.args.get('confirm_passwd')
@@ -90,5 +92,26 @@
             self.data['texcha'] = texcha = self.daemon_idCentral.getTexcha()
             valid = False
+        if not re.match(self.user_id_validator, self.data['userid']):
+            self.data['error_userid'] = u'Tu id Usuario posee carÃ¡cteres no permitidos'
+            valid = False
+        if len(self.data['name_lastname']) == 0:
+            self.data['error_name_lastname'] = u'El campo Usuario y Apellido es obligatorio'
+            valid = False
+        if self.daemon_idCentral.checkPasswordStrengh(self.data['passwd']) <= 2 and valid:
+            self.data['error_passwd'] = u'Tu contraseÃ±a es demasiado debil'
+            valid = False
+        if len(self.data['passwd']) == 0 and valid:
+            self.data['passwd'] = self.daemon_idCentral.generateRandomPassword()
+            self.data['passwd_generated'] = u'Tu password generado es %s' % self.data['passwd']
         return valid
+
+    def sugerencias(self):
+        self.data['intro'] = self.intro
+        self.data['sug_name_lastname'] = self.sug_name_lastname
+        self.data['sug_user_id'] = self.sug_user_id
+        self.data['sug_usergroup'] = self.sug_usergroup
+        self.data['sug_passwd'] = self.sug_passwd
+        self.data['sug_confirm_passwd'] = self.sug_confirm_passwd
+        self.data['sug_texcha'] = self.sug_texcha
 
     # ITemplateProvider methods
Index: arma2/idCentral/idcentral/templates/nuevo_usuario.html
===================================================================
--- arma2/idCentral/idcentral/templates/nuevo_usuario.html	(revision 03d5364592543369d35b1ad6fcae67be27c5c4d9)
+++ arma2/idCentral/idcentral/templates/nuevo_usuario.html	(revision 2c1e9b313f17c3adcca1e53bbf5c32cba4db58e1)
@@ -53,10 +53,4 @@
     <h1>Nuevo Usuario IdCentral</h1>
 
-    <py:if test="error_project_max">
-      <div id="content" class="error">
-        <label class="message">${error_project_max}</label>
-      </div>
-    </py:if>
-
     <p>${intro}</p>
 
@@ -80,11 +74,11 @@
 
           <div id="content" class="error">
-            <label><b>User:</b>
-              <input type="text" name="user_put" class="textwidget" size="20" value="$user_put"/>
-              <py:if test="error_user_put">
-                <label class="message">${error_user_put}</label>
+            <label><b>Usuario:</b>
+              <input type="text" name="userid" class="textwidget" size="20" value="$userid"/>
+              <py:if test="error_userid">
+                <label class="message">${error_userid}</label>
               </py:if>
               <div>
-                  <font color="Blue" size="-1">${sug_user_put}</font>
+                  <font color="Blue" size="-1">${sug_userid}</font>
               </div>
             </label>
@@ -94,6 +88,7 @@
             <label><b>Grupo de Usuario:</b>
               <select name="lug">
-                <option value="usla" py:attrs="usla">USLA</option>
-                <option value="sluc" py:attrs="sluc">SLUC</option>
+                  <py:for each="organization in orgs">
+                      <option value="${organization}" selected="${lug_selected==organization and 'selected' or None}">${organization}</option>
+                  </py:for>
               </select>
               <div>
