Changeset 4578 for cats


Ignore:
Timestamp:
02/25/14 16:19:28 (10 years ago)
Author:
andmor
Message:

Paged user schemas now returns all the schemas if the requesting user has a role available on the <sc:access-roles><sc:schemas>...</sc:schemas></sc:access-roles> list

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cats/SCHEMAcat/trunk/urn.org.isocat.schemacat.interface.rest/interface/pagedUserSchemas.dpml

    r4435 r4578  
    11<?xml version="1.0" encoding="UTF-8"?>
    2 <sequence debug="false">
     2<sequence debug="true">
    33    <log>
    44        <level>INFO</level>
     
    1717        <param>arg:userID</param>
    1818    </log>
     19    <request assignment="schemaAuthorizedRoles">
     20        <identifier>active:org.isocat.schemacat.access.data.schemas.authorizedRoles</identifier>
     21    </request>
    1922    <if assignment="response">
    2023        <cond>
     
    3639                    </request>
    3740                </argument>
    38                 <argument name="authorizedRoles" method="identity">
    39                     <request>
    40                         <identifier>active:org.isocat.schemacat.access.data.schemas.authorizedRoles</identifier>
    41                     </request>
    42                 </argument>
     41                <argument name="authorizedRoles" method="identity">this:schemaAuthorizedRoles</argument>
    4342                <argument name="user" method="identity">scratch:user</argument>
    4443            </request>
    4544        </cond>
    4645        <then>
    47             <request>
    48                 <identifier>active:org.isocat.schemacat.access.data.schemas.paged</identifier>
    49                 <argument name="userID">arg:userID</argument>
    50                 <argument name="startPage">arg:startPage</argument>
    51                 <argument name="pageSize">arg:pageSize</argument>
    52             </request>
     46            <if>
     47                <!-- if user has schemas administration rights, source all the schemas -->
     48                <cond>         
     49                    <request>
     50                        <identifier>active:sloot.xpath2</identifier>
     51                        <argument name="operand">
     52                            <request>
     53                                <identifier>active:xslt2</identifier>
     54                                <argument name="operand">scratch:user</argument>
     55                                <argument name="operator">
     56                                    <literal type="xml">
     57                                        <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sc="http://www.isocat.org/ns/schemacat" version="2.0">
     58                                            <xsl:param name="authorizedRoles"/>
     59                                            <xsl:param name="debug"/>
     60                                            <xsl:template match="/">
     61                                                <b><xsl:value-of select="string(/sc:user/sc:role = $authorizedRoles/roles/role)"/></b>
     62                                            </xsl:template>
     63                                        </xsl:stylesheet>
     64                                    </literal>
     65                                </argument>
     66                                <argument name="authorizedRoles" method="identity">this:schemaAuthorizedRoles</argument>
     67                                <argument name="debug">this:sloot-debug</argument>
     68                            </request>
     69                        </argument>
     70                        <argument name="operator">
     71                            <literal type="string">boolean(normalize-space(.)=('t','true'))</literal>
     72                        </argument>
     73                    </request>
     74                </cond>
     75                <then>
     76                    <request>
     77                        <identifier>active:org.isocat.schemacat.access.data.schemas.paged</identifier>
     78                        <argument name="userID">
     79                            <literal type="string">*</literal>
     80                        </argument>
     81                        <argument name="startPage">arg:startPage</argument>
     82                        <argument name="pageSize">arg:pageSize</argument>
     83                    </request>
     84                </then>
     85                <else>
     86                    <request>
     87                        <identifier>active:org.isocat.schemacat.access.data.schemas.paged</identifier>
     88                        <argument name="userID">arg:userID</argument>
     89                        <argument name="startPage">arg:startPage</argument>
     90                        <argument name="pageSize">arg:pageSize</argument>
     91                    </request>
     92                </else>
     93            </if>
    5394        </then>
    5495        <else>
Note: See TracChangeset for help on using the changeset viewer.