DROP VIEW vw_derechosusuarios
GO

CREATE VIEW vw_derechosusuarios
AS
--AUTOR GUSTAVO DUFFOO
--FUNCION: DEVUELVE LOS DERECHOS DE LOS USUARIOS, SOLO COMO USUARIOS
SELECT se_accessdetrights.screenid, se_accessrights.userid, 
    se_accessrights.type, se_accessdetrights.deleterights, 
    se_accessdetrights.insertrights, 
    se_accessdetrights.updaterights, 
    se_accessdetrights.viewrights
FROM se_accessdetrights INNER JOIN
    se_accessrights ON 
    se_accessdetrights.userid = se_accessrights.userid INNER JOIN
    se_userrec ON 
    se_accessrights.userid = se_userrec.userid
WHERE (se_accessrights.type = 'U')
go

drop view vw_derechosgrupos
go

CREATE VIEW vw_derechosgrupos
AS
--autor: gustavo duffoo
--devuelve los derechos de los grupos
SELECT se_accessdetrights.screenid, se_usergroup.userid, 
    se_accessrights.type, se_accessdetrights.deleterights, 
    se_accessdetrights.insertrights, 
    se_accessdetrights.updaterights, 
    se_accessdetrights.viewrights
FROM se_accessrights INNER JOIN
    se_accessdetrights ON 
    se_accessrights.userid = se_accessdetrights.userid INNER JOIN
    se_usergroup INNER JOIN
    se_grouprec ON 
    se_usergroup.groupid = se_grouprec.groupid ON 
    se_accessrights.userid = se_grouprec.groupid
WHERE (se_accessrights.type = 'G')

go

drop view vw_derechos
go

create view vw_derechos as
--autor : gustavo duffoo
-- devuelve todos los derechos de un usuarios como usuario y como miembro de grupos
select screenid,userid,type,viewrights,insertrights,updaterights,deleterights 
from vw_derechosusuarios
union
select screenid,userid,type,viewrights,insertrights,updaterights,deleterights 
from vw_derechosgrupos

go
DROP VIEW VW_CUSERGROUPS
GO
CREATE VIEW VW_CUSERGROUPS AS
--CREA LA COMBINACION DE USUARIOS Y GRUPOS 
--TODOS LOS GRUPOS POSIBLES A LOS QUE PUEDE PERTENECER UN USUARIO, PERTENESCA O NO, 
--UTILIZADA POR LA VISRA VW_GRUPOSPOSIBLES
SELECT USERID,GROUPID,GROUPNAME FROM SE_GROUPREC 
CROSS JOIN SE_USERREC 


go

DROP VIEW WV_GRUPOSPOSIBLES 
GO
CREATE VIEW WV_GRUPOSPOSIBLES AS
--MUESTRA TODOS LOS GRUPOS A LOS QUE PUEDE PERTENECER UN USUARIO Y QUE NO PERTENECE YA
--NECESITA LA VISTA VW_CUSERGROUPS QUE CONTIENE UN CROOS JOIN DE USUARIOS Y GRUPOS
SELECT GROUPID,GROUPNAME,USERID 
FROM VW_CUSERGROUPS A
WHERE GROUPID NOT IN (SELECT GROUPID FROM SE_USERGROUP WHERE A.USERID=USERID)

go
drop view vw_usuariosgrupos
go
create view vw_usuariosgrupos as
--usuarios registrados en grupos con nombre del grupo
select userid,ug.groupid,groupname from se_usergroup ug join se_grouprec g on 
ug.groupid =g.groupid
