Foros del Web » Programando para Internet » ASP Clásico »

Para expertos, que esto es chungo...

Estas en el tema de Para expertos, que esto es chungo... en el foro de ASP Clásico en Foros del Web. A ver si consigo que esto se entienda. Tengo hecha una aplicación en Dreamweaver para gestionar el archivo de una empresa. Un empleado pasa su ...
  #1 (permalink)  
Antiguo 27/08/2004, 06:51
 
Fecha de Ingreso: agosto-2004
Mensajes: 41
Antigüedad: 19 años, 10 meses
Puntos: 0
Exclamación Para expertos, que esto es chungo...

A ver si consigo que esto se entienda. Tengo hecha una aplicación en Dreamweaver para gestionar el archivo de una empresa. Un empleado pasa su documentación al archivo y cuando consulte la aplicación (por la intranet) sólo podrá ver la documentación que él ha pasado, el resto no. Para ello, en la tabla "Documento" hay un campo "empleado" donde esta el Id del empleado que pasa este documento (lógicamente hay una tabla "empleados"). Sigo...

También he creado una variable de sesión con el Id del empleado que se conecta (variable "MMId"). Así, si el usuario quiere ver una lista de sus documentos que tiene en el archivo, hay un juego de registros con esta sentencia SQL:

SELECT *
FROM Documento
WHERE empleado=MMId

Hasta aquí correcto, el usuario sólo ve sus documentos. Ahora viene lo chungo...

Pero resulta que hay empleados que pueden acceder a TODA la documentación, y al tener en la consulta SQL la variable de sesión no puede acceder más que a la suya.

Alguien sabe como puedo solucionar esto??
Además, cada empleado tiene unos privilegios que les permiten acceder a ciertas páginas y a otras no. ¿¿Podría solucionar el problema mediante los privilegios en las consultas SQL o algo así?? Es que no se me ocurre otra cosa.

Gracias de antemano.
  #2 (permalink)  
Antiguo 27/08/2004, 08:00
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Se me ocurre que agregues un campo de estatus que tenga un 0 o un 1 si puede acceder a solo la suya o a toda. Dependiendo de ese campo formas la consulta.
  #3 (permalink)  
Antiguo 30/08/2004, 01:28
 
Fecha de Ingreso: agosto-2004
Mensajes: 41
Antigüedad: 19 años, 10 meses
Puntos: 0
Hola Myakire. Antes de nada muchas gracias. Explícame por favor un poco más en que consistiría eso porque yo no es que sea un experto y necesito algo más de ayuda. Sé lo que quieres decir, pero no sé dónde tendría que agregar el campo, si eso supondría hacer dos consultas para cada página con un IF o... vamos, que si me puedes explicar un poco más tu idea te lo agradecería.
  #4 (permalink)  
Antiguo 30/08/2004, 05:22
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Hola,

Sino tambien seme ocurre que puedes crear un campo con id que sea generico para todos aquellos que tengan permisos o que tu quieras que vean toda la información. En ese caso, en la consulta, pones que los que tengan esa ID puedan ver todo.

Nose si me explico

Laika
  #5 (permalink)  
Antiguo 30/08/2004, 09:13
 
Fecha de Ingreso: enero-2004
Mensajes: 12
Antigüedad: 20 años, 5 meses
Puntos: 0
Saludos

Yo lo que he visto en algunas páginas, o foros, donde los usuarios tienen distintos permisos según su condición, es que a cada usuario se le da un código de permisos, del 0 al 9 por ejemplo, donde el 9 sería el administrador supremo, que puede hacer de todo, y el 0 sería el usuario sin ningún permiso y no podría hacer nada.
Este número sería un campo más de la tabla de datos del usuario, y lo recogerías en una variable de sesión cuando se logue. Después por las distintas secciones tendrás que ir preguntando por este valor, por si el usuario tiene permisos suficientes.
Un ejemplo a ver si queda más claro. Supongamos que una página tiene 3 secciones además de la principal, un foro, las descargas, y una seccion de correo electronico. Los usuarios que acceden al foro son de nivel 3, por ejemplo, los que tienen derecho a entrar a descargas son de nivel 5, y además, estos, tienen derecho a entrar al foro, pero no tienen correo electrónico. Y por último los que tengan una cuenta de correo electrónico tendrán derecho a pasearse por toda la web, y su nivel será de 7. Pues bien. En la cabecera del foro tendrás que controlar que la variable permisos sea mayor a 2, en la entrada a las descargas que la variable de sesión de permisos sea mayor a 4, y la que controla la entrada en el correo electrónico sea mayor a 6.

No sé si me habré explicado bien, y si te servirá. Lo mismo puedes aplicar este sistema de permisos escalonados en tu aplicación.

Un saludo
  #6 (permalink)  
Antiguo 31/08/2004, 07:55
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Bueno, el campo tendría que estar en la tabla de usuarios, ya que este es el que va a tener el privilegio o no, y no tendrías que modificar la consulta, solo agregar un IF. Vamos a ver, supongo que en algún momento consultas la tabla de usuarios para verificar que el que se esta firmando sea un usuario válido:

sql = "SELECT * FROM Usuarios WHERE Idempleado="&request("Usuario")
Tabla.Open Sql, Conn
if Tabla.RecordCount > 0 Then ...

Bueno, pues en este momento si es válido, guardas en una variable el contenido del campo que acabas de agregar:

vStatus = Tabla("Status")
MMId = Tabla("IdEmpleado")

y solo condicionas las consultas que ya tienes:

if vStatus = 0 Then
sql = "SELECT * FROM Documento WHERE empleado="&MMId
Else
sql = "SELECT * FROM Documento"
End If

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:54.