I have a similar situation, with a discussion forum. It uses different
pipelines depending on the user ID, and also has a pipeline for users
who are not logged in. I show it below. Maybe, it can be useful for you
to look at.
Hans
<map:match pattern="*.diskutera">
<map:act type="auth-loggedIn">
<map:parameter name="handler" value="demohandler"/>
<map:act type="auth-protect">
<map:parameter name="handler" value="demohandler"/>
<map:select type="parameter">
<map:parameter name="parameter-selector-test" value="{role}"/>
<map:when test="guest">
<map:generate src="" type="xquery">
<map:parameter name="file" value="{../../1}"/>
<map:parameter name="use-request-parameters" value="true"/>
<map:parameter name="ID" value="{ID}"/>
<map:parameter name="role" value="{role}"/>
</map:generate>
<map:serialize/>
</map:when>
<map:when test="admin">
<map:generate src="" type="xquery">
<map:parameter name="file" value="{../../1}"/>
<map:parameter name="use-request-parameters" value="true"/>
<map:parameter name="ID" value="{ID}"/>
<map:parameter name="role" value="{role}"/>
</map:generate>
<map:serialize/>
</map:when>
</map:select>
</map:act>
</map:act>
<map:generate src="" type="xquery">
<map:parameter name="forum" value="{1}"/>
<map:parameter name="use-request-parameters" value="true"/>
</map:generate>
<map:serialize type="xml"/>
</map:match>
