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 %> -| <%=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, "")%> | |
| "> | +"> |