cuadrantes-espiral
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Cuadrantes-espiral] Niveles de usuarios


From: Javier Linares
Subject: Re: [Cuadrantes-espiral] Niveles de usuarios
Date: Fri, 21 Jun 2002 19:30:27 +0200
User-agent: Mutt/1.2.5i

> En una web de la que me encargo, y que tiene el mismo
> tipoUsuario en la

O sea, trabajando para competencia ;-)

> tabla usuarios (de hecho espiral se ha aprovechado del dinero
> que me pagó ese cliente, je je, viva el Open Source), me han
> planteado que a cada usuario se le pueda asignar acceso a
> determinadas secciones. Es decir, que desaparece el concepto de
> nivel Usuario, ya que cuando se crea/edita un usuario, se le
> puede dar acceso a esta sección si, a esta no, a la otra
> tampoco, a esta de aquí si, etc.

Estoy totalmente de acuerdo contigo. De hecho, es justo eso lo
que he propuesto, tener una tabla en la base de datos que asocie
cada sección con cada usuario dándole un permiso.

Ejemplo práctico: 

Anacleto es un usuario normal que tiene acceso de administrador
en una de las secciones (s1) y es responsable de otra sección
(s2). Pues entonces su ID de tipoUsuario estaría a 0 (porque no
es administrador de todo Ambulacro) y en la tabla que relaciona
usuarios con secciones y permisos aparecería algo así como:

       sección           usuario            permiso
       -------           -------            -------
       s1               anacleto            admin
       s2               anacleto            responsable

       (traduciendo los perisos por sus valores numéricos)

> que pretendo llevar a la practica es que en ese campo
> tipoUsuario (cuyo nombre se cambiará a seccionesUsuario o algo
> así) irá un array con el ID (por ejemplo) de las secciones a
> las que tiene acceso este usuario en cuestión.

Ese array del que hablas es justo esa base de datos. Tu concepto
es perfecto, pero hay que ajustarlo a la teoría de bases de
datos, que recomienda que se implemente de la forma que he
propuesto en mi mensaje anterior.

> Cuando alguien accede al backoffice [..] el sistema busca a qué
> secciones tiene acceso el usuario en cuestión, y le enseña los
> enlaces. Del mismo modo en cada página de cada sección estará
> el ID Sección y volverá a comprobar que el usuario tiene acceso
> a esa página.

Exacto, la base de datos cumple esto. Para listar los sitios
donde tiene acceso se hace una consulta a la base de datos SQL y
se recupera donde aparezca el usuario en cuestión (ahora ya
tienes el array del que hablabas en el punto anterior, sin que te
molesten los de otros usuarios). En la respuesta de la consulta
tendrás todos los registros para el usuario anacleto (en el caso
del ejemplo), así que ya tienes también las secciones y los
permisos.

> De este modo, tienes un sistema mucho más flexible y evitas los
> problemas en caso de que pasado mañana existan 100 tipos
> diferentes de cosas.

Claro, si existen más cosas a las que dar acceso se añaden a la
tabla que enumera las secciones y los usuarios y permisos.

> ¿Qué te parece? ¿Qué problemas le encuentras?

Pues me parece bien y problema ninguno. Digamos que mi propueta
es la implementación de la tuya, que es más teórica. Pero las dos
dicen lo mismo :)

>(mi cliente también se tendrá que ver beneficiado de espiral,
>no? :))

Pues esto no es nada nuevo, está en cualquier libro de base de
datos relacionales (que te aconsejo que leas, porque son lo mejor
para dormir ;)).

Saludos,

-- 
Javier Linares                  http://www.adala.org
address@hidden        address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]