fix_acl_functions_test.xsl 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  4. xmlns:system_cache__appinfo="http://biuro.biall-net.pl/xmlschema_procesy5/default_db_xml_cache/appinfo.xsd"
  5. exclude-result-prefixes="xs"
  6. version="2.0">
  7. <!-- @2015-07-28 testowe funkcje do sprzatania problemow z uprawnieniami i brakujacymi ACL -->
  8. <!-- @2017-02 bindera: wyglada na przydatne do wstawienia jako funkcja do WPS itp -->
  9. <xsl:import href="import_resource_table_xml_from_api.xsl"/>
  10. <xsl:import href="form_occurs_max_sequence.xsl"/>
  11. <xsl:import href="get_all_xsd.xsl"/>
  12. <xsl:import href="CRM_LISTA_ZASOBOW_tree.xsl"/>
  13. <xsl:import href="IN7_MK_BAZA_DYSTRYBUCJI_tree.xsl"/>
  14. <xsl:param name="resource_id" select="''"/> <!-- numer zasobu do odbudowy drzewa -->
  15. <xsl:variable name="DEVICES">
  16. <xsl:call-template name="import_resource_table_xml_from_api">
  17. <xsl:with-param name="cache" select="'read'"/>
  18. <xsl:with-param name="resource" select="'DEVICES'"/>
  19. </xsl:call-template>
  20. </xsl:variable>
  21. <xsl:variable name="LDAP_GROUPS">
  22. <!-- ID , NAME -->
  23. <xsl:call-template name="import_resource_table_xml_from_api">
  24. <xsl:with-param name="cache" select="'read'"/>
  25. <xsl:with-param name="resource" select="'LDAP_GROUPS'"/>
  26. </xsl:call-template>
  27. </xsl:variable>
  28. <xsl:variable name="CRM_LISTA_ZASOBOW">
  29. <!-- ID , A_LDAP_GID(LDAP_GROUPS)-->
  30. <xsl:call-template name="import_resource_table_xml_from_api">
  31. <xsl:with-param name="cache" select="'read'"/>
  32. <xsl:with-param name="resource" select="'CRM_LISTA_ZASOBOW'"/>
  33. </xsl:call-template>
  34. </xsl:variable>
  35. <xsl:variable name="IN7_DZIENNIK_KORESP">
  36. <xsl:call-template name="import_resource_table_xml_from_api">
  37. <xsl:with-param name="cache" select="'read'"/>
  38. <xsl:with-param name="resource" select="'IN7_DZIENNIK_KORESP'"/>
  39. </xsl:call-template>
  40. </xsl:variable>
  41. <xsl:variable name="IN7_MK_BAZA_DYSTRYBUCJI">
  42. <xsl:call-template name="import_resource_table_xml_from_api">
  43. <xsl:with-param name="cache" select="'read'"/>
  44. <xsl:with-param name="resource" select="'IN7_MK_BAZA_DYSTRYBUCJI'"/>
  45. </xsl:call-template>
  46. </xsl:variable>
  47. <xsl:variable name="TELBOXES">
  48. <xsl:call-template name="import_resource_table_xml_from_api">
  49. <xsl:with-param name="cache" select="'read'"/>
  50. <xsl:with-param name="resource" select="'TELBOXES'"/>
  51. </xsl:call-template>
  52. </xsl:variable>
  53. <xsl:variable name="PROBLEMS">
  54. <xsl:call-template name="import_resource_table_xml_from_api">
  55. <xsl:with-param name="cache" select="'read'"/>
  56. <xsl:with-param name="resource" select="'PROBLEMS'"/>
  57. </xsl:call-template>
  58. </xsl:variable>
  59. <xsl:variable name="system_cache__appinfo:transform_cache__CRM_LISTA_ZASOBOW_tree">
  60. <xsl:call-template name="system_cache__appinfo:transform_cache__CRM_LISTA_ZASOBOW_tree"/>
  61. </xsl:variable>
  62. <xsl:variable name="system_cache__appinfo:transform_cache__IN7_MK_BAZA_DYSTRYBUCJI_tree">
  63. <xsl:call-template name="system_cache__appinfo:transform_cache__IN7_MK_BAZA_DYSTRYBUCJI_tree"/>
  64. </xsl:variable>
  65. <xsl:template name="main">
  66. <system_cache__appinfo:fix_acl_functions_confirm_form>
  67. <xsl:call-template name="IN7_MK_BAZA_DYSTRYBUCJI"/>
  68. <xsl:call-template name="IN7_DZIENNIK_KORESP"/>
  69. <xsl:call-template name="PROBLEMS"/>
  70. <xsl:call-template name="DEVICES">
  71. </xsl:call-template>
  72. <xsl:call-template name="TELBOXES"/>
  73. <xsl:call-template name="CRM_LISTA_ZASOBOW"/>
  74. </system_cache__appinfo:fix_acl_functions_confirm_form>
  75. </xsl:template>
  76. <!-- szukamy spraw z pustymi uprawnieniami i sugerujemy ustawienie z parenta (PROJEKTY)-->
  77. <xsl:template name="IN7_MK_BAZA_DYSTRYBUCJI">
  78. <xsl:for-each select="$IN7_MK_BAZA_DYSTRYBUCJI//item[A_CLASSIFIED='']">
  79. <xsl:variable name="ID" select="ID"/>
  80. <item>
  81. <xsl:attribute name="resource" select="'IN7_MK_BAZA_DYSTRYBUCJI'"/>
  82. <xsl:attribute name="ID" select="$ID"/>
  83. <old>
  84. <xsl:attribute name="A_CLASSIFIED" select="A_CLASSIFIED"/>
  85. <xsl:attribute name="A_RECORD_UPDATE_DATE" select="A_RECORD_UPDATE_DATE"/>
  86. </old>
  87. <set>
  88. <xsl:attribute name="A_CLASSIFIED" select="$system_cache__appinfo:transform_cache__IN7_MK_BAZA_DYSTRYBUCJI_tree//tree_item/@A_CLASSIFIED[parent::node()/@ID=//tree_item[descendant::node()[@ID=$ID]]/@ID and parent::node()/@A_CLASSIFIED!='']"/>
  89. <!--<xsl:attribute name="A_CLASSIFIED" select="$system_cache__appinfo:transform_cache__IN7_MK_BAZA_DYSTRYBUCJI_tree//tree_item[descendant::node()[@ID=$ID] and @A_CLASSIFIED!='' ]/@A_CLASSIFIED"/>-->
  90. </set>
  91. </item>
  92. </xsl:for-each>
  93. <xsl:for-each select="$IN7_MK_BAZA_DYSTRYBUCJI//item[A_ADM_COMPANY='']">
  94. <xsl:variable name="ID" select="ID"/>
  95. <item>
  96. <xsl:attribute name="resource" select="'IN7_MK_BAZA_DYSTRYBUCJI'"/>
  97. <xsl:attribute name="ID" select="$ID"/>
  98. <old>
  99. <xsl:attribute name="A_ADM_COMPANY" select="A_ADM_COMPANY"/>
  100. <xsl:attribute name="A_RECORD_UPDATE_DATE" select="A_RECORD_UPDATE_DATE"/>
  101. </old>
  102. <set>
  103. <xsl:attribute name="A_ADM_COMPANY" select="$system_cache__appinfo:transform_cache__IN7_MK_BAZA_DYSTRYBUCJI_tree//tree_item/@A_ADM_COMPANY[parent::node()/@ID=//tree_item[descendant::node()[@ID=$ID]]/@ID and parent::node()/@A_ADM_COMPANY!='']"/>
  104. <!--<xsl:attribute name="A_ADM_COMPANY" select="$system_cache__appinfo:transform_cache__IN7_MK_BAZA_DYSTRYBUCJI_tree//tree_item[descendant::node()[@ID=$ID] and @A_ADM_COMPANY!='' ]/@A_ADM_COMPANY"/>-->
  105. </set>
  106. </item>
  107. </xsl:for-each>
  108. </xsl:template>
  109. <!-- szukamy korespondencji z niewlasciwymi numerami ACL wzgledem spraw -->
  110. <xsl:template name="IN7_DZIENNIK_KORESP">
  111. <xsl:for-each select="$IN7_MK_BAZA_DYSTRYBUCJI//item">
  112. <xsl:variable name="A_ADM_COMPANY" select="A_ADM_COMPANY"/>
  113. <xsl:variable name="A_CLASSIFIED" select="A_CLASSIFIED" />
  114. <xsl:variable name="ID" select="ID" />
  115. <xsl:for-each select="$IN7_DZIENNIK_KORESP//item[ID_PROJECT=$ID and A_ADM_COMPANY!=$A_ADM_COMPANY]">
  116. <item>
  117. <xsl:attribute name="resource" select="'IN7_DZIENNIK_KORESP'"/>
  118. <xsl:attribute name="ID" select="ID"/>
  119. <old>
  120. <xsl:attribute name="A_ADM_COMPANY" select="A_ADM_COMPANY"/>
  121. <xsl:attribute name="A_RECORD_UPDATE_DATE" select="A_RECORD_UPDATE_DATE"/>
  122. </old>
  123. <set>
  124. <xsl:attribute name="A_ADM_COMPANY" select="$A_ADM_COMPANY"/>
  125. </set>
  126. </item>
  127. </xsl:for-each>
  128. <xsl:for-each select="$IN7_DZIENNIK_KORESP//item[ID_PROJECT=$ID and A_CLASSIFIED!=$A_CLASSIFIED]">
  129. <item>
  130. <xsl:attribute name="resource" select="'IN7_DZIENNIK_KORESP'"/>
  131. <xsl:attribute name="ID" select="ID"/>
  132. <old>
  133. <xsl:attribute name="A_CLASSIFIED" select="A_CLASSIFIED"/>
  134. <xsl:attribute name="A_RECORD_UPDATE_DATE" select="A_RECORD_UPDATE_DATE"/>
  135. </old>
  136. <set>
  137. <xsl:attribute name="A_CLASSIFIED" select="$A_CLASSIFIED"/>
  138. </set>
  139. </item>
  140. </xsl:for-each>
  141. </xsl:for-each>
  142. </xsl:template>
  143. <!-- szukamy problemow bez ACL i powiazanych ze sprawami -->
  144. <xsl:template name="PROBLEMS">
  145. <xsl:for-each select="$IN7_MK_BAZA_DYSTRYBUCJI//item">
  146. <xsl:variable name="A_ADM_COMPANY" select="A_ADM_COMPANY"/>
  147. <xsl:variable name="A_CLASSIFIED" select="A_CLASSIFIED" />
  148. <xsl:variable name="ID" select="ID" />
  149. <xsl:for-each select="$PROBLEMS//item[ID_PROJECT=$ID and A_ADM_COMPANY!=$A_ADM_COMPANY]">
  150. <item>
  151. <xsl:attribute name="resource" select="'PROBLEMS'"/>
  152. <xsl:attribute name="ID" select="ID"/>
  153. <old>
  154. <xsl:attribute name="A_ADM_COMPANY" select="A_ADM_COMPANY"/>
  155. <xsl:attribute name="A_RECORD_UPDATE_DATE" select="A_RECORD_UPDATE_DATE"/>
  156. </old>
  157. <set>
  158. <xsl:attribute name="A_ADM_COMPANY" select="$A_ADM_COMPANY"/>
  159. </set>
  160. </item>
  161. </xsl:for-each>
  162. <xsl:for-each select="$PROBLEMS//item[ID_PROJECT=$ID and A_CLASSIFIED!=$A_CLASSIFIED]">
  163. <item>
  164. <xsl:attribute name="resource" select="'PROBLEMS'"/>
  165. <xsl:attribute name="ID" select="ID"/>
  166. <old>
  167. <xsl:attribute name="A_CLASSIFIED" select="A_CLASSIFIED"/>
  168. <xsl:attribute name="A_RECORD_UPDATE_DATE" select="A_RECORD_UPDATE_DATE"/>
  169. </old>
  170. <set>
  171. <xsl:attribute name="A_CLASSIFIED" select="$A_CLASSIFIED"/>
  172. </set>
  173. </item>
  174. </xsl:for-each>
  175. </xsl:for-each>
  176. </xsl:template>
  177. <!-- szukam urzadzen bez grupy uprawnien i sugeruje ustawienie na podstawie grupy zasobow TODO inaczej niz po nr zasobu -->
  178. <xsl:template name="DEVICES">
  179. <xsl:for-each select="$DEVICES//item[A_CLASSIFIED='' and CRM_LISTA_ZASOBOW_ID!='']">
  180. <xsl:variable name="CRM_LISTA_ZASOBOW_ID" select="CRM_LISTA_ZASOBOW_ID"/>
  181. <item>
  182. <xsl:attribute name="resource" select="'DEVICES'"/>
  183. <xsl:attribute name="ID" select="ID"/>
  184. <old>
  185. <xsl:attribute name="A_CLASSIFIED" select="A_CLASSIFIED"/>
  186. <xsl:attribute name="A_RECORD_UPDATE_DATE" select="A_RECORD_UPDATE_DATE"/>
  187. </old>
  188. <set>
  189. <!--<xsl:attribute name="A_CLASSIFIED" select="$system_cache__appinfo:transform_cache__CRM_LISTA_ZASOBOW_tree//tree_item[descendant::node()[@ID=$CRM_LISTA_ZASOBOW_ID] and @A_CLASSIFIED!='' ]/@A_CLASSIFIED"/>-->
  190. <xsl:attribute name="A_CLASSIFIED" select="$system_cache__appinfo:transform_cache__CRM_LISTA_ZASOBOW_tree//tree_item/@A_CLASSIFIED[parent::node()/@ID=//tree_item[descendant::node()[@ID=$CRM_LISTA_ZASOBOW_ID]]/@ID and parent::node()/@A_CLASSIFIED!='']"/>
  191. </set>
  192. </item>
  193. </xsl:for-each>
  194. <xsl:for-each select="$DEVICES//item[A_ADM_COMPANY='' and CRM_LISTA_ZASOBOW_ID!='']">
  195. <xsl:variable name="CRM_LISTA_ZASOBOW_ID" select="CRM_LISTA_ZASOBOW_ID"/>
  196. <item>
  197. <xsl:attribute name="resource" select="'DEVICES'"/>
  198. <xsl:attribute name="ID" select="ID"/>
  199. <old>
  200. <xsl:attribute name="A_ADM_COMPANY" select="A_ADM_COMPANY"/>
  201. <xsl:attribute name="A_RECORD_UPDATE_DATE" select="A_RECORD_UPDATE_DATE"/>
  202. </old>
  203. <set>
  204. <!--<xsl:attribute name="A_ADM_COMPANY" select="$system_cache__appinfo:transform_cache__CRM_LISTA_ZASOBOW_tree//tree_item[descendant::node()[@ID=$CRM_LISTA_ZASOBOW_ID] and @A_ADM_COMPANY!='' ]/@A_ADM_COMPANY"/>-->
  205. <xsl:attribute name="A_ADM_COMPANY" select="$system_cache__appinfo:transform_cache__CRM_LISTA_ZASOBOW_tree//tree_item/@A_ADM_COMPANY[parent::node()/@ID=//tree_item[descendant::node()[@ID=$CRM_LISTA_ZASOBOW_ID]]/@ID and parent::node()/@A_ADM_COMPANY!='']"/>
  206. </set>
  207. </item>
  208. </xsl:for-each>
  209. </xsl:template>
  210. <!-- szukam lokalizacji bez grupy uprawnien i sugeruje ustawienie na podstawie grupy zasobow -->
  211. <xsl:template name="TELBOXES">
  212. <xsl:for-each select="$TELBOXES//item[A_CLASSIFIED='']">
  213. <xsl:variable name="CRM_LISTA_ZASOBOW_ID" select="CRM_LISTA_ZASOBOW_ID"/>
  214. <item>
  215. <xsl:attribute name="resource" select="'TELBOXES'"/>
  216. <xsl:attribute name="ID" select="ID"/>
  217. <old>
  218. <xsl:attribute name="A_CLASSIFIED" select="A_CLASSIFIED"/>
  219. <xsl:attribute name="A_RECORD_UPDATE_DATE" select="A_RECORD_UPDATE_DATE"/>
  220. </old>
  221. <set>
  222. <xsl:attribute name="A_CLASSIFIED" select="$system_cache__appinfo:transform_cache__CRM_LISTA_ZASOBOW_tree//tree_item[descendant::node()[@ID=$CRM_LISTA_ZASOBOW_ID] and @A_CLASSIFIED!='' ]/@A_CLASSIFIED"/>
  223. </set>
  224. </item>
  225. </xsl:for-each>
  226. <xsl:for-each select="$TELBOXES//item[A_ADM_COMPANY='']">
  227. <xsl:variable name="CRM_LISTA_ZASOBOW_ID" select="CRM_LISTA_ZASOBOW_ID"/>
  228. <item>
  229. <xsl:attribute name="resource" select="'TELBOXES'"/>
  230. <xsl:attribute name="ID" select="ID"/>
  231. <old>
  232. <xsl:attribute name="A_ADM_COMPANY" select="A_ADM_COMPANY"/>
  233. <xsl:attribute name="A_RECORD_UPDATE_DATE" select="A_RECORD_UPDATE_DATE"/>
  234. </old>
  235. <set>
  236. <xsl:attribute name="A_ADM_COMPANY" select="$system_cache__appinfo:transform_cache__CRM_LISTA_ZASOBOW_tree//tree_item[descendant::node()[@ID=$CRM_LISTA_ZASOBOW_ID] and @A_ADM_COMPANY!='' ]/@A_ADM_COMPANY"/>
  237. </set>
  238. </item>
  239. </xsl:for-each>
  240. </xsl:template>
  241. <!-- szukamy zasobow bez grup uprawnien i sugerujemy na podstawie parenta -->
  242. <xsl:template name="CRM_LISTA_ZASOBOW">
  243. <xsl:for-each select="$CRM_LISTA_ZASOBOW//item[A_CLASSIFIED='']">
  244. <xsl:variable name="ID" select="ID"/>
  245. <item>
  246. <xsl:attribute name="resource" select="'CRM_LISTA_ZASOBOW'"/>
  247. <xsl:attribute name="ID" select="ID"/>
  248. <old>
  249. <xsl:attribute name="A_CLASSIFIED" select="A_CLASSIFIED"/>
  250. <xsl:attribute name="A_RECORD_UPDATE_DATE" select="A_RECORD_UPDATE_DATE"/>
  251. </old>
  252. <set>
  253. <xsl:attribute name="A_CLASSIFIED" select="$system_cache__appinfo:transform_cache__CRM_LISTA_ZASOBOW_tree//tree_item/@A_CLASSIFIED[parent::node()/@ID=//tree_item[descendant::node()[@ID=$ID]]/@ID and parent::node()/@A_CLASSIFIED!='']"/>
  254. <!--<xsl:attribute name="A_CLASSIFIED" select="$system_cache__appinfo:transform_cache__CRM_LISTA_ZASOBOW_tree//tree_item[descendant::node()[@ID=$ID] and @A_CLASSIFIED!='' ]/@A_CLASSIFIED"/>-->
  255. </set>
  256. </item>
  257. </xsl:for-each>
  258. <xsl:for-each select="$CRM_LISTA_ZASOBOW//item[A_ADM_COMPANY='']">
  259. <xsl:variable name="ID" select="ID"/>
  260. <item>
  261. <xsl:attribute name="resource" select="'CRM_LISTA_ZASOBOW'"/>
  262. <xsl:attribute name="ID" select="ID"/>
  263. <old>
  264. <xsl:attribute name="A_ADM_COMPANY" select="A_ADM_COMPANY"/>
  265. <xsl:attribute name="A_RECORD_UPDATE_DATE" select="A_RECORD_UPDATE_DATE"/>
  266. </old>
  267. <set>]
  268. <!--<xsl:attribute name="A_ADM_COMPANY" select="$system_cache__appinfo:transform_cache__CRM_LISTA_ZASOBOW_tree//tree_item[descendant::node()[@ID=$ID] and @A_ADM_COMPANY!='' ]/@A_ADM_COMPANY"/>-->
  269. <xsl:attribute name="A_ADM_COMPANY" select="$system_cache__appinfo:transform_cache__CRM_LISTA_ZASOBOW_tree//tree_item/@A_ADM_COMPANY[parent::node()/@ID=//tree_item[descendant::node()[@ID=$ID]]/@ID and parent::node()/@A_ADM_COMPANY!='']"/>
  270. </set>
  271. </item>
  272. </xsl:for-each>
  273. </xsl:template>
  274. </xsl:stylesheet>