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.
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.
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.
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