query-credential-info.xslt 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. IBM Cognos Products: ps
  5. (C) Copyright IBM Corp. 2005, 2011
  6. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. -->
  8. <!--
  9. Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
  10. Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
  11. -->
  12. <xsl:stylesheet version="1.0"
  13. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  14. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  15. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  16. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  17. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  18. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  19. exclude-result-prefixes="xsl cm pf xts send xtsext">
  20. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  21. <pf:variables/>
  22. <xsl:template match="/">
  23. <xts:sequence>
  24. <!-- pack up the schedule credentials into the environment -->
  25. <xts:append select="/root/env">
  26. <xts:transform src="portal/controls/create_web64_param.xslt" processor="XSLT">
  27. <param name="m_scheduleCredentials">
  28. <passport><xsl:value-of select="$passport"/></passport>
  29. <markup>
  30. <xts:transform name="XMLEncode">
  31. <credential type="cm:baseClassArrayProp">
  32. <xts:queryNode select="/root/*[local-name()='queryResponse']/*[local-name()='queryReply']/*[local-name()='schedule']/*[local-name()='credential']/*"/>
  33. </credential>
  34. </xts:transform>
  35. </markup>
  36. </param>
  37. </xts:transform>
  38. </xts:append>
  39. <!-- get the schedule's credential searchPath property -->
  40. <xsl:variable name="scheduleCredentialSearchPathProperty">
  41. <xsl:choose>
  42. <xsl:when test="/root/cm:queryResponse/cm:queryReply/cm:schedule/cm:credential/cm:credential/cm:searchPath">
  43. <xsl:value-of select="/root/cm:queryResponse/cm:queryReply/cm:schedule/cm:credential/cm:credential/cm:searchPath"/>
  44. </xsl:when>
  45. <xsl:otherwise>
  46. <xsl:value-of select="/root/scheduleCredentials/*[local-name()='credential']/*[local-name()='credential']/*[local-name()='searchPath']"/>
  47. </xsl:otherwise>
  48. </xsl:choose>
  49. </xsl:variable>
  50. <!-- extract the credential's user searchPath from the credential searchPath -->
  51. <xsl:variable name="userSearchPath" select="substring-before($scheduleCredentialSearchPathProperty,'/credential')"></xsl:variable>
  52. <xts:append>
  53. <credentialInfo>
  54. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  55. <send:request provider="cm">
  56. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  57. <cm:query xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  58. <cm:requests>
  59. <!-- user credential details -->
  60. <cm:query>
  61. <cm:search>~</cm:search>
  62. <cm:properties>
  63. <cm:property name="defaultName"/>
  64. <cm:property name="userName"/>
  65. <cm:property name="searchPath"/>
  66. </cm:properties>
  67. </cm:query>
  68. <xsl:if test="not($userSearchPath='')">
  69. <cm:query>
  70. <cm:search><xsl:value-of select="$userSearchPath"/></cm:search>
  71. <cm:properties>
  72. <cm:property name="defaultName"/>
  73. <cm:property name="userName"/>
  74. </cm:properties>
  75. </cm:query>
  76. </xsl:if>
  77. </cm:requests>
  78. </cm:query>
  79. </xts:transform>
  80. </send:request>
  81. </xts:transform>
  82. </credentialInfo>
  83. </xts:append>
  84. <xsl:variable name="scheduleExists">
  85. <xsl:choose>
  86. <xsl:when test="/root/cm:queryResponse/cm:queryReply/cm:schedule">true</xsl:when>
  87. <xsl:otherwise>false</xsl:otherwise>
  88. </xsl:choose>
  89. </xsl:variable>
  90. <!-- track if user resets credentials -->
  91. <xsl:if test="not(/root/env/param[@name='m_schedule_owner_reset'])">
  92. <xts:append select="/root/env">
  93. <param name="m_schedule_owner_reset">
  94. <xsl:choose>
  95. <!-- set this to true to ensure that credentials are saved on a new schedule -->
  96. <xsl:when test="$scheduleExists='false'">
  97. <xsl:value-of select="'true'"/>
  98. </xsl:when>
  99. <xsl:otherwise>
  100. <xsl:value-of select="'false'"/>
  101. </xsl:otherwise>
  102. </xsl:choose>
  103. </param>
  104. </xts:append>
  105. </xsl:if>
  106. </xts:sequence>
  107. </xsl:template>
  108. </xsl:stylesheet>