Skip to content

Commit

Permalink
Update viewable_groups for guest admins
Browse files Browse the repository at this point in the history
They could view the right attendees, but not the right groups, whoops.
  • Loading branch information
kitsuta committed Jan 15, 2025
1 parent 8671c78 commit 83329ca
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 11 deletions.
15 changes: 9 additions & 6 deletions uber/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -853,12 +853,15 @@ def viewable_groups(self):
if group_id:
subqueries.append(self.query(Group).filter(Group.id == group_id))

for key, val in c.GROUP_TYPE_OPTS:
if val.lower() + '_admin' in admin.read_or_write_access_set:
subqueries.append(
self.query(Group).join(
GuestGroup, Group.id == GuestGroup.group_id).filter(
GuestGroup.group_type == key))
if 'guest_admin' in admin.read_or_write_access_set:
subqueries.append(self.query(Group).join(
GuestGroup, Group.id == GuestGroup.group_id).filter(
~GuestGroup.group_type.in_([c.BAND, c.MIVS])))

if 'band_admin' in admin.read_or_write_access_set:
subqueries.append(self.query(Group).join(
GuestGroup, Group.id == GuestGroup.group_id).filter(
GuestGroup.group_type == c.BAND))

if 'dealer_admin' in admin.read_or_write_access_set:
subqueries.append(self.query(Group).filter(Group.is_dealer))
Expand Down
9 changes: 5 additions & 4 deletions uber/site_sections/group_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def _required_message(self, params, fields):
return ''

def index(self, session, message='', show_all=None):
groups = session.viewable_groups()
groups = session.viewable_groups().options(joinedload(Group.attendees))
dealer_counts = defaultdict(int)

if not show_all:
Expand All @@ -51,13 +51,14 @@ def index(self, session, message='', show_all=None):
case c.SHARED:
dealer_counts['approved'] += group.tables

guest_groups = groups.join(Group.guest)
guest_groups = groups.filter(Group.guest != None)

return {
'message': message,
'show_all': show_all,
'all_groups': groups.options(joinedload(Group.attendees), joinedload(Group.active_receipt)).all(),
'guest_groups': guest_groups.options(joinedload(Group.attendees)),
'all_groups': groups,
'guest_groups': guest_groups,
'dealer_groups': dealer_groups.options(joinedload(Group.active_receipt)),
'guest_checklist_items': GuestGroup(group_type=c.GUEST).sorted_checklist_items,
'band_checklist_items': GuestGroup(group_type=c.BAND).sorted_checklist_items,
'num_dealer_groups': dealer_counts['total'],
Expand Down
2 changes: 1 addition & 1 deletion uber/templates/group_admin/dealers.html
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
</tr>
</thead>
<tbody>
{% for group in all_groups|selectattr("is_dealer") %}
{% for group in dealer_groups %}
<tr{% if c.SIGNNOW_DEALER_TEMPLATE_ID and not group.signnow_document_signed or group.status in [c.DECLINED, c.CANCELLED] %} class="danger"{% endif %}>
<td style="text-align:left" data-order="{{ group.name }}" data-search="{{ group.name }}">
<a href="form?id={{ group.id }}">{{ group.name|default('?????', boolean=True) }}</a></td>
Expand Down

0 comments on commit 83329ca

Please sign in to comment.