MARX#36577: Security LEK: facturen zijn door alle andere leveranciers in te zien.
svn path=/Website/branches/v2016.1/; revision=29489
This commit is contained in:
@@ -52,18 +52,24 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
|
||||
}
|
||||
// WEB_RELMAN is onderdeel van de PRS module
|
||||
var presult = user.func_enabled2("PRS", { prs_key: user_key, isOptional: true });
|
||||
var isContactpersoon = user.isContactpersoon();
|
||||
// Als ik een contactpersoon ben dan heb ik alleen rechten om facturen van mijn eigen bedrijf te zien/wijzigen.
|
||||
fresult.iamContact = user.isContactpersoon(); // Ben ik een contactpersoon?
|
||||
fresult.iamBedrijfContact = false; // Aan bedrijf toegekend en ik ben contactpersoon van dat bedrijf?
|
||||
if (ref_info.lev_uit_type == 'B')
|
||||
{ // Ik ga er van uit dat je NIET als vervanger van een contactpersoon van een ander bedrijf wordt aangewezen.
|
||||
fresult.iamBedrijfContact = user.isContactpersoon(ref_info.lev_uit_key); // Ben ik contactpersoon van het uitvoerende bedrijf?
|
||||
}
|
||||
|
||||
fresult.canFEwrite = fresult.canWrite("WEB_FINUSE") && isContactpersoon;
|
||||
fresult.canFEwrite =(fresult.iamContact? (fresult.canRead("WEB_FINUSE") && fresult.iamBedrijfContact) : fresult.canRead("WEB_FINUSE"));
|
||||
fresult.canFOwrite = fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canBOwrite = fresult.canWrite("WEB_FINBOF");
|
||||
fresult.canGOEwrite = fresult.canWrite("WEB_FINGOE");
|
||||
fresult.canWriteAny = fresult.canWrite("WEB_FINUSE") && isContactpersoon || fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINBOF");
|
||||
fresult.canReadAny = (fresult.canRead("WEB_FINUSE") && isContactpersoon) ||
|
||||
fresult.canWriteAny = fresult.canWrite("WEB_FINUSE") && fresult.iamContact || fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINBOF");
|
||||
fresult.canReadAny = (fresult.iamContact? (fresult.canRead("WEB_FINUSE") && fresult.iamBedrijfContact) : fresult.canRead("WEB_FINUSE")) ||
|
||||
fresult.canRead("WEB_FINFOF") ||
|
||||
fresult.canRead("WEB_FINBOF") ||
|
||||
user.isCollega(kpverantwoordelijke);
|
||||
fresult.canFEread = fresult.canRead("WEB_FINUSE") && isContactpersoon;
|
||||
fresult.canFEread = fresult.canRead("WEB_FINUSE") && fresult.iamContact;
|
||||
fresult.canFOread = fresult.canRead("WEB_FINFOF");
|
||||
fresult.canBOread = fresult.canRead("WEB_FINBOF");
|
||||
fresult.canGOEread = fresult.canRead("WEB_FINGOE");
|
||||
@@ -90,44 +96,44 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
|
||||
switch (fin_status)
|
||||
{
|
||||
case 3: // Incompleet
|
||||
fresult.canChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) ||
|
||||
fresult.canChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) ||
|
||||
fresult.canWrite("WEB_FINFOF") ||
|
||||
(fresult.canWrite("WEB_FINBOF") && S("fin_bof_mag_editen") == 1);
|
||||
fresult.canDelete = fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINUSE");
|
||||
fresult.canDateChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canRemarkChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canInvLinChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canDateChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canRemarkChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canInvLinChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) || fresult.canWrite("WEB_FINFOF");
|
||||
break;
|
||||
case 1: // Afgewezen
|
||||
fresult.canUnReject = (fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINBOF") || user.isCollega(kpverantwoordelijke)) && (kpverantwoordelijke > 0);
|
||||
break;
|
||||
case -1: // Nieuwe factuur
|
||||
case 2: // Ingevoerd
|
||||
fresult.canChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) ||
|
||||
fresult.canChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) ||
|
||||
fresult.canWrite("WEB_FINFOF") ||
|
||||
(fresult.canWrite("WEB_FINBOF") && S("fin_bof_mag_editen") == 1);
|
||||
fresult.canAccept = (fresult.canWrite("WEB_FINBOF") || user.isCollega(kpverantwoordelijke)) && (kpverantwoordelijke > 0);
|
||||
fresult.canDelete = fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINUSE");
|
||||
fresult.canDateChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canRemarkChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canInvLinChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canDateChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canRemarkChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canInvLinChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) || fresult.canWrite("WEB_FINFOF");
|
||||
break;
|
||||
case 5: // Financieel goedgekeurd
|
||||
fresult.canUnapprove = fresult.canWrite("WEB_FINGOE") || (fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINBOF") || user.isCollega(kpverantwoordelijke)) && (kpverantwoordelijke > 0);
|
||||
// Maar na wijzigen moet er opnieuw gefiatteed worden door BO.
|
||||
fresult.canChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canDateChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canRemarkChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canInvLinChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canDateChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canRemarkChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canInvLinChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canGoedkeur = fresult.canWrite("WEB_FINGOE") && user.isCollega(goedkeurder) && S("fin_enable_goedkeuren") == 1;
|
||||
break;
|
||||
case 6: // Akkoord
|
||||
fresult.canUnapprove = (fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINBOF") || user.isCollega(kpverantwoordelijke)) && (kpverantwoordelijke > 0);
|
||||
// Maar na wijzigen moet er opnieuw gefiatteed worden door BO.
|
||||
fresult.canChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canDateChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canRemarkChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canInvLinChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canDateChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canRemarkChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canInvLinChange = (fresult.canWrite("WEB_FINUSE") && fresult.iamContact) || fresult.canWrite("WEB_FINFOF");
|
||||
break;
|
||||
case 7: // Verwerkt
|
||||
break;
|
||||
|
||||
@@ -760,13 +760,15 @@ Perslid.prototype.isBudgethouder = function()
|
||||
}
|
||||
|
||||
// Ben ik contactpersoon van *een* bedrijf (maakt niet uit welke)
|
||||
Perslid.prototype.isContactpersoon = function()
|
||||
Perslid.prototype.isContactpersoon = function(bedrijf_key)
|
||||
{
|
||||
var contactpersoon = false;
|
||||
var sql = "SELECT COUNT(*)"
|
||||
+ " FROM prs_contactpersoon cp"
|
||||
+ " WHERE cp.prs_perslid_key = " + this._prs_perslid_key
|
||||
+ " AND cp.prs_contactpersoon_verwijder IS NULL";
|
||||
if (bedrijf_key)
|
||||
sql += " AND prs_bedrijf_key = " + bedrijf_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (oRs(0).value > 0)
|
||||
contactpersoon = true;
|
||||
|
||||
Reference in New Issue
Block a user