Files
MBS/PROYECTOS/otrodir/seg000.4gl
T

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