File tree Expand file tree Collapse file tree 1 file changed +15
-0
lines changed
Expand file tree Collapse file tree 1 file changed +15
-0
lines changed Original file line number Diff line number Diff line change 11import hashlib
2+ import os
23from collections import defaultdict
34from enum import Enum
45from pathlib import Path
910 Qgis ,
1011 QgsCoordinateReferenceSystem ,
1112 QgsCoordinateTransform ,
13+ QgsDataSourceUri ,
1214 QgsFeatureRequest ,
1315 QgsField ,
1416 QgsFieldConstraints ,
4244PROJECT_ENTRY_SCOPE_OFFLINE = "OfflineEditingPlugin"
4345PROJECT_ENTRY_KEY_OFFLINE_DB_PATH = "/OfflineDbPath"
4446
47+ QFC_PG_EFFECTIVE_USER = os .getenv ("QFC_PG_EFFECTIVE_USER" )
48+
4549
4650class OfflinerType (str , Enum ):
4751 QGISCORE = "qgiscore"
@@ -491,6 +495,17 @@ def _get_datasource_mapping(
491495 )
492496 continue
493497
498+ # check if a PostGIS layer's session_role override is requested.
499+ if layer .providerType () == "postgres" and QFC_PG_EFFECTIVE_USER :
500+ logger .info (
501+ f"Adjusting pg layer { layer .name ()} with session_role={ QFC_PG_EFFECTIVE_USER } "
502+ )
503+
504+ uri = QgsDataSourceUri (layer .dataProvider ().dataSourceUri ())
505+ uri .setParam ("session_role" , QFC_PG_EFFECTIVE_USER )
506+ layer .setDataSource (uri .uri (), layer .name (), "postgres" )
507+ layer .reload ()
508+
494509 subset_string = layer .subsetString ()
495510 layer .setSubsetString ("" )
496511
You can’t perform that action at this time.
0 commit comments