package org.molgenis.security.freemarker; import freemarker.core.Environment; import freemarker.template.TemplateDirectiveBody; import freemarker.template.TemplateException; import org.molgenis.security.core.MolgenisPermissionService; import java.io.IOException; /** * Directive that prints the body of the tag if the current user has no permission on entity * <p> * usage: <@notHasPermission entity='celiacsprue' permission="WRITE">no write permission</@notHasPermission> */ public class NotHasPermissionDirective extends PermissionDirective { public NotHasPermissionDirective(MolgenisPermissionService molgenisPermissionService) { super(molgenisPermissionService); } @Override protected void execute(boolean hasPermission, Environment env, TemplateDirectiveBody body) throws TemplateException, IOException { if (!hasPermission) { body.render(env.getOut()); } } }