Joerg Heinicke wrote:
On 04.06.2004 17:54, Simeon Walker wrote:
Hi,
Whilst look for something to access request.isUserInRole I found the RoleFilterTransformer. It does not seem to be mentioned anywhere other than the Cocoon java api docs.
Yeah, some features are treated really stepmotherly.
I have setup the transform acting on the output of SQL Transformer which produces a list of all possible role in our system. Here's a bit of the sitemap:
<map:match pattern="roles.xml"> <map:generate src="cocoon://database/auth/ldap-roles.xml"/> <map:transform src="roles.xsl"/> <map:transform type="role-filter"> <map:parameter name="element-name" value="dummy"/> <map:parameter name="count" value="100"/> </map:transform> <map:serialize type="xml"/> </map:match>
The roles.xsl filter does the following to an SQL Tranformer rowset:
<xsl:template match="sql:rowset"> <table> <xsl:for-each select="sql:row"> <row roles:read-only="{sql:role_name}"> <entry><xsl:value-of select="sql:role_name"/></entry> </row> </xsl:for-each> </table> </xsl:template>
How does the XML output of the cocoon://database/auth/ldap-roles.xml pipeline look like?
Like this, but I've ommitted many rows:
<rowset name="role-list"> <row><role_name>Academic_Staff</role_name></row> <row><role_name>Administrative</role_name></row> ... </rowset>
But this gives and odd result. The rows for the rows I possess have an attribute roles:read-only="" and rows for the roles I don't possess are passed through untouched! Surely this is not what's meant to happen?
Can you be a bit more clear on this section?
After the RoleFilterTransformer it looks like this:
<table> <row roles:read-only=""><entry>Academic_Staff</entry></row> <row><entry>Administrative</entry></row> </table>
The row for the role I actually have has the role:read-only="" attribute, rows for roles I don't have just get passwd through.
I have found that the filter produces malformed xml when the roles:restricted is used. The exeception was from the later html producing xsl transformation. Here's what it produces:If I try to use roles:restricted in the xsl above then I get a java.util.EmptyStackException
Just by switching from roles:read-only to roles:restricted? Sounds crazy and such crazy things point often to the endorsed libs problem:
http://wiki.cocoondev.org/Wiki.jsp?page=EndorsedLibsProblem
Make sure you are using the version of Xalan you expect as described at http://xml.apache.org/xalan-j/faq.html#environmentcheck.
<table> <row><entry>Academic_Staff</entry></row><block id="1"> <row><entry>Administrative</block></entry></row> </table>
Joerg
Thanks for you reply.
Regards, Simeon
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
