You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by DURDINA Michal <Mi...@assetsoft.sk> on 2003/11/14 11:42:49 UTC

RoleFilterTransformer (or before I go for lunch)

Hi,
I am trying to use RoleFilterTransformer to filter elements in my xml according to Container Managed user roles (accessible via request.isUserInRole()). Either I am really missing something or this component doesn't work as expected.

Try this:

  <map:match pattern="test.xml">
  	<map:generate type="file" src="test.xml"/>
  	<map:transform type="rolefilter" label="roles">
		<!-- this has to be here due to parent FilterTransformer requirements -->
		<map:parameter name="element-name"  value="dummy"/>
  	</map:transform>
  	<map:serialize type="xml"/>
  </map:match>

test.xml:
  <el1 roles:restricted="rpt090viewer">el1</el1> 
  <el2 roles:restricted="rpt100viewer">el2</el2> 
  <el3>el3</el3> 

then output is (user has roles rpt080viewer,rpt090viewer):
<el1>el1</el1>
<block id="1"><el2>el2</el2>
<el3>el3</el3>

But I would expect this output:
<el1>el1</el1> 
<el3>el3</el3> 


What the hack is that? RoleFilterTransformer doesn't even produce a valid xml (missing block closing element).

Looking to sources of RoleFilterTransformer it extends FilterTransformer. I have no clue why, beacause FilterTransformer doesn't provide anything that could be extended by RoleFilterTransformer. All functionality is so simple, that it is all contained in the source of RoleFilterTransformer.

Can you please give any explanation to this? Is anyone using RoleFilterTransformer at all?

Thank you,
Michal