Skip to content

Commit 2d1c5d2

Browse files
committed
Join proposal on staff perm checks
1 parent 5a216b6 commit 2d1c5d2

File tree

3 files changed

+9
-5
lines changed

3 files changed

+9
-5
lines changed

src/pato/crud/groups.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def get_collection_group(group_id: int):
4141
.filter(DataCollectionGroup.dataCollectionGroupId == group_id)
4242
).one()
4343

44-
44+
# TODO: make session and proposal required
4545
def get_collection_groups(
4646
limit: int,
4747
page: int,
@@ -96,9 +96,9 @@ def get_collection_groups(
9696
db.session.execute(session_id_query).all()
9797
)
9898
)
99-
return db.paginate(check_session(query, user), limit, page, slow_count=True)
100-
99+
return db.paginate(check_session(query, user, join_proposal=(not proposal)), limit, page, slow_count=True)
101100

101+
# TODO: make group ID required
102102
def get_collections(
103103
limit: int,
104104
page: int,
@@ -132,6 +132,7 @@ def get_collections(
132132
sub_with_row = check_session(
133133
base_sub_query,
134134
user,
135+
join_proposal=True
135136
)
136137

137138
if groupId is not None:

src/pato/crud/sessions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def get_sessions(
128128
)
129129
)
130130

131-
query = check_session(query, user)
131+
query = check_session(query, user, join_proposal=(proposal is None))
132132

133133
if countCollections:
134134
query = query.join(

src/pato/utils/auth.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,14 @@ def _get_staff_perms(user: GenericUser):
3939

4040
return BLSession.beamLineName.in_(allowed_beamlines)
4141

42-
def check_session(query: Select, user: GenericUser):
42+
def check_session(query: Select, user: GenericUser, join_proposal: bool = False):
4343
"""Include filters in provided query to ensure that only sessions the user has permission to view
4444
are returned.
4545
4646
Args:
4747
query: Original query
4848
user: User to check against
49+
join_proposal: Join proposal when building query
4950
5051
Returns
5152
Modified query"""
@@ -56,6 +57,8 @@ def check_session(query: Select, user: GenericUser):
5657

5758
staff_perms = _get_staff_perms(user)
5859
if staff_perms is not None:
60+
if Config.facility.users_only_on_industrial and join_proposal:
61+
query = query.join(Proposal, BLSession.proposalId == Proposal.proposalId)
5962
or_expressions.append(staff_perms)
6063

6164
return (

0 commit comments

Comments
 (0)