U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Bouw een string met de rechten van een actie

0000002927     -      14-09-2023

Met de onderstaande code kunt u een tekenreeks samenstellen die kan worden gebruikt als "rechten" in acties (ID_DROITSP, ID_DROITSM, ID_DROITSV van de tabel ACTIONS).

Ten eerste moet er rekening mee worden gehouden dat als je iedereen rechten wilt verlenen, je alleen maar een lege string terug moet sturen. Als dit niet het geval is, kan deze code worden gebruikt.

Zoom
private string getDroits()
{
    using (MercatorUi._BaseClasses.DroitsStandAlone droits = new MercatorUi._BaseClasses.DroitsStandAlone())
    {
        var group_tech = droits.Tree.Nodes.FirstOrDefault(n => n.Text == "Tech");
        if (group_tech != null)
        {
            var node_guy = group_tech.Nodes.FirstOrDefault(n => n.Text == "Guy");
            if (node_guy != null)
                node_guy.Checked = true;
        }
        var group_comm = droits.Tree.Nodes.FirstOrDefault(n => n.Text == "Comm");
        if (group_comm != null)
        {
            var node_wim = group_comm.Nodes.FirstOrDefault(n => n.Text == "Wim");
            if (node_wim != null)
                node_wim.Checked = true;
        }
        var group_hors = droits.Tree.Nodes.FirstOrDefault(n => n.DataKeyString == "GROUP_??????????");
        if (group_hors != null)
        {
            var node_stephane = group_hors.Nodes.FirstOrDefault(n => n.Text == "Stephane");
            if (node_stephane != null)
                node_stephane.Checked = true;
        }
        return droits.Value;
    }
}

 

Merk op dat het nooit nodig is om een groepsnode aan te vinken. De status van deze nodes wordt automatisch beheerd door Mercator.

Met betrekking tot "Rechten voor" (ID_DROITSP), moet men fixeren op de property IdProprio.

Zoom
private string getDroits()
{
    using (MercatorUi._BaseClasses.DroitsStandAlone droits = new MercatorUi._BaseClasses.DroitsStandAlone())
    {
        droits.IdProprio = "..."; // id user
        ...
    }
}

Het is ook mogelijk om een bestaande (en geldige) string te wijzigen met een code zoals deze. In de groep "Tech", vink "Guy2" aan en in de groep "Comm", schakel het vinkje bij "Wim" uit.

Zoom
var s = getDroits();

using (MercatorUi._BaseClasses.DroitsStandAlone droits = new MercatorUi._BaseClasses.DroitsStandAlone())
{
    droits.Value = s;

    var group_tech = droits.Tree.Nodes.FirstOrDefault(n => n.Text == "Tech");
    if (group_tech != null)
    {
        var node_guy2 = group_tech.Nodes.FirstOrDefault(n => n.Text == "Guy2");
        if (node_guy2 != null)
            node_guy2.Checked = true;
    }
    var group_comm = droits.Tree.Nodes.FirstOrDefault(n => n.Text == "Comm");
    if (group_comm != null)
    {
        var node_wim = group_comm.Nodes.FirstOrDefault(n => n.Text == "Wim");
        if (node_wim != null)
            node_wim.Checked = false;
    }
    s = droits.Value;
}

 

Nodes kunnen worden geïdentificeerd aan de hand van hun eigenschap DataKeyString (zoals de node "Uit groep" in de eerste code). Deze property is zo gebouwd:

 

  • Node "Allen": "EVERYONE"
  • Node "Eigenaar": "CREATOR_" + IdProprio
  • Node "Groep": "GROEP_" + groepsidentificatiecode
  • Node van de groep "Uit groep" : "GROEP_Groep_???????????????????".
  • Gebruikersnode: "USER_" + groeps-ID+ "_" + gebruikers-ID