Skip to main content
Version: Next

Afficher la zone de champs cachés en fonction d'un rôle [debug]

Cette FAQ explique comment afficher la zone de champs cachés si l'ondispose du rôle "Debug"

Inclure dans votre formulaire cette fonction :

image.png

Soit :

<script runat="server">//<![CDATA[
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
Avanteam.Application.Security.APSUser user = Avanteam.Application.Security.APSUser.GetUserFromSession();
string roles = "";
foreach (string role in user.Roles)
{
roles += role + ";";
}
roles = roles.Replace("'", "\'");
if (roles.Length > 0 && roles[roles.Length - 1].ToString() == ";")
roles = roles.Substring(0, roles.Length - 1);
Page.ClientScript.RegisterStartupScript(this.GetType(), "DETECT_ROLES", string.Format("var userRoles = \"{0}\";", roles), true);
}

//]]></script>

Disposer d'une fonction javasscript :

function changeHiddenClass() {

if (isMember("Debug")) {

var els = document.getElementsByClassName('hidden');
i = els.length;
while (i--) {
//console.log(els[i].id);
if (els[i].id == "cache") {
els[i].className = 'xhidden';
console.log('--OK For Hidden--');
}
}
}
}

function isMember(value) {

var n = (userRoles.indexOf(value));
if (n == -1) {
return false;
}
else {
return true;
}
}

Lancer la fonction javasscript :

function load() {
changeHiddenClass();
}

Dans la définition HTML du tableau de champs caché :

<div id="cache" class="hidden">