123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: ps
- (C) Copyright IBM Corp. 2005, 2011
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <!--
- Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
- Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- -->
- <!-- This stylesheet defines global portal variables and templates. -->
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:out="dummy-uri"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:xts="http://developer.cognos.com/schemas/xts/"
- xmlns:pm="http://developer.cognos.com/schemas/xts/pm"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- exclude-result-prefixes="xsl xtsext xts pm cm">
-
- <xsl:output method="xml" encoding="UTF-8" indent="no"/>
- <xsl:namespace-alias stylesheet-prefix="out" result-prefix="xsl"/>
-
- <xsl:template match="pm:permissions">
- <xsl:param name="origin" select="@origin"/>
- <!-- Current object class -->
- <out:variable name="oclass"><out:value-of select="{$origin}cm:objectClass"/></out:variable>
- <!-- Current object's permissions -->
- <out:variable name="objlvl"><out:value-of select="concat(' ',{$origin}cm:permissions,' ')"/></out:variable>
-
- <!-- Current target object's permissions for 'shortcut' object -->
- <out:variable name="trgobjlvl">
- <out:if test="$oclass='shortcut'">
- <out:value-of select="concat(' ',{$origin}cm:target/*/cm:permissions,' ')"/>
- </out:if>
- </out:variable>
- <!-- Current base object's permissions for 'reportView' object (reportView and shortcut) and agentDefinitionView and pp8 view-->
- <out:variable name="bsobjlvl">
- <out:choose>
- <!-- shortcut to a reportview or agentDefinitionView to a report -->
- <out:when test="$oclass='shortcut' and ({$origin}cm:target/*/cm:objectClass='reportView' or {$origin}cm:target/*/cm:objectClass='agentDefinitionView' or {$origin}cm:target/*/cm:objectClass='powerPlay8ReportView')">
- <out:if test="{$origin}cm:target/*/cm:base/*/cm:permissions">
- <out:value-of select="concat(' ',{$origin}cm:target/*/cm:base/*/cm:permissions,' ')"/>
- </out:if>
- </out:when>
- <!-- reportview or agentDefinitionView or pp8View to a report -->
- <out:when test="$oclass='reportView' or $oclass='agentDefinitionView' or $oclass='powerPlay8ReportView'">
- <out:value-of select="concat(' ',{$origin}cm:base/*/cm:permissions,' ')"/>
- </out:when>
- </out:choose>
- </out:variable>
- <!-- Variable created, which contains all permissions for the current object; can be a combination of current and determined permissions -->
- <out:variable name="accessAvailable">
- <out:choose>
- <out:when test="$oclass='shortcut'">
- <out:value-of select="' '"/>
- <out:if test="$objlvl!=''">
- <out:if test="contains($objlvl,' read ')">scr </out:if>
- <out:if test="contains($objlvl,' write ')">scw </out:if>
- </out:if>
- <out:if test="$trgobjlvl!=''">
- <out:if test="contains($trgobjlvl,' read ')">r </out:if>
- <out:if test="contains($trgobjlvl,' write ')">w </out:if>
- <out:if test="contains($trgobjlvl,' traverse ')">t </out:if>
- <out:if test="contains($trgobjlvl,' setPolicy ')">sp </out:if>
- </out:if>
- <!-- shortcut to a target -->
- <out:if test="$bsobjlvl='' and $trgobjlvl!='' and contains($trgobjlvl,' execute ')">x </out:if>
- <!-- NOTE: CM supports only 1-level refprop - this means the permission data on the target report is _not_ -->
- <!-- available. This code will never evaluate to TRUE until CM supports multiple-level refprop'ing -->
- <!-- shortcut to a reportview to a report or to an agentDefinitionView to an agentDefinition or to a pp8view to a powerplay8-->
- <out:if test="$bsobjlvl!='' and contains($bsobjlvl,' execute ') and $trgobjlvl!='' and contains($trgobjlvl,' execute ')">x </out:if>
- </out:when>
- <out:otherwise>
- <out:value-of select="' '"/>
- <out:if test="contains($objlvl,' read ')">r </out:if>
- <out:if test="contains($objlvl,' write ')">w </out:if>
- <out:if test="contains($objlvl,'traverse')">t </out:if>
- <out:if test="contains($objlvl,'setPolicy')">sp </out:if>
- <out:choose>
- <out:when test="$oclass='reportView' or $oclass='agentDefinitionView' or $oclass='powerPlay8ReportView'">
- <out:if test="$bsobjlvl!='' and contains($bsobjlvl,' execute ') and $objlvl!='' and contains($objlvl,'execute')">x </out:if>
- </out:when>
- <out:otherwise>
- <out:if test="contains($objlvl,'execute')">x </out:if>
- </out:otherwise>
- </out:choose>
- </out:otherwise>
- </out:choose>
- </out:variable>
- <out:variable name="canRead" select="contains($accessAvailable, ' r ')"/>
- <out:variable name="canWrite" select="contains($accessAvailable, ' w ')"/>
- <out:variable name="canExecute" select="contains($accessAvailable, ' x ')"/>
- <out:variable name="canTraverse" select="contains($accessAvailable, ' t ')"/>
- <out:variable name="canSetPolicy" select="contains($accessAvailable, ' sp ')"/>
- <out:variable name="canReadShort">
- <out:choose>
- <out:when test="$oclass='shortcut'"><out:value-of select="contains($accessAvailable,' scr ')"/></out:when>
- <out:otherwise><out:value-of select="contains($accessAvailable,' r ')"/></out:otherwise>
- </out:choose>
- </out:variable>
- <out:variable name="canWriteShort">
- <out:choose>
- <out:when test="$oclass='shortcut'"><out:value-of select="contains($accessAvailable,' scw ')"/></out:when>
- <out:otherwise><out:value-of select="contains($accessAvailable,' w ')"/></out:otherwise>
- </out:choose>
- </out:variable>
- <out:variable name="outputFormat">
- <out:choose>
- <out:when test="( {$origin}cm:target/*/cm:defaultOutputFormat and not( {$origin}cm:target/*/cm:defaultOutputFormat/@nil ) )">
- <out:value-of select="{$origin}cm:target/*/cm:defaultOutputFormat/cm:string[1]"/>
- </out:when>
- <out:when test="( {$origin}cm:defaultOutputFormat and not( {$origin}cm:defaultOutputFormat/@nil ) )">
- <out:value-of select="{$origin}cm:defaultOutputFormat/cm:string[1]"/>
- </out:when>
- </out:choose>
- </out:variable>
- <!--
- ==========================================================
- = RTC TASK 4127 - Avoid running a report when a view is possible but not in user's default format
- = Set the output_format value regardless if consumable format or not.
- ==========================================================
- -->
- <out:variable name="output_format" select="$outputFormat"/>
- </xsl:template>
- <xsl:template match="*">
- <xsl:copy>
- <xsl:copy-of select="@*"/>
- <xsl:apply-templates/>
- </xsl:copy>
- </xsl:template>
- </xsl:stylesheet>
|