Skip to content

Commit

Permalink
[qgisserver] Fix get_area with "ROOT"
Browse files Browse the repository at this point in the history
  • Loading branch information
arnaud-morvan committed Sep 16, 2019
1 parent b36f29e commit f6f4ef7
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
3 changes: 3 additions & 0 deletions docker/qgisserver/geomapfish_qgisserver/accesscontrol.py
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,9 @@ def get_area(self, layer, rw=False):
- Access area as WKT or None
"""
roles = self.get_roles()
if roles == 'ROOT':
return Access.FULL, None

ogc_name = self.ogc_layer_name(layer)
key = (ogc_name, tuple(sorted(role.id for role in roles)), rw)

Expand Down
16 changes: 13 additions & 3 deletions docker/qgisserver/tests/functional/accesscontrol_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,11 @@ def test_data(dbsession):
roles = {role.name: role for role in (role1, role2)}
dbsession.add_all(roles.values())

root = User('root')
root.id = 0
user1 = User('user1', roles=[role1])
user2 = User('user12', roles=[role1, role2])
users = {user.username: user for user in (user1, user2)}
users = {user.username: user for user in (root, user1, user2)}
dbsession.add_all(users.values())


Expand Down Expand Up @@ -348,12 +350,20 @@ def test_get_area(self, server_iface, dbsession, test_data):
dbsession
)

for user_name, layer_name, expected in (
for user_name, layer_name, expected in [
('root', layer_name, (Access.FULL, None))
for layer_name in (
'public_layer',
'private_layer1',
'private_layer2',
'private_layer3',
)
] + [
('user1', 'public_layer', (Access.FULL, None)),
('user1', 'private_layer1', (Access.AREA, area1.wkt)),
('user1', 'private_layer2', (Access.NO, None)),
('user1', 'private_layer3', (Access.AREA, area1.wkt)),
):
]:
user = test_data['users'][user_name]
set_request_parameters(server_iface, {
'USER_ID': str(user.id)
Expand Down

0 comments on commit f6f4ef7

Please sign in to comment.