FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
login con niveles
hola a todos, necesito ayuda. Estoy creando un login con niveles dependiendo el usuario que entre me explico si me logueo como administrador quiero habilitar el menu de configuracion de usuarios, si me logueo como usuario normal que se desabilite la configuracion de usuario. si necesitan saber algo mas solo posteenlo aqui!. he visto unos cuantos link del club pero ninguno me a cumplido. tengo el login echo solo quiero que se desabiliten o habiliten las opciones del menu segun el nivel del usuario. solo son dos niveles administradores y usuarios normales.
codigo del button entrar del login sin niveles: procedure TfrmLogin.Button1Click(Sender: TObject); var user: string; clave: String; begin user:=edit1.Text; clave:=edit2.text; if (user='') or (clave='') then begin showmessage('Debe Introducir un Usuario y Contraseña'); exit; end else table1.Open; with table1 do locate('User;Clave',vararrayof([user,clave]),[]); if table1.Locate('User;Clave',vararrayof([user,clave]),[]) then begin ModalResult := mrOK; showmessage('Bienvenido al sistema '+user+''); end else begin inc(intento); if intento = 1 then begin showmessage('Clave o Usuario Incorrectos Le Queda Un Intento'); edit1.SetFocus; end else begin showmessage('Usted No Tiene Acesso Al Sistema'); close; end; end; table1.Close; end; ------------------------------------- Pregunta: Donde coloco el codigo de identificacion de los niveles y donde va el codigo de habilitar o deshabilitar? y si tienen algun ejemplo por favor. ------------------------------------- codigo que he puesto en el proyecto --------------------------------------- var frmlogin: tfrmLogin; begin Application.Initialize; frmlogin:= Tfrmlogin.Create(Application); if frmlogin.showmodal = MrOk then begin Application.CreateForm(TMainForm, MainForm); Application.CreateForm(TAboutBox, AboutBox); Application.CreateForm(TfrmLogin, frmLogin); Application.CreateForm(TDataModule1, DataModule1); Application.CreateForm(TForm1, Form1); frmlogin.free; Application.Run; end else begin application.Terminate; end; ------------------------------------------ |
#2
|
||||
|
||||
Hola jandj, deberías tener un campo nivel, así cuando encuentras al usuario, recuperas el nivel al que pertenece y muestras o no las opciones.
Digamos que tu TMenuItem de tu MainMenu se llama configuracion.
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#3
|
|||
|
|||
Hola, para habilitar o deshabilitar segun el nivel, podrias hacer una funcion que te recorriese todos los componentes de la aplicacion, y en el caso de ser TMenuItem entonces comparar:
este codigo lo tendrias que poner justo despues de encontrar el nivel_usuario y tambien al crear nuevas forms. saludos. |
#4
|
||||
|
||||
Hola de nuevo, solo unas pequeñas observaciones sobre el codigo del amiguito coso. Si recorremos los componentes de Application, lo que obtenemos son los fomularios y no los componentes del formulario actual, y en esta parte "Application.Components[i].Enabled" falta un Cast.
El codigo quedaría así:
Pero con la condición o te habilita todos o te deshabilita todos. Lo que se me ocurre, sino es solo un MenuItem el que tienes que deshabilitar según el nivel de usurio, es que utilices la propiedad Tag de cada MenuItem, por ejemplo tenemos esto. Código:
Opcion1(0) Opcion2(1) Opcion3(2) Opcion11(1) Opcion21(1) Opcion31(2) Opcion12(2) Opcion22(1) Opcion13(2) El codigo quedaría así.
Utilizo Visible, porque creo que sería mejor no mostrale la opción si no tiene acceso a la misma. Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#5
|
|||
|
|||
ay caro tienes razon, lo escribi rapido y sin mirarlo mucho :
seria algo asi. Otra manera tambien seria teniendo los nombres de los TMenuItems en una lista (los nombres tal cual: MenuItem1, MenuItem2,...en el otro ejemplo se buscaban por 'caption') y hacer algo como
Mas o menos son equivalentes. saludos. Última edición por coso fecha: 31-10-2008 a las 19:46:18. |
#6
|
|||
|
|||
Login con Niveles
Gracias a todos por sus ideas, en cuanto vuelva del trabajo y aplique sus ideas le escribo a ver como me va. De nuevo, gracias.
|
#7
|
||||
|
||||
Necesitarás una ventana de "gestión de usuarios", esa ventana es donde permites crear nuevos usuarios en el sistema e indicar si es un administrador o no (por ejemplo con un checkBox), puedes guardar ese "checkbox" en la tabla login (tu table1) en un campo llamado "esAdministrador" con valores:
- cero para un usuario normal. - uno para un admin. Si son pocas opciones, puedes dejar los botones o menúes del administrador con Visible = False en el Inspector de objetos, y después de hacer el login, justo antes de darle la bienvenida, llamas a tu rutina HazVisibleOpcionesDeAdmin si el campo esAdministrador es igual a 1. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#8
|
|||
|
|||
Login con Niveles (SOLUCIONADO)
Gracias a todos por sus importantes aportes de verdad se lo agradesco mucho.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
DBGrid con posibilidad de agrupar en niveles... | Neftali [Germán.Estévez] | OOP | 3 | 29-11-2004 00:58:42 |
programa por niveles | marcelofabiani | Varios | 2 | 21-10-2003 18:27:17 |
Niveles de Acceso/ | UTECYBER | Varios | 5 | 07-10-2003 20:56:23 |
Niveles de Acceso/ | UTECYBER | OOP | 5 | 07-10-2003 20:53:18 |
niveles en programas | marcelofabiani | Varios | 1 | 10-05-2003 22:30:15 |
|