Skip to content

Commit 2c76991

Browse files
committed
Removed an marshable import from the persistence layer
1 parent c1fc3a2 commit 2c76991

File tree

3 files changed

+24
-27
lines changed

3 files changed

+24
-27
lines changed

pyproject.toml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,21 +49,21 @@ allow_indirect_imports = true
4949
[[tool.importlinter.contracts]]
5050
name = "Do not import marshables from the persistence layer"
5151
type = "forbidden"
52-
source_modules = "app.datamgmt.manage.manage_case_state_db"
52+
source_modules = ["app.datamgmt.manage.manage_case_state_db", "app.datamgmt.manage.manage_groups_db"]
5353
forbidden_modules = "app.schema.marshables"
5454
allow_indirect_imports = true
5555

5656
[[tool.importlinter.contracts]]
57-
name = "Do not import the engine from the persistence layer"
57+
name = "Do not import marshmallow from the persistence layer"
5858
type = "forbidden"
59-
source_modules = "app.datamgmt.case"
60-
forbidden_modules = "app.iris_engine"
59+
source_modules = "app.datamgmt.client"
60+
forbidden_modules = "marshmallow"
6161
allow_indirect_imports = true
6262

6363
[[tool.importlinter.contracts]]
64-
name = "Do not import marshmallow from the persistence layer"
64+
name = "Do not import the engine from the persistence layer"
6565
type = "forbidden"
66-
source_modules = "app.datamgmt.client"
67-
forbidden_modules = "marshmallow"
66+
source_modules = "app.datamgmt.case"
67+
forbidden_modules = "app.iris_engine"
6868
allow_indirect_imports = true
6969

source/app/blueprints/rest/manage/manage_groups.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,18 @@
2626
from app import app
2727
from app.blueprints.iris_user import iris_current_user
2828
from app.datamgmt.manage.manage_groups_db import add_all_cases_access_to_group
29+
from app.datamgmt.manage.manage_groups_db import get_groups_list
30+
from app.datamgmt.manage.manage_groups_db import get_users_by_group_identifiers
2931
from app.datamgmt.manage.manage_groups_db import add_case_access_to_group
3032
from app.datamgmt.manage.manage_groups_db import delete_group
3133
from app.datamgmt.manage.manage_groups_db import get_group
3234
from app.datamgmt.manage.manage_groups_db import get_group_details
3335
from app.datamgmt.manage.manage_groups_db import get_group_with_members
34-
from app.datamgmt.manage.manage_groups_db import get_groups_list_hr_perms
3536
from app.datamgmt.manage.manage_groups_db import remove_cases_access_from_group
3637
from app.datamgmt.manage.manage_groups_db import remove_user_from_group
3738
from app.datamgmt.manage.manage_groups_db import update_group_members
3839
from app.datamgmt.manage.manage_users_db import get_user
39-
from app.iris_engine.access_control.utils import ac_ldp_group_removal
40+
from app.iris_engine.access_control.utils import ac_ldp_group_removal, ac_permission_to_list
4041
from app.iris_engine.access_control.utils import ac_ldp_group_update
4142
from app.iris_engine.access_control.utils import ac_recompute_effective_ac_from_users_list
4243
from app.models.authorization import Permissions, ac_flag_match_mask
@@ -59,7 +60,12 @@
5960
@manage_groups_rest_blueprint.route('/manage/groups/list', methods=['GET'])
6061
@ac_api_requires(Permissions.server_administrator)
6162
def manage_groups_index():
62-
groups = get_groups_list_hr_perms()
63+
groups = get_groups_list()
64+
groups = AuthorizationGroupSchema().dump(groups, many=True)
65+
group_to_users = get_users_by_group_identifiers()
66+
for group in groups:
67+
group['group_permissions_list'] = ac_permission_to_list(group['group_permissions'])
68+
group['group_members'] = group_to_users.get(group['group_id'], [])
6369

6470
return response_success('', data=groups)
6571

source/app/datamgmt/manage/manage_groups_db.py

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@
2525
from app.iris_engine.access_control.utils import ac_auto_update_user_effective_access
2626
from app.iris_engine.access_control.utils import ac_permission_to_list
2727
from app.models.cases import Cases
28-
from app.models.authorization import Group, ac_access_level_mask_from_val_list
28+
from app.models.authorization import Group
29+
from app.models.authorization import ac_access_level_mask_from_val_list
2930
from app.models.authorization import GroupCaseAccess
3031
from app.models.authorization import User
3132
from app.models.authorization import UserGroup
32-
from app.schema.marshables import AuthorizationGroupSchema
3333

3434

3535
def create_group(group: Group):
@@ -47,38 +47,29 @@ def update_group():
4747
db.session.commit()
4848

4949

50-
def get_groups_list_hr_perms():
51-
groups = get_groups_list()
52-
50+
def get_users_by_group_identifiers():
5351
get_membership_list = UserGroup.query.with_entities(
5452
UserGroup.group_id,
5553
User.user,
5654
User.id,
5755
User.name
5856
).join(UserGroup.user).all()
5957

60-
membership_list = {}
58+
result = {}
6159
for member in get_membership_list:
62-
if member.group_id not in membership_list:
63-
membership_list[member.group_id] = [{
60+
if member.group_id not in result:
61+
result[member.group_id] = [{
6462
'user': member.user,
6563
'name': member.name,
6664
'id': member.id
6765
}]
6866
else:
69-
membership_list[member.group_id].append({
67+
result[member.group_id].append({
7068
'user': member.user,
7169
'name': member.name,
7270
'id': member.id
7371
})
74-
75-
groups = AuthorizationGroupSchema().dump(groups, many=True)
76-
for group in groups:
77-
perms = ac_permission_to_list(group['group_permissions'])
78-
group['group_permissions_list'] = perms
79-
group['group_members'] = membership_list.get(group['group_id'], [])
80-
81-
return groups
72+
return result
8273

8374

8475
def get_group(group_id):

0 commit comments

Comments
 (0)