Necesito ayuda para averiguar cómo hacer que el elemento aparezca u oculte, según el estado del usuario. Usuario normal = ocultar elemento, administrador = mostrar elemento.
Tengo que hacer esto en Fliplet (lamentablemente) y sé que no todo se puede hacer en este entorno o al menos no fácilmente. Este pequeño problema, he estado atrapado durante varias horas. Mi último intento de cambiarlo se ve así (más HTML y CSS asociados):
JS
Fliplet.User.getCachedSession().then(function(session) { var user = _.get(session, 'entries.saml2.user'); var typeColumn = 'Admin'; //the name of the column in the data source if (user === 'admin1(changed ofcourse)' || user === 'admin2(changed ofcourse)') { $('.adminlink').fadeIn(400, function() { document.getElementsByClassName("adminlink").style.display='block'; } ); } else { $('.adminlink').fadeOut(1, function() { document.getElementsByClassName("adminlink").style.display='none'; } ); } });CSS
.adminlink { display: none !important; width: 100%; }HTML
<div class="adminlink" id="admin"> <fl-container cid="xxxxx"> <fl-list-small-thumbs cid="xxxxx"></fl-list-small-thumbs> </fl-container> </div>Por supuesto, inicialmente intenté seguir guías y fragmentos de código basados en el conocimiento de Fliplet, pero nunca funcionaron.
Probé diferentes enfoques de JS para esto e incluso cambios de CSS, pero nada parece funcionar. El elemento, por alguna razón, no quiere responder, sin importar cómo se llame, es decir, por id, clase, etc.
¡Cualquier idea será apreciada!
gracias greg
EDITAR: este enfoque utiliza el inicio de sesión integrado de Office 365 (funciona bien), sin embargo, inicialmente había un sistema de inicio de sesión basado en Fliplet (código diferente en JS) y aunque todavía funcionaba bien, la ocultación/mostración de elementos tampoco funcionó.
En caso de que alguien más necesite esto en el futuro.
Fliplet.User.getCachedSession().then(function(session) { var user = _.get(session, 'entries.saml2.user'); var admin = 'admin@admin.com'; var admin2 = 'admin2@admin.com'; if (user.email === admin || user.email === admin2) { $('.panel-group').attr('style','display: block !important'); } });CSS tiene que permanecer
.panel-group { display: none !important; }y los enlaces relevantes a la documentación API de Fliplet que me ayudaron a armar esto. Sí, ha sido implementado en producción y probado. ¿Alguna pregunta? Pégame
https://developers.fliplet.com/API/integrations/sso-saml2.html#exposing-data
https://developers.fliplet.com/API/components/form-builder.html#formloadfunction