From cc54c1a215ee74ace7b3435516dd8484324c9f53 Mon Sep 17 00:00:00 2001 From: Peter Feij Date: Tue, 20 May 2025 15:51:16 +0000 Subject: [PATCH] FCLT#84467 rolcode vervangt de restricties die in volgnummer waren verstopt -savepoint svn path=/Website/trunk/; revision=69076 --- APPL/API2/api2_tools.inc | 25 +++++++-------- APPL/API2/model_prs_kenmerk.inc | 34 ++++++++++++++++++-- APPL/FAC/fac_show_user_info.asp | 53 +++++++++++++++++++++++--------- APPL/FAC/fac_user_info_phone.asp | 4 +-- APPL/Shared/kenmerk_common.inc | 26 ++++++++-------- APPL/Shared/resultset_flex.inc | 37 +++++++++++++++------- 6 files changed, 125 insertions(+), 54 deletions(-) diff --git a/APPL/API2/api2_tools.inc b/APPL/API2/api2_tools.inc index 669c060975..4859faf631 100644 --- a/APPL/API2/api2_tools.inc +++ b/APPL/API2/api2_tools.inc @@ -13,7 +13,6 @@ */ %> <% - // Under construction voor FCLT#84467 function buildKenmerkRoleCodeLOV(params) { var kenmerkRoleCodeLOV = ""; @@ -35,7 +34,8 @@ case "BEZ": kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcodebez_7") + ";" // alles + "4;"+ L("mgt_kenmerkrolcodebez_4") + ";" // BEZBOF only - + "3;"+ L("mgt_kenmerkrolcodebez_3"); // BEZFOF/BEZUSE only + + "2;"+ L("mgt_kenmerkrolcodebez_2") + ";" // BEZFOF only + + "3;"+ L("mgt_kenmerkrolcodebez_3"); // BEZFOF/BEZUSE only break; case "CNT": kenmerkRoleCodeLOV = "3;"+ L("mgt_kenmerkrolcodecnt_3") + ";" // alles @@ -58,18 +58,19 @@ + "1;"+ L("mgt_kenmerkrolcodeins_1"); // INSMAN break; case "MLD": - kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcodemld_7") + ";" - + "6;"+ L("mgt_kenmerkrolcodemld_6") + ";" - + "4;"+ L("mgt_kenmerkrolcodemld_4") + ";" - + "2;"+ L("mgt_kenmerkrolcodemld_2"); + kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcodemld_7") + ";" // alles + + "6;"+ L("mgt_kenmerkrolcodemld_6") + ";" // MLDBOF+MLDFOF + + "3;"+ L("mgt_kenmerkrolcodemld_3") + ";" // MLDUSE+MLDBOF + + "4;"+ L("mgt_kenmerkrolcodemld_4") + ";" // MLDBOF + + "2;"+ L("mgt_kenmerkrolcodemld_2"); // MLDFOF break; - case "OPD": // deze is nog TODO - kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcodeopd_7") + ";" + case "OPD": + kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcodeopd_7") + ";" // alles + "5;"+ L("mgt_kenmerkrolcodeopd_5") + ";" - + "4;"+ L("mgt_kenmerkrolcodeopd_4") + ";" // ORDSUP - + "3;"+ L("mgt_kenmerkrolcodeopd_3") + ";" - + "2;"+ L("mgt_kenmerkrolcodeopd_2") + ";" // Afmelden? - + "1;"+ L("mgt_kenmerkrolcodeopd_1"); // ORD* + + "4;"+ L("mgt_kenmerkrolcodeopd_4") + ";" // ORDSUPonly + + "3;"+ L("mgt_kenmerkrolcodeopd_3") + ";" // beide + + "2;"+ L("mgt_kenmerkrolcodeopd_2") + ";" // Afmelden? opdrachtnemer + + "1;"+ L("mgt_kenmerkrolcodeopd_1"); // ORDBOF opdrachtgever break; case "PRS": kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcodeprs_7") + ";" // alles, diff --git a/APPL/API2/model_prs_kenmerk.inc b/APPL/API2/model_prs_kenmerk.inc index 97c250daa0..6d504e5d88 100644 --- a/APPL/API2/model_prs_kenmerk.inc +++ b/APPL/API2/model_prs_kenmerk.inc @@ -48,7 +48,7 @@ function model_prs_kenmerk(niveau, params) "len": 3, "required": true }, - "rolecode": { + "rolecode": { "dbs": "prs_kenmerk_rolcode", "label": L("mgt_kenmerk_rolcode"), "typ": "number", @@ -99,11 +99,39 @@ function model_prs_kenmerk(niveau, params) "LOV": buildGroepsverplichtingList(), "emptyoption": null }, +// "readonly": { +// "dbs": "prs_kenmerk_toonbaar", +// "label": L("mgt_kenmerk_toonbaar"), +// "typ": "check", +// "multiedit": true +// }, "readonly": { "dbs": "prs_kenmerk_toonbaar", "label": L("mgt_kenmerk_toonbaar"), - "typ": "check", - "multiedit": true + "typ": "number", + "multiedit": true, + "bits": [ + { + "name": "ktoon", + "label": "", + "showasgroup": false, + "typ": "check", + "mask": 3, + "radios": [ + { + "name": "ktoon1", + "label": L("mgt_kenmerk_toonbaar"), + "mask": 1, + "defaultvalue": 0 + }, + { + "name": "ktoon2", + "label": L("lcl_prs_in_profile"), + "mask": 2, + "defaultvalue": 0 + } + ] + }] }, "system": { "dbs": "prs_kenmerk_systeem", diff --git a/APPL/FAC/fac_show_user_info.asp b/APPL/FAC/fac_show_user_info.asp index 8274e760a0..94a71efda4 100644 --- a/APPL/FAC/fac_show_user_info.asp +++ b/APPL/FAC/fac_show_user_info.asp @@ -3,9 +3,15 @@ $Id$ File: fac_user_info.asp - Description: Details van een user aka persoon + Description: Toont de details van een user aka persoon, diens profielpagina + De intentie is dat een gebruiker de relevante gegevens kan zien, en dat hangt af van je rol: + - een collega mag algemene, openbare gegevens zien + - iemand met beheerautorisatie mag meer zien + - een keyuser die service verleent aan deze persoon kan nog wat meer zien, zoals lopende zaken enzo + - ik mag mijn eigen gegevens zien + Parameters: prs_key (default user_key) - Context: Bijvoorbeeld vanuit telefoongids + Context: Bijvoorbeeld vanuit telefoongids, elke doorklik vanuit een naam Note: */ %> @@ -63,7 +69,7 @@ prs.checkAutorisation(prs_key); // PRS_PHONEB gebruiken voor READ-bepaling, en PRSMAN/PRSUSE of PRSSYS vereisen voor write? - // Bepaal of ik FB-achtigegevens van deze persoon mag zien, + // Bepaal of ik facilitair-achtigegevens van deze persoon mag zien, // geimplementeerd als "I am FO" indien ik schrijfrechten heb voor // RES, BES of MLD voor deze persoon, of Systeembeheer var xfunc = user.func_enabled("*", null, null, prs_key); @@ -216,7 +222,7 @@ prs.checkAutorisation(prs_key); IFRAMER_HEADER(L("lcl_prs_frame_algemeen"), buttons); var fac_profiel_limiet = -1; - var sql = "SELECT fp.fac_profiel_limiet, fp.fac_profiel_omschrijving" + var sql = "SELECT fp.fac_profiel_limiet, fp.fac_profiel_omschrijving, fp.fac_profiel_key" + " FROM prs_v_aanwezigperslid p, " + " fac_profiel fp" + " WHERE prs_perslid_key = " + prs_key @@ -224,6 +230,7 @@ prs.checkAutorisation(prs_key); oRs = Oracle.Execute (sql); if (!oRs.eof) { + fac_profiel_key = oRs("fac_profiel_key").value; fac_profiel_limiet = oRs("fac_profiel_limiet").value; fac_profiel_omschrijving = oRs("fac_profiel_omschrijving").value; } @@ -311,12 +318,22 @@ prs.checkAutorisation(prs_key); ROFIELDTR("fld", L("lcl_prs_perslid_contactpersoon"), cnt_str, params_cnt); } oRs.Close(); - ROFIELDTR("fld", L("lcl_prs_company"), thisUser.afdeling().bedrijf().naam(), { suppressEmpty: true }); - var params_afd; + + var params = { suppressEmpty: true }; if (user.has("WEB_PRSUSE")) - params_afd = { infoPointer: { Url: "appl/prs/prs_afdeling.asp?key=" + thisUser.prs_afdeling_key() }}; - ROFIELDTR("fld", L("lcl_prs_person_dept_name"), thisUser.afdeling().naam(), params_afd); - ROFIELDTR("fld", L("lcl_prs_person_function"), thisUser.prs_srtperslid(), { suppressEmpty: true }); + params.infoPointer = { Url: "appl/prs/prs_bedrijf.asp?bedrijf_key=" + thisUser.afdeling().prs_bedrijf_key() }; + ROFIELDTR("fld", L("lcl_prs_company"), thisUser.afdeling().bedrijf().naam(), params); + + params = {}; + if (user.has("WEB_PRSUSE")) + params = { infoPointer: { Url: "appl/prs/prs_afdeling.asp?key=" + thisUser.prs_afdeling_key() }}; + ROFIELDTR("fld", L("lcl_prs_person_dept_name"), thisUser.afdeling().naam(), params); + + params = { suppressEmpty: true }; + if (user.has("WEB_PRSMSU")) + params.infoPointer = { Url: "appl/mgt/prs_srtperslid.asp?mode=show&id=" + thisUser.prs_srtperslid_key() }; + + ROFIELDTR("fld", L("lcl_prs_person_function"), thisUser.prs_srtperslid(), params); ROFIELDTR("fld", L("lcl_prs_person_phone"), thisUser.prs_perslid_telefoonnr(), { suppressEmpty: true, type: "telefoon" }); ROFIELDTR("fld", L("lcl_prs_person_mobile"), thisUser.prs_perslid_mobiel(), { suppressEmpty: true, type: "telefoon" }); ROFIELDTR("fld", L("lcl_prs_person_email"), thisUser.prs_perslid_email(), { suppressEmpty: true, type: "email" }); @@ -375,7 +392,11 @@ prs.checkAutorisation(prs_key); ); } - ROFIELDTR("fld", L("lcl_account"), thisUser.kpn_string(), {suppressEmpty: true}); + params = {suppressEmpty: true}; + if (xfunc.canWrite("WEB_FINMSU")) + params.infoPointer = { Url: "appl/mgt/prs_kostenplaats.asp?mode=show&id=" + thisUser.prs_kostenplaats_key() }; + + ROFIELDTR("fld", L("lcl_account"), thisUser.kpn_string(), params); if (thisUser.kpn_budgethouderkey() > 0) { var budgethouderUser = new Perslid(thisUser.kpn_budgethouderkey()); @@ -388,7 +409,10 @@ prs.checkAutorisation(prs_key); if (fac_profiel_limiet != -1) { - ROFIELDTR("fld", L("lcl_prs_profile"), fac_profiel_omschrijving); + params = {}; + if (xfunc.canWrite("WEB_FINMSU")) + params.infoPointer = { Url: "appl/mgt/fac_profiel.asp?mode=show&id=" + fac_profiel_key }; + ROFIELDTR("fld", L("lcl_prs_profile"), fac_profiel_omschrijving, params); if (fac_profiel_limiet) ROFIELDTR("fld", L("lcl_prs_mandate_for"), fac_profiel_limiet, { datatype: "currency", prefix: true, infoPointer: { Url:"appl/prs/kpn_mandate_search.asp?prs_key="+prs_key+"&autosearch=1", Title:L("lcl_menu_fin_mandatering") } }); @@ -397,14 +421,15 @@ prs.checkAutorisation(prs_key); } // ============================= FLEXKENMERKEN ========================================= + // de autorisatie van de user wordt toegepast, maar dankzij includepublic worden alle flexkenmerken met prs_kenmerk_toonbaar&2 + // sowieso getoond als je canRead("WEB_PROFIL") hebt generateFlexKenmerkCode({link_key: prs_key, srt_key: prs_srtkey, niveau: "P", kenmerk_2col: false, reado: true, - publiconly: true - }); // MOETEN WE NOG FORCEREN DAT ALLEEN prsuse WORDT GETOOND? - // Dat doet generateFlex zelf maar?! TODO + includepublic: xfunc.canRead("WEB_PROFIL") + }); // ============================= VERVANGERS ============================================ if (S("prs_collegas_used") < 9 && (itsme || iamfo)) { // indien ik facilitair ben diff --git a/APPL/FAC/fac_user_info_phone.asp b/APPL/FAC/fac_user_info_phone.asp index 4b3b05aa76..efda8f6d6c 100644 --- a/APPL/FAC/fac_user_info_phone.asp +++ b/APPL/FAC/fac_user_info_phone.asp @@ -80,7 +80,7 @@ var buttons = []; if (canChange) { buttons.push({ title: L("lcl_change"), icon: "fa-fclt-edit", action: "edit_phone()", id: "bchange_perslid" }); } -IFRAMER_HEADER("Facilitor Vinder", buttons); +IFRAMER_HEADER("Facilitor Vinder", buttons); // Harde titel %>