77 lines
2.1 KiB
Plaintext
77 lines
2.1 KiB
Plaintext
{
|
|
-----------------------------------------------------------------------------
|
|
PROGRAMA : SEG000
|
|
OBJETIVO : Controlar el acceso de los usuarios a los sistemas de la
|
|
Empresa.
|
|
PROGRAMADOR : Ing. Juan Soto
|
|
FECHA : Marzo 17, 1994.
|
|
-----------------------------------------------------------------------------
|
|
}
|
|
FUNCTION seg000(usuarios,opt,p_menu)
|
|
DEFINE opt,paso CHAR(2)
|
|
DEFINE luz CHAR(20)
|
|
DEFINE p_menu CHAR(50)
|
|
DEFINE usuarios,responsabilidad CHAR(50)
|
|
DEFINE no_reg,p_opcion SMALLINT
|
|
|
|
CALL startlog("seguridad.log")
|
|
# WHENEVER ERROR CONTINUE
|
|
|
|
OPTIONS
|
|
ERROR LINE 24
|
|
|
|
# BUSCA EL ROLE del usuario
|
|
|
|
SELECT a.nom_puesto INTO responsabilidad FROM seg0003 a
|
|
WHERE a.usuario = usuarios
|
|
|
|
|
|
IF UPSHIFT(responsabilidad) != 'ADMINISTRATOR' THEN
|
|
SELECT a.cod_perfil,count(*) INTO p_opcion,no_reg FROM seg0001 a,seg0005 b
|
|
WHERE a.usuario = usuarios and
|
|
a.cod_perfil = b.cod_perfil and b.programa = p_menu
|
|
GROUP BY a.cod_perfil
|
|
|
|
SELECT DISTINCT a.usuario FROM seg0001 a,seg0005 b
|
|
WHERE a.usuario = usuarios and
|
|
a.cod_perfil = b.cod_perfil and
|
|
b.programa = p_menu
|
|
|
|
IF status = notfound THEN
|
|
LET paso = "NO"
|
|
ELSE
|
|
LET paso = "SI"
|
|
END IF
|
|
|
|
END IF
|
|
|
|
IF UPSHIFT(responsabilidad) = 'ADMINISTRATOR' THEN
|
|
LET paso = "SI"
|
|
END IF
|
|
|
|
RETURN paso
|
|
END FUNCTION
|
|
|
|
FUNCTION integridad()
|
|
DEFINE numero_msg INT,
|
|
bandera SMALLINT
|
|
IF sqlca.sqlcode < 0 THEN
|
|
LET numero_msg = sqlca.sqlcode
|
|
CALL msg(numero_msg)
|
|
DISPLAY numero_msg AT 23,70
|
|
LET bandera = 1
|
|
LET status = 0
|
|
SLEEP 2
|
|
RETURN
|
|
END IF
|
|
RETURN
|
|
END FUNCTION
|
|
FUNCTION usuarioSistema(xuser)
|
|
DEFINE xuser,nombre,email STRING
|
|
|
|
SELECT ISNULL(RTRIM(b.nom1_emp)||' '||RTRIM(b.apell1_emp),' '),a.email INTO nombre,email FROM seg0001 a,adtb00003 b
|
|
WHERE a.usuario = xuser AND
|
|
a.num_emp = b.num_emp
|
|
|
|
RETURN nombre,email
|
|
END FUNCTION |