Spanish Según tipo de usuario, user o admin, mostrar opciones de menú

matmax

Member
Licensed User
Hola buenas noches. Estoy intemtando hacer un menú que dependiendo de que el usuario sea admin o user, pueda ver unas opciones de menu u otras.. En un servidor, tengo una tabla de usuarios, con los valores de admin y user para cada empleado. el caso es que accedo al servidor y obtengo el tipo de usuario de cada empleado, pero a la hora de mostrar el menu hay veces que me muestra o todas las opciones o algunas siendo admin y user.....

B4X:
Sub Activity_CreateMenu(menu As ACMenu)
    menu.Clear

'   menu.Add(4, 0, "Parte Manual", Null)
    Dim submenuOrdenar As ACSubMenu
    menu.Add(4, 0, "Agenda", Null)
    submenuOrdenar = ActionBar.Menu.AddSubMenu(0, 0, 0, "Ordenar por:")
    submenuOrdenar.AddWithGroup2(0, 1,1, "Parte",Null)
    submenuOrdenar.AddWithGroup2(0,2,2, "Fecha", Null)
    submenuOrdenar.AddWithGroup2(0, 3,3, "Cliente",Null)

    submenuOrdenar.AddWithGroup2(0, 5,5, "Estado",Null)
    menu.Add(6, 0, "Filtrar", Null)
 
    If cUser <> "USER" Then
        menu.Add(7, 0, "Importar datos", Null)
        menu.Add(8, 0, "Cambiar empleado", Null
    End If
    menu.Add(9, 0, "Version", Null)
    Variables.cUser = ""
End Sub

la variable cUser contiene el valor de "user" o "admin"
Si selecciono tanto user como admin, me muestrea el menú con las mismas opciones. ¿Cómo puedo solucionar esto?
 

Hamied Abou Hulaikah

Well-Known Member
Licensed User
Longtime User
Pregunta no entendida. ¿Puede explicar más esto?
la variable cUser contiene el valor de "user" o "admin"
Si selecciono tanto user como admin, me muestrea el menú con las mismas opciones. ¿Cómo puedo solucionar esto?
 

angel_

Well-Known Member
Licensed User
Longtime User
Quizás por las mayúsculas, prueba así:

B4X:
If cUser <> "user" Then
 

TILogistic

Expert
Licensed User
Longtime User
prueba.

la variable cUser contiene el valor de "user" o "admin"

B4X:
If cUser.ToUpperCase <> "USER" Then
'o
If cUser.ToLowerCase <> "user" Then

elimina espacios (trim)
B4X:
    If cUser.ToUpperCase.Trim <> "USER" Then
     
    If cUser.ToLowerCase.Trim <> "user" Then
 

Hamied Abou Hulaikah

Well-Known Member
Licensed User
Longtime User
B4X:
'Tratar Cambia esto
If cUser <> "USER" Then
        menu.Add(7, 0, "Importar datos", Null)
        menu.Add(8, 0, "Cambiar empleado", Null
    End If
    'Para
If cUser = "admin" Then
        menu.Add(7, 0, "Importar datos", Null)
        menu.Add(8, 0, "Cambiar empleado", Null
    End If 
'para mostrar los elementos del menú de administración
 

matmax

Member
Licensed User
Quiero decir, si haces log de esa variable muestra USER y aún así la desigualdad del if no funciona?
Perdona, he estado muy liado. Si exacto, hago un msgbox (cUser,""), y me muestra admin, pero al cargar el menú me muestra como si fuese user. que el codgo es el que he puesto en el 1º post.
 

josejad

Expert
Licensed User
Longtime User
Deberían funcionar alguna de las soluciones de los compañeros. Si no, sube un proyecto para probarlo
 

matmax

Member
Licensed User
B4X:
'Tratar Cambia esto
If cUser <> "USER" Then
        menu.Add(7, 0, "Importar datos", Null)
        menu.Add(8, 0, "Cambiar empleado", Null
    End If
    'Para
If cUser = "admin" Then
        menu.Add(7, 0, "Importar datos", Null)
        menu.Add(8, 0, "Cambiar empleado", Null
    End If
'para mostrar los elementos del menú de administración
Acabo de hacer eso, como administrador me muestra todas las opciones pero como usuario me muestra las mismas opciones aunque yo le digo que no muestre 2. Este codigo lo meto en el Activity_CreateMenu, no se si es ahi donde debe de ir el control de admin o user. De lo que si me he dado cuenta que no entra en el
Sub Activity_CreateMenu(menu As ACMenu)
 
Last edited:
Top