BLCC#53800 user account rapport

svn path=/Customer/trunk/; revision=38561
This commit is contained in:
Ruud Lipper
2018-07-18 10:45:00 +00:00
parent ec136fcb5e
commit 268f3cb415

View File

@@ -10191,6 +10191,118 @@ AS -- Catering gegroepeerd per reservering
prs_kostenplaats_omschrijving,
res_rsv_ruimte_omschrijving;
CREATE OR REPLACE VIEW blcc_v_rap_prs_accounts
(
soort_gebruiker,
naam,
email,
loginnaam,
afdeling,
laatste_login,
key_autorisaties
)
AS
SELECT DECODE (key_user, 1, 'KEY', 'FE'),
pf.prs_perslid_naam_full,
p.prs_perslid_email,
oslogin,
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving,
prs_perslid_login,
funcodes
FROM (SELECT *
FROM (SELECT p.prs_perslid_key prs_key,
COALESCE (p.prs_perslid_oslogin,
p.prs_perslid_oslogin2)
oslogin,
1 login, -- 1=user heeft login + groep + rechten
DECODE (
SIGN(TRUNC(COALESCE (p.prs_perslid_login + 92,
SYSDATE - 1))
- TRUNC (SYSDATE)),
-1,
0,
1) -- 1=user heeft laatste 92 dagen ingelogd
recent_login
FROM prs_v_aanwezigperslid p
WHERE EXISTS -- op basis van login + groep + rechten
(SELECT 1
FROM fac_v_webgebruiker gg
WHERE gg.prs_perslid_key = p.prs_perslid_key)
AND NOT EXISTS -- FSN#36597: WEB_FACFAC-users niet meetellen!
(SELECT 1
FROM fac_v_webgebruiker gg, fac_functie f
WHERE gg.prs_perslid_key =
p.prs_perslid_key
AND gg.fac_functie_key =
f.fac_functie_key
AND fac_functie_code = 'WEB_FACFAC')
UNION ALL -- FSN#24029: Soms ook personen zonder login meetellen!
SELECT p.prs_perslid_key,
NULL oslogin,
1 login, -- 1=user telt mee, want allow_for_others!
0 recent_login -- geen login, dus nooit recent ingelogd
FROM prs_v_aanwezigperslid p
WHERE COALESCE (p.prs_perslid_oslogin,
p.prs_perslid_oslogin2) IS NULL
AND (fac.getsetting ('mld_allow_for_others') = 1
OR EXISTS
(SELECT 1
FROM bes_disc_params dp
WHERE dp.bes_disc_params_for_others = 1))
UNION ALL -- FSN#27315: En ook eventuele "sensorusers" meetellen!
SELECT NULL prs_perslid_key,
NULL oslogin,
COUNT ( * ) login, -- elke sensoruser telt mee als FE!
1 recent_login -- recent actief dus tellen als recent
FROM ins_v_aanwezigdeel d
WHERE ins_deel_statedate > TRUNC (SYSDATE - 30)) x
LEFT JOIN -- 1=user heeft rechten op key-codes=notFE-codes
(SELECT DISTINCT fclt_f_login, 1 key_user
FROM fac_v_rap_groeprechten gr, fac_functie f
WHERE gr.fclt_f_funcode = f.fac_functie_code
AND f.fac_functie_groep IN (1, 2)) a
ON x.oslogin = a.fclt_f_login
LEFT JOIN -- FSN#30404: 1=user is cross-domain (xd) user
(SELECT p.prs_perslid_key, 1 xd_user
FROM prs_v_aanwezigperslid p,
prs_v_afdeling_boom ab
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
AND p.prs_perslid_apikey IS NOT NULL
AND ab.prs_bedrijf_key =
fac.safe_to_number(fac.getsetting('xd_primary_bedrijfkey')))
b
ON x.prs_key = b.prs_perslid_key
LEFT JOIN ( SELECT pfc.prs_perslid_key,
listagg (
pfc.fac_functie_code,
', ')
WITHIN GROUP (ORDER BY
pfc.fac_functie_code)
AS funcodes
FROM (SELECT DISTINCT
gg.prs_perslid_key,
SUBSTR (f.fac_functie_code, 5)
fac_functie_code
FROM fac_gebruikersgroep gg,
fac_groeprechten gr,
fac_functie f
WHERE gg.fac_groep_key =
gr.fac_groep_key
AND gr.fac_functie_key =
f.fac_functie_key
AND fac_functie_groep IN (1, 2))
pfc
GROUP BY pfc.prs_perslid_key) pfcs
ON x.prs_key = pfcs.prs_perslid_key) st,
prs_perslid p,
prs_v_perslid_fullnames pf,
prs_afdeling a
WHERE login = 1
AND p.prs_perslid_key = st.prs_key
AND pf.prs_perslid_key = p.prs_perslid_key
AND a.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_verwijder IS NULL;
------ payload end ------
SET DEFINE OFF