Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 13-06-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Yo esto lo he estructurado así:

Tengo tres tablas:

usuario = (id, usuario, contraseña)
proceso = (id, descripción)
permiso = (id, usuario_id, proceso_id)

Cada proceso corresponde a un punto del sistema al que se puede acceder o no, de manera que cada usuario puede tener permiso a múltiples procesos y múltiples usuarios pueden tener permiso a un proceso, es decir, una relación n - n, que queda plasmada en la tabla permiso.

El administrador tiene permiso a todos los procesos, que incluye el proceso para asignar permisos a otros usuarios.

El resto es como lo plantea BlueSteel. Cada módulo se accede mediante una opción de menú y en principio todos los menúes están inhabilitados con excepción de:

Código:
Archivo         
  Iniciar sesión
  --------------
  Salir
Al iniciar sesión, una vez validado el usuario, se lee la tabla de permisos filtrándola por el ID del usuario y se habilitan aquellos menús/submenús para los cuales se cuente con permiso.

Yo hago esto menú por menú, pero en realidad podría automatizarse asignando a cada TMenuItem.Tag el ID del proceso que corresponda y buscando, en un ciclo, dicho ID en la tabla de permisos.

No manejo propiamente perfiles aunque sí categorías de permisos, implementadas de forma rudimentaria:

Cada grupo de procesos, por ejemplo, Clientes, tiene asignado un ID centenario, digamos, 500. Los subprocesos tales como Alta de clientes, Modificación de Clientes, tienen IDs 501, 502, etc.

En el menú principal, hay un menú Clientes que tiene como submenús a Altas y Modificación.

Al leer los permisos, si el usuario no tiene el permiso 500, entonces omito todos los subpermisos. Si sí tiene el permiso 500, debo leer uno por uno los subpermisos para ver cuál submenú habilito y cuál no.

// Saludos

Última edición por roman fecha: 13-06-2008 a las 03:07:09.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Acceso por miles de usuarios simultaneo HomeCinema Firebird e Interbase 0 06-02-2007 10:38:23
acceso simultaneo varios usuarios Tabla interbase hibero Conexión con bases de datos 15 03-12-2006 23:21:16
Protección de acceso a usuarios jasensio Seguridad 1 02-10-2006 13:45:59
controlar acceso a un objeto desde diferentes threads derteo OOP 2 07-02-2006 19:16:36
permiso de acceso a usuarios jzginez Firebird e Interbase 6 06-10-2003 14:28:18


La franja horaria es GMT +2. Ahora son las 18:33:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi