diff --git a/APPL/FAC/fac_user_info.asp b/APPL/FAC/fac_user_info.asp index ac3b263792..812c9ec884 100644 --- a/APPL/FAC/fac_user_info.asp +++ b/APPL/FAC/fac_user_info.asp @@ -1,14 +1,12 @@ <%@language = "javascript" %> -<% - -/* $Revision: 1 $ - $Modtime: 30-09-09 15:16 $ +<%/* $Revision: 2 $ + $Modtime: 30-10-09 17:40 $ File: fac_user.asp - Status: ?% (new style) + Status: 90% Description: Details van een user aka persoon Parameters: prs_key (default user_key) - Context: + Context: Bijvoorbeeld vanuit telefoongids Note: */ %> @@ -16,6 +14,7 @@ + <% FCLTHeader.Requires({plugins:["suggest","jQuery"], js: ["expand_frame.js", "FCLTMgr.js", "jquery-ui.js"]}); @@ -23,8 +22,17 @@ FCLTHeader.Requires({plugins:["suggest","jQuery"], // AUTORISATIEPARAMETERS var prs_key = getQParamInt("prs_key", user_key); + var itsme = (prs_key == user_key); // TODO autorisaties checken + // van welke personen mag ik deze gegevens zien? Het is denkbaar dat hiervoor de + // WEB_PHONEB-scope wordt gehanteerd, waarmee mensen binnen mijn organisatie of mijn + // gebied kunnen worden bepaald. De overige mensen kunnen bv wel gevonden worden, maar + // daarvan mag ik niet deze detailgegevens bekijken. + // + // Ik val zelf natuurlijk altijd binnen mijn scope, dus mag ik mijn gegevens altijd zien. + // Indien ik weet dat het over mezelf gaat, komen er nog wat extra features beschikbaar, + // zoals wachtwoord wijzigen. // OVERIGE PARAMETERS %> @@ -32,40 +40,192 @@ FCLTHeader.Requires({plugins:["suggest","jQuery"], <% FCLTHeader.Generate(); + + // PRS_PHONEB gebruiken voor READ-bepaling, en PRSMAN/PRSUSE of PRSSYS vereisen voor write? + + // Bepaal of ik FB-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); + var iamfo = (xfunc.canWrite("WEB_RESFOF") + || xfunc.canWrite("WEB_MLDFOF") + || xfunc.canWrite("WEB_BESFOF") + || xfunc.canWrite("WEB_PRSSYS")); + var canChange = (xfunc.canWrite("WEB_PRSMAN") + || xfunc.canWrite("WEB_PRSUSE")); + %> + + <% -IFRAMER_HEADER(lcl_prs_frame_algemeen, {}); +var buttons = []; +if (itsme || canChange) { + buttons.push({ title: lcl_change, icon: "wijzigen.png", action: "prs_change()", id: "bchange_perslid" }); +} +if (itsme) { + buttons.push({ title: lcl_password_title, icon: "wall_brick.png", action: "prs_changepwd()", id: "bchange_pwd" }); + buttons.push({ title: lcl_prs_frame_substitutes, icon: "group.png", action: "prs_collegas()", id: "bcollegas" }); + buttons.push({ title: lcl_spo_header, icon: "briefcase.png", action: "prs_objecten()", id: "bobjecten" }); +} +IFRAMER_HEADER(lcl_prs_frame_algemeen, buttons); - var fac_profiel_limiet = 0; - var sql = "select fp.fac_profiel_limiet" - + " FROM PRS_V_aanwezigPERSLID p, " + var fac_profiel_limiet = -1; + var sql = "select fp.fac_profiel_limiet, fp.fac_profiel_omschrijving" + + " FROM prs_v_aanwezigperslid p, " + " fac_profiel fp" + " WHERE prs_perslid_key = " + prs_key - + " AND p.fac_profiel_key = fp.fac_profiel_key(+)" + + " AND p.fac_profiel_key = fp.fac_profiel_key" oRs = Oracle.Execute (sql); - if (!oRs.eof) + if (!oRs.eof) { fac_profiel_limiet = oRs("fac_profiel_limiet").value; - + fac_profiel_omschrijving = oRs("fac_profiel_omschrijving").value; + } thisUser = new Perslid(prs_key); // geeft ook alle informatie %> - - - - - - - + <% - for (i=0; i - -<% - } + + // ============================= PERSOONSGEGEVENS ====================================== + BLOCK_START("prsNaw", lcl_prs_basisblok); + ROFIELDTR('fld', lcl_prs_person_name, thisUser.naam()); + ROFIELDTR('fld', lcl_prs_person_dept_name, thisUser.afdeling().naam()); + ROFIELDTR('fld', lcl_prs_person_function, thisUser.prs_srtperslid(), {suppressEmpty: true}); + ROFIELDTR('fld', lcl_prs_person_phone, thisUser.prs_perslid_telefoonnr(), {suppressEmpty: true}); + ROFIELDTR('fld', lcl_prs_person_mobile, thisUser.prs_perslid_mobiel(), {suppressEmpty: true}); + ROFIELDTR('fld', lcl_prs_person_email, thisUser.prs_perslid_email(), {suppressEmpty: true}); + for (i=0; i<% + oRs.moveNext(); + } + BLOCK_END(); + } + } + + // ============================= LOGIN- EN AUTORISATIEGROEPGEGEVENS ==================== + // Indien Ik beheer ben laat ik lekker handig de autorisatiegroepen zien + if (xfunc.canWrite("WEB_PRSSYS")) { + var sql = "SELECT g.fac_groep_omschrijving" + + " FROM fac_groep g, fac_gebruikersgroep gg" + + " WHERE g.fac_groep_key = gg.fac_groep_key" + + " AND gg.prs_perslid_key = " + prs_key + + " ORDER BY 1"; + oRs = Oracle.Execute (sql); + if (!oRs.eof) { + BLOCK_START("prsAut", lcl_mgt_aut_group); + ROFIELDTR("fld",lcl_prs_person_login, thisUser.oslogin(), {suppressEmpty: true}); + ROFIELDTR("fld",lcl_prs_person_login2, thisUser.oslogin2(), {suppressEmpty: true}); + var i= 0; + while (!oRs.eof) { + ROFIELDTR("fld", (i==0 ? lcl_mgt_aut_group : ""), oRs("fac_groep_omschrijving").value); + i++; + oRs.moveNext(); + } + ROFIELDTR("fld",lcl_prs_person_lastlogin, toDateTimeString(thisUser.login())); + BLOCK_END(); + } + } + + // ============================= OBJECTGEGEVENS ======================================== + // Mijn persoonlijke bezittingen, en de mogelijkheid om deze te editen via + // een button zit bovenin voor de user zelf. + if (itsme || iamfo) { + sql= " SELECT D.ins_deel_omschrijving, SD.ins_srtdeel_omschrijving, D.ins_deel_key," + + " di.ins_discipline_min_level auth, sd.ins_srtdeel_key" + + " FROM ins_v_aanwezigdeel D,ins_v_aanwezigsrtdeel SD, ins_discipline DI" + + " WHERE D.ins_srtdeel_key = SD.ins_srtdeel_key" + + " AND D.ins_discipline_key = DI.ins_discipline_key" + + " AND ins_alg_ruimte_type = 'P'" + + " AND ins_alg_ruimte_key = " + user_key + + " ORDER BY 2,1"; + oRs = Oracle.Execute (sql); + if (!oRs.eof) { + BLOCK_START("prsIns", lcl_spo_title); + while (!oRs.eof) { + %> + + <% + oRs.moveNext(); + } + BLOCK_END(); + } + } %>
<%=ROFIELD('fld', 'Naam', thisUser.naam())%><%=ROFIELD('fld', 'Kostenplaats', thisUser.kpn_string()) %>
<%=ROFIELD('fld', 'Afdeling', thisUser.afdeling().naam()) %><%=ROFIELD('fld', 'Mandaat', fac_profiel_limiet) %>
<%=ROFIELD('fld', 'Functie', thisUser.prs_srtperslid())%><%=ROFIELD('fld', 'Budgethouder', '?')%>
<%=ROFIELD('fld', 'Telefoon', thisUser.prs_perslid_telefoonnr())%><%=ROFIELD('fld', 'E-mail', thisUser.prs_perslid_email())%>
<%=ROFIELD('fld', 'Mobiel', thisUser.prs_perslid_mobiel())%>
<%=ROFIELD('fldroom', (i==0 ? 'Werkplek':null), thisUser.werkplekken()[i].prs_werkplek_aanduiding()) %>
"><% InfoPointer(lurl, "")%>
">">