Version 3.3.2
Módulo Proyectos
Error:
Al definir contactos nuevos (por ejemplo: Técnico) para el módulo proyectos, si el usuario tiene (SOLO) permisos para visualizar sus proyectos (en los que es contacto), no le aparecen los proyectos.
Alternativas:
- Usar un tipo de contacto predefinido, de los que incluye la instalación
- Definir al usuario con permisos para ver todos los proyectos
NOTA: Ninguna es una alternativa efectiva.
Reproducción del error:
1. En Diccionarios, definir un tipo de contacto personalizado para el módulo de proyectos (Usuarios internos) --> En mi caso, TECHNICAL --> Técnico
2. En un proyecto existente añadir a un contacto interno ("usuario") como Técnico
3. Entrar con el "usuario"
Comprobaremos que los proyectos no aparecen pero sin embargo si aparecen las referencias a las empresas en las que está como contacto. Las tareas si aparecen y por medio de las tareas puede acceder a los proyectos pero ni en los listados ni en la pantalla principal de proyectos tiene acceso a ellos.
Contactos en projectos v.3.3.2
-
- Novato
- Mensajes: 3
- Registrado: Mar, 06/08/2013, 10:02
Hola, ese bug ya tiene una solución aunque no creo que se ha solucionado por parte del proyecto. Igual te va a pasar con los contactos externos, ellos no van a poder ver sus proyectos a no ser que los agregues como internos y sean jefes del proyecto.
La solución, copia este código: https://github.com/ilhooq/dolibarr/comm ... ff85935a14
y sustituye el contenido de htdocs/project/class/project.class.php con el que aparece en link de arriba. Por supuesto, primero guarda una copia de seguridad del archivo. A mi me funcionó de maravilla.
Igual encontré un bug de seguridad y le dí una solución medio chapucera pero eficaz. Puedes verlo aquí http://www.dolibarr.es/index.php/foro/7 ... -proyectos
Saludos, espero que te sirva
La solución, copia este código: https://github.com/ilhooq/dolibarr/comm ... ff85935a14
y sustituye el contenido de htdocs/project/class/project.class.php con el que aparece en link de arriba. Por supuesto, primero guarda una copia de seguridad del archivo. A mi me funcionó de maravilla.
Igual encontré un bug de seguridad y le dí una solución medio chapucera pero eficaz. Puedes verlo aquí http://www.dolibarr.es/index.php/foro/7 ... -proyectos
Saludos, espero que te sirva
Gracias alienmtnez,
He de decir que aunque tu respuesta me ayudo, tuve que modificarla ya que yo uso tipos de contacto con nombre distintos (TECNICO, JEFE DE PROYECTO, JEFE DE EQUIPO, ...)
Con lo que me mandaste, todos los tipos de contacto deberían de tener la palabra PROJECT en su contenido. Yo deje el código así para poder usar cualquier palabra:
if ($source == 'internal' && preg_match('//', $userRole[$nblinks]['code']) && $user->id == $userRole[$nblinks]['id']) {
if ($mode == 'read' && $user->rights->projet->lire) $userAccess++;
if ($mode == 'write' && $user->rights->projet->creer) $userAccess++;
if ($mode == 'delete' && $user->rights->projet->supprimer) $userAccess++;
}
if ($source == 'external' && preg_match('//', $userRole[$nblinks]['code']) && $user->contact_id == $userRole[$nblinks]['id']){
if ($mode == 'read' && $user->rights->projet->lire) $userAccess++;
if ($mode == 'write' && $user->rights->projet->creer) $userAccess++;
if ($mode == 'delete' && $user->rights->projet->supprimer) $userAccess++;
}
No entiendo de todas formas el por qué el equipo de Dolibarr ha establecido esa limitación ya que el contacto de proyecto no debería de importar el nombre que se le ponga, al fin y al cabo, ya está filtrado por "contacto de proyecto".
Gracias nuevamente
He de decir que aunque tu respuesta me ayudo, tuve que modificarla ya que yo uso tipos de contacto con nombre distintos (TECNICO, JEFE DE PROYECTO, JEFE DE EQUIPO, ...)
Con lo que me mandaste, todos los tipos de contacto deberían de tener la palabra PROJECT en su contenido. Yo deje el código así para poder usar cualquier palabra:
if ($source == 'internal' && preg_match('//', $userRole[$nblinks]['code']) && $user->id == $userRole[$nblinks]['id']) {
if ($mode == 'read' && $user->rights->projet->lire) $userAccess++;
if ($mode == 'write' && $user->rights->projet->creer) $userAccess++;
if ($mode == 'delete' && $user->rights->projet->supprimer) $userAccess++;
}
if ($source == 'external' && preg_match('//', $userRole[$nblinks]['code']) && $user->contact_id == $userRole[$nblinks]['id']){
if ($mode == 'read' && $user->rights->projet->lire) $userAccess++;
if ($mode == 'write' && $user->rights->projet->creer) $userAccess++;
if ($mode == 'delete' && $user->rights->projet->supprimer) $userAccess++;
}
No entiendo de todas formas el por qué el equipo de Dolibarr ha establecido esa limitación ya que el contacto de proyecto no debería de importar el nombre que se le ponga, al fin y al cabo, ya está filtrado por "contacto de proyecto".
Gracias nuevamente
Hola imase:
He procedido a abrir una incidencia sobre el problema con el acceso de contactos externos a Dolibarr. Sucede también con la última 3.4.
Gracias por informar del problema.
Un saludo.
He procedido a abrir una incidencia sobre el problema con el acceso de contactos externos a Dolibarr. Sucede también con la última 3.4.
Gracias por informar del problema.
Un saludo.
Desarrollador con categoría Almirante de Dolibarr.
¿Quiere soporte personalizado? Contacte conmigo.
¿Quiere soporte personalizado? Contacte conmigo.
Hola de nuevo:
Será arreglado en la futura versión 3.5.0.
De todas formas, la información de "contacto" es simplemente eso, información. Para poder permitir que acceda debes configurarlo como usuario participante del proyecto.
Un saludo.
Será arreglado en la futura versión 3.5.0.
De todas formas, la información de "contacto" es simplemente eso, información. Para poder permitir que acceda debes configurarlo como usuario participante del proyecto.
Un saludo.
Desarrollador con categoría Almirante de Dolibarr.
¿Quiere soporte personalizado? Contacte conmigo.
¿Quiere soporte personalizado? Contacte conmigo.
De todas formas, la información de "contacto" es simplemente eso, información. Para poder permitir que acceda debes configurarlo como usuario participante del proyecto.
Marcos, cuando pones a un usuario interno como contacto del proyecto y este usuario solo puede ver sus proyectos, si le asignas un tipo de contacto nuevo (por ejemplo "Técnico") no verá ningún proyecto a no ser que realices los cambios indicados arriba, por lo que no es solo información, implica también un criterio para filtrar si puedes tener o no acceso al proyecto.
Marcos, cuando pones a un usuario interno como contacto del proyecto y este usuario solo puede ver sus proyectos, si le asignas un tipo de contacto nuevo (por ejemplo "Técnico") no verá ningún proyecto a no ser que realices los cambios indicados arriba, por lo que no es solo información, implica también un criterio para filtrar si puedes tener o no acceso al proyecto.
Hola imase:
Para mí eso tiene sentido. Dolibarr sólo tiene 2 tipos de usuario de un proyecto (administrador/jefe y usuario/participante). Un usuario puede ser participante o jefe. Sin embargo un contacto puede ser lo que tú quieres que sea, y será a nivel meramente informativo, para que por ejemplo un empleado sepa a quién dirigirse en un momento concreto o para que quede constancia de ello.
No verá ningún proyecto porque no le has asignado el permiso de participante.
Coméntame tu parecer sobre esta explicación.
Un saludo.
Para mí eso tiene sentido. Dolibarr sólo tiene 2 tipos de usuario de un proyecto (administrador/jefe y usuario/participante). Un usuario puede ser participante o jefe. Sin embargo un contacto puede ser lo que tú quieres que sea, y será a nivel meramente informativo, para que por ejemplo un empleado sepa a quién dirigirse en un momento concreto o para que quede constancia de ello.
No verá ningún proyecto porque no le has asignado el permiso de participante.
Coméntame tu parecer sobre esta explicación.
Un saludo.
Desarrollador con categoría Almirante de Dolibarr.
¿Quiere soporte personalizado? Contacte conmigo.
¿Quiere soporte personalizado? Contacte conmigo.
Ahhh, ahora lo entiendo. Acabo de entenderlo.
Digamos que existirían dos categorías de usuarios: Los que participan en el proyecto y los que solo aparecen como meramente informativos pero que no se quiere que accedan al proyecto.
Tiene su lógica pero un poco rebuscada (jejeje) Si se tiene en cuenta que en un proyecto pueden trabajar 20 personas, lo más normal sería saber qué rol tiene cada una. Es por ello que lo que me indicas no termina de complacerme pero para eso dolibarr es una solución abierta que puede personalizarse.
Gracias por la explicación.
Digamos que existirían dos categorías de usuarios: Los que participan en el proyecto y los que solo aparecen como meramente informativos pero que no se quiere que accedan al proyecto.
Tiene su lógica pero un poco rebuscada (jejeje) Si se tiene en cuenta que en un proyecto pueden trabajar 20 personas, lo más normal sería saber qué rol tiene cada una. Es por ello que lo que me indicas no termina de complacerme pero para eso dolibarr es una solución abierta que puede personalizarse.
Gracias por la explicación.