...
The configuration is using two ACL : acl.entity.globalmap.gadm to allow index search and acland acl.data.globalmap.gadm to search and list data.
Two user attributes is used to filter data:
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<?xml version="1.0" encoding="UTF-8"?> <config xmlns= "urn:com.cohga.server.config#1.0" xmlns:dmsstorage="urn:com.cohga.dms.storage.document.db#1.0" xmlns:cache= "urn:com.cohga.server.cache#1.0" xmlns:acl= "urn:com.cohga.server.acl#1.0" xmlns:pool= "urn:com.cohga.server.pool#1.0" xmlns:options= "urn:com.cohga.server.options#1.0" xmlns:parameter="urn:com.cohga.server.parameter#1.0" xmlns:search= "urn:com.cohga.server.search.database#1.0" xmlns:birt= "urn:com.cohga.server.report.birt#1.0" xmlns:data= "urn:com.cohga.server.data.database#1.0" xmlns:entity= "urn:com.cohga.server.entity#1.0" xmlns:jdbc= "urn:com.cohga.server.datasource.jdbc#1.0" xmlns:arcgisws= "urn:com.cohga.server.map.arcgis.ws#1.0" xmlns:arcims= "urn:com.cohga.server.map.arcims#1.0" xmlns:mapper= "urn:com.cohga.server.spatial.mapper#1.0" xmlns:spatial= "urn:com.cohga.server.spatial.geotools#1.0" xmlns:index= "urn:com.cohga.server.index#1.0" xmlns:toc= "urn:com.cohga.server.map.toc#1.0" xmlns:client= "urn:com.cohga.html.client#1.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd= "http://www.w3.org/2001/XMLSchema" xmlns:wms = "urn:com.cohga.server.map.wms#1.0" xmlns:edit= "urn:com.cohga.spatial.edit#1.0" xmlns:editor="urn:com.cohga.server.editor#1.0"> <!-- Global map --> <entity:entity id="entity.globalmap.gadm" label = "%globalmap.gadm.entity" acl="acl.entity.globalmap.gadm" /> <mapper:mapper id="mapper.globalmap.gadm"> <spatialEngine>spatialengine.globalmap_gadm</spatialEngine> <acl>acl.data.globalmap.gadm</acl> <mapping> <entity>entity.globalmap.gadm</entity> <table>gadm</table> <key>objectid</key> <filter>name_0 like'${user.customers.globalmap.gadm.name_0}'</filter> <filter>name_1 like'${user.customers.globalmap.gadm.name_1}'</filter> <dynamic/> <cache disable="true" /> </mapping> </mapper:mapper> <data:data id="d.globalmap.gadm" label="%globalmap.gadm.entity" entity="entity.globalmap.gadm" datadefinition="dd.globalmap.gadm" acl="acl.data.globalmap.gadm" /> <data:datadefinition id='dd.globalmap.gadm'> <datasourcedataconnection key='objectid' table='gadm.gadm' datasource='ds.globalmap'> <!-- <parameter name='objectid' label='Objectid' column='objectid' type='int'/> <parameter name='id_0' label='Id 0' column='id_0' type='int'/> <parameter name='iso' label='Iso' column='iso'/> <parameter name='id_1' label='Id 1' column='id_1' type='int'/> <parameter name='type_1' label='Type 1' column='type_1'/> <parameter name='id_2' label='Id 2' column='id_2' type='int'/> <parameter name='type_2' label='Type 2' column='type_2'/> <parameter name='id_3' label='Id 3' column='id_3' type='int'/> --> <parameter name='name_0' label='%globalmap.gadm.name_0' column='name_0'/> <parameter name='name_1' label='%globalmap.gadm.name_1' column='name_1'/> <parameter name='name_2' label='%globalmap.gadm.name_2' column='name_2'/> <parameter name='name_3' label='%globalmap.gadm.name_3' column='name_3'/> <parameter name='area_km2' label='%globalmap.gadm.area_km2' column="ST_Area(the_geom::geography)::bigint/1000000"/> </datasourcedataconnection> </data:datadefinition> <data:data id="d_gadm_group_total" label="%globalmap.gadm.total_area" entity="entity.globalmap.gadm" datadefinition="dd_gadm_group_total" acl="acl.data.globalmap.gadm" /> <data:datadefinition id="dd_gadm_group_total"> <groupdataconnection datadefinition="dd.globalmap.gadm"> <parameter name="count" label="%globalmap.gadm.number_of" column ="count(name_3)" /> <parameter name="sum_area" label="%globalmap.gadm.area_km2" column ="sum(area_km2)" /> </groupdataconnection> </data:datadefinition> <data:data id="d_gadm_group_country" label="%globalmap.gadm.area_per_country" entity="entity.globalmap.gadm" datadefinition="dd_gadm_group_country" acl="acl.data.globalmap.gadm" /> <data:datadefinition id="dd_gadm_group_country"> <groupdataconnection datadefinition="dd.globalmap.gadm"> <parameter name="name_0" label="%globalmap.gadm.name_0" column ="name_0" /> <parameter name="count" label="%globalmap.gadm.number_of" column ="count(name_3)" /> <parameter name="sum_area" label="%globalmap.gadm.area_km2" column ="sum(area_km2)" /> <group column="name_0"/> </groupdataconnection> </data:datadefinition> <data:data id="d_gadm_group_name_1" label="Area per name_1" entity="entity.globalmap.gadm" datadefinition="dd_gadm_group_name_1" acl="acl.data.globalmap.gadm" /> <data:datadefinition id="dd_gadm_group_name_1"> <groupdataconnection datadefinition="dd.globalmap.gadm"> <parameter name="name_0" label="%globalmap.gadm.name_0" column ="name_0" /> <parameter name="name_1" label="%globalmap.gadm.name_1" column ="name_1" /> <parameter name="count" label="%globalmap.gadm.number_of" column ="count(name_3)" /> <parameter name="sum_area" label="%globalmap.gadm.area_km2" column ="sum(area_km2)" /> <group column="name_1"/> </groupdataconnection> </data:datadefinition> <data:datadefinition id='dd_list.globalmap.gadm'> <datasourcedataconnection table='gadm.gadm' datasource='ds.globalmap' prefix="distinct"> <where clause="name_0 like'${user.customers.globalmap.gadm.name_0}'"/> <where clause="name_1 like'${user.customers.globalmap.gadm.name_1}'" /> <parameter name='name_0' column='name_0'/> <parameter name='name_1' column='name_1'/> <parameter name='name_2' column='name_2'/> <parameter name='name_3' column='name_3'/> </datasourcedataconnection> </data:datadefinition> <search:attribute id="sa.globalmap.gadm"> <acl>acl.data.globalmap.gadm</acl> <entity>entity.globalmap.gadm</entity> <description>%globalmap.gadm.search</description> <displayName>%globalmap.gadm.search</displayName> <dataSource>ds.globalmap</dataSource> <table>gadm.gadm</table> <key>objectid</key> <where clause="name_0 like'${user.customers.globalmap.gadm.name_0}'"/> <where clause="name_1 like'${user.customers.globalmap.gadm.name_1}'" /> <parameter id="Country_subnames" > <dataset>dd_list.globalmap.gadm</dataset> <parameter id ="name_0"> <promptText>%globalmap.gadm.name_0</promptText> <controltype>listbox</controltype> <column>name_0</column> <valuecolumn>name_0</valuecolumn> <labelcolumn>name_0</labelcolumn> <dataType>string</dataType> <allowblank>false</allowblank> </parameter> <parameter id ="name_1"> <promptText>%globalmap.gadm.name_1</promptText> <controltype>listbox</controltype> <column>name_1</column> <valuecolumn>name_1</valuecolumn> <labelcolumn>name_1</labelcolumn> <dataType>string</dataType> <allowblank>true</allowblank> </parameter> <parameter id ="name_2"> <promptText>%globalmap.gadm.name_2</promptText> <controltype>listbox</controltype> <column>name_2</column> <valuecolumn>name_2</valuecolumn> <labelcolumn>name_2</labelcolumn> <dataType>string</dataType> <allowblank>true</allowblank> </parameter> <parameter id ="name_3"> <promptText>%globalmap.gadm.name_3</promptText> <controltype>listbox</controltype> <column>name_3</column> <valuecolumn>name_3</valuecolumn> <labelcolumn>name_3</labelcolumn> <dataType>string</dataType> <allowblank>true</allowblank> </parameter> </parameter> <cache disable="true"/> </search:attribute> <data:datadefinition id='dd.index.globalmap.gadm'> <datasourcedataconnection key='objectid' table='gadm.gadm' datasource='ds.globalmap'> <parameter name='name_0_lower' column='lower(name_0)'/> <parameter name='name_1_lower' column='lower(name_1)'/> <parameter name='name_0' label='%globalmap.gadm.name_0' column='name_0'/> <parameter name='name_1' label='%globalmap.gadm.name_1' column='name_1'/> <parameter name='name_2' label='%globalmap.gadm.name_2' column='name_2'/> <parameter name='name_3' label='%globalmap.gadm.name_3' column='name_3'/> </datasourcedataconnection> </data:datadefinition> <index:entity id="index.globalmap.gadm"> <entity>entity.globalmap.gadm</entity> <fields> <datadefinition>dd.index.globalmap.gadm</datadefinition> <field name="customers.globalmap.gadm.name_0" value="name_0_lower"/> <field name="customers.globalmap.gadm.name_1" value="name_1_lower"/> </fields> <weight>2</weight> <display> <datadefinition>dd.index.globalmap.gadm</datadefinition> <level1><![CDATA[ <div> <img src="custom/resources/icons/world_tool.png" style=" float: left; padding-right:10px; height:16px; margin-left: -5px; padding-bottom: 1px;"></img> <div> <div style="display: inline-block; font-size:14px;font-weight: normal;">${name_3} ${name_2} </div> <div style="display: inline-block; font-size:12px;font-weight: normal;color:gray;"> ${name_1} ${name_0}</div> </div> </div> ]]></level1> </display> <keywords> <datadefinition>dd.index.globalmap.gadm</datadefinition> <level1>${name_2}</level1> <level2>${name_1}</level2> <level3>${name_0}</level3> <level4>${name_3}</level4> </keywords> <!-- <schedule>0 0 06 1</schedule> --> <schedule>0 0 26 3</schedule> </index:entity> </config> |
Desktop client
In the client_desktop.xml under weave.entitySelectorView the line <entity acl="acl.data.globalmap.gadm">entity.globalmap.gadm</entity> is insterted.
iKartan Admin
Contract group is "Open data worldwide"
Product "administrative areas: Quick search" is connected to ACL acl.entity.globalmap.gadm
Product "administrative areas: Analyze" is connected to ACL acl.entity.globalmap.gadm and acl.data.globalmap.gadm
The GADM part of the data definition created for Weave looks like:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<!-- acl.entity.globalmap.gadm -->
<acl:acl id="acl.entity.globalmap.gadm">
<entry type="allow">geoadm_analyze</entry>
<entry type="allow">geoadm_quicksearch</entry>
<entry type="deny">*</entry>
</acl:acl>
<!-- acl.data.globalmap.gadm -->
<acl:acl id="acl.data.globalmap.gadm">
<entry type="allow">geoadm_analyze</entry>
<entry type="deny">*</entry>
</acl:acl> |