Permiso para columna segun perfil de usuario
Necesito ayuda ya que tengo que restringir el acesso a 2 columnas de mi aplicacion web! En esas columnas van checkbox, si el perfil de usuario es analista deberia tener opcion de usar una column, si es jefe la otra columna, pero si en caso de que el jefe este de vacaciones una analista debe tener los 2 perfiles de usuario, el codigo que uso es el siguiente!
sqlUsuario,RecordUsuario 'busco en la base de datos al usuario que está accediendo a la página user = mid(Request.ServerVariables("REMOTE_USER"),instr(1,Request.ServerVariables("REMOTE_USER"),"\")+1) sqlUsuario="SELECT * FROM TBL_PLAN_ESCO_PB_USUARIO_SID WHERE (USUARIO = '"& User &"')" 'sqlUsuario="SELECT * FROM TBL_PLAN_ESCO_PB_USUARIO_SID WHERE (USUARIO = '"& Session("UserName") &"')" 'Se crea la cadena sql que verificará existencia del usuario en la tabla Set RecordUsuario = CreateObject("ADODB.RecordSet") RecordUsuario.Open sqlUsuario,Conexion '--- if RecordUsuario.EOF THEN 'Si esto se cumple es porque el usuario no aparece en la base de datos Response.Write("PERMISO DENEGADO") end if dim acceso acceso=false do while NOT RecordUsuario.EOF IF (RecordUsuario("CARGO") = "JEFE" or RecordUsuario("CARGO") = "ANALISTA") THEN acceso=true exit do end if RecordUsuario.MoveNext loop RecordUsuario.MoveFirst IF acceso=true THEN dim acceso_usuario if RecordUsuario("CARGO") <> "ANALISTA" THEN acceso_usuario="disabled" else if RecordUsuario("CARGO") = "ANALISTA" THEN acceso_usuario="" end if end if dim acceso_usuario2 if RecordUsuario("CARGO") = "JEFE" THEN acceso_usuario2="" else if RecordUsuario("CARGO") <> "JEFE" THEN acceso_usuario2="disabled" end if end if %> <% if request("a") = "actualizar" then Conexion.Execute("update user_planeamiento.TBL_PLAN_ESCO_PB_PRESUPUESTOSUMI_DETALLE_SID set estado='"&request("c")&"' where codigoproceso='"&request("concurso")&"'") Response.Write("
estado de pb "&request("concurso")&" actualizado") end if %> <% 'si la conexión está activa y además está tanto realizada como abierta a SQL Server 'if ((IsObject(Conexion)) and (Conexion.State = 1)) then Dim sqlProcedure,RecordProcedure sqlProcedure="exec user_planeamiento.sp_plan_esco_pb_revisarAprobarPB_sid" 'Se crea la cadena sql que consulta al procedure por el cual se consultarán los datos pertenecientes a la tabla Set RecordProcedure = CreateObject("ADODB.RecordSet") RecordProcedure.Open sqlProcedure,Conexion 'end if %>
Revisión/Aprobación de Presupuestos Base Exportar de Proceso Monto Global del Proceso Cantidad de item Fecha Solicitud Estado Usuario Fecha de Entrega Días Faltantes por Entregar Revisar Revisado Aprobado " onclick='location.href="generarExcel.asp?concurso=<%=RecordProcedure("codigoproceso")%>"'/> <% Response.Write (formatnumber(RecordProcedure("montoglobal"))) %> <% Response.Write(RecordProcedure("cantidaditems")) %> <% Response.Write(RecordProcedure("fechasolicitud")) %> <% Response.Write(RecordProcedure("estado")) %> <% Response.Write(RecordProcedure("usuario")) %> <% Response.Write(RecordProcedure("fecha")) %> <% if RecordProcedure("diasfaltantes") < 0 then 'si diasfaltantes contiene un número negativo transformarlo a positivo multiplicando por (-1) Response.Write("
" &((RecordProcedure("diasfaltantes"))*(-1)) & " dia(s) de retraso" ) else Response.Write("
" &RecordProcedure("diasfaltantes")&"
") end if %> " onclick='location.href="PbEnProceso_Analista.asp?concurso=<%=RecordProcedure("codigoproceso")%>"'/> id=radio<%=i%> value="REVISADO" <%=acceso_usuario%> onclick="confirmar(this,'<%=RecordProcedure("codigoproceso")%>')"> <% if (RecordProcedure("estado"))="REVISADO" then Response.Write("SI
") 'Sino, si está revisado pero con observaciones, indicar "con observaciones" elseif (RecordProcedure("estado"))="REVISADO CON OBSERVACIONES" then Response.Write("Con observaciones
") 'Sino, significa que el presupuesto no ha sido revisado, indicar "no" else Response.Write("NO
") end if %> id=radio<%=i%> value="APROBADO" <%=acceso_usuario2%> onclick="confirmar(this,'<%=RecordProcedure("codigoproceso")%>')"> <% 'si el estado del presupuesto es revisado, indicar si if (RecordProcedure("estado"))="APROBADO" then Response.Write("SI
") 'Sino, significa que no se ha aprobado else Response.Write("NO
") end if %> <% dim i 'variable para controlar ciclo while i=0 do while not RecordProcedure.eof %> <% i=i+1 RecordProcedure.movenext 'Permite mover el archivo al siguiente registro, para revisar cada usuario loop 'fin do while %> <% Conexion.close 'Se cierra conexion con la base de datos %>