Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/06/2011, 21:33
Avatar de edbc92
edbc92
 
Fecha de Ingreso: octubre-2010
Ubicación: Lima - Los Olivos
Mensajes: 93
Antigüedad: 14 años, 1 mes
Puntos: 5
Pregunta Problema con privilegios a usuarios

Qué tal? Ando en un programa donde a la hora de loguear al usuario, los menustrip esten habilitados según su nivel que tenga y eso va como FK en mi tabla usuarios donde idnivel y nom_nivel se describe los privilegios que tengan, en esta tabla se encuentra IdUsuario,Login,PasswordUser y Idnivel como FK (como dije hace un momento). A la vez en mi tabla niveles tengo estos campos: Idnivel, NomNivel, Mnu_insc_pacientes, Mnu_Visitas (y mas campos sobre menúes) Cuando registro un nivel pongo Idnivel: 0, NomNivel: Semi-privilegiado, Mnu_insc_pacientes: 0, Mnu_visitas: 1...Ahora, en los campos de mi tabla niveles en la parte de menues, le di un valor byte para determinar si este nivel, ejem:semiprivilegiado de Idnivel:0 tenga los menus strip activados en este caso mi mnu_pacientes estaría desactivado y mi mnu_visitas estaría activado. Tengo el problema casi resuelto pero al final donde exactamente le activo los menues dependiendo de su nivel no me lanza ni siquiera un mensaje de un posible error y simplemente corre pero sin hacer lo que le dije de activar los menues. Acá les dejo parte del código:

Código:
Dim cn As New SqlConnection(strcn)
        Dim cmd As New SqlCommand
        cn.Open()

        Try
            sql = "select usu_login,usu_pass from usuarios where usu_login=@usu_login and usu_pass=@usu_pass"

            cmd = New SqlCommand(sql, cn)
            cmd.Parameters.AddWithValue("@usu_login", txt_user.Text)
            cmd.Parameters.AddWithValue("@usu_pass", txt_pass.Text)

            Dim dr As SqlDataReader = cmd.ExecuteReader

            'If dr.HasRows = True Then
            '    MsgBox("1")
            'Else
            '    MsgBox("2")
            'End If
            If dr.Read = True Then
                MsgBox("Bienvenido '" & txt_user.Text & "'.")


                dr.Close()
                'prueba a partir de aca
                sql = "select idnivel from usuarios where usu_login=@usu_login"

                cmd = New SqlCommand(sql, cn)
                cmd.Parameters.AddWithValue("@usu_login", txt_user.Text)


                nivel = cmd.ExecuteScalar()
                If nivel = 3 Then

                    sql = "select * from niveles where idnivel=@idnivel"
                    cmd = New SqlCommand(sql, cn)

                    cmd.Parameters.AddWithValue("@idnivel", nivel)

                    Dim dr1 As SqlDataReader = cmd.ExecuteReader
                    dr1.Read()

                    Dim principal As New Frm_principal

                    principal.mnu_niveles.Enabled = IIf(dr1(2) = 1, True, False)
                    principal.mnu_usuario.Enabled = IIf(dr1(3) = 1, True, False)
                    principal.mnu_backup.Enabled = IIf(dr1(4) = 1, True, False)
                    principal.mnu_pacientes.Enabled = IIf(dr1(5) = 1, True, False)
                    principal.mnu_medicos.Enabled = IIf(dr1(6) = 1, True, False)
                    principal.mnu_nuevo_usario.Enabled = IIf(dr1(7) = 1, True, False)
                    principal.mnu_nueva_especialidad.Enabled = IIf(dr1(8) = 1, True, False)
                    principal.mnu_visitas.Enabled = IIf(dr1(9) = 1, True, False)
                    principal.mnu_historial.Enabled = IIf(dr1(10) = 1, True, False)
                    'Call privilegios()
                    MsgBox("Hello")
                    dr1.Close()
                End If



            Else
                MsgBox("Verifique usuario y/o contraseña")
                txt_user.Clear()
                txt_pass.Clear()
                txt_user.Focus()
            End If






        Catch ex As Exception
            MsgBox(ex.Message)
        Finally
            cn.Dispose()
        End Try
Podrán ubicarme el problema o ver que falta para que me funcione este problema? Saludos y gracias por tomarse la molestia de leer, espero sus ayudas xD...

Última edición por edbc92; 10/06/2011 a las 21:50 Razón: Falta ortográfica