Skip to content

Commit a07e2cf

Browse files
committed
Merged [7151] from rcross@amsl.com:
Ticket ietf-tools#1248: catch DoesNotExist errors with user.get_profile() when user does not have a corresponding Person record. - Legacy-Id: 7178 Note: SVN reference [7151] has been migrated to Git commit d119b33
2 parents 5dd0aa0 + d119b33 commit a07e2cf

3 files changed

Lines changed: 16 additions & 12 deletions

File tree

ietf/secr/proceedings/views.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -481,12 +481,6 @@ def main(request):
481481
* meetings, interim_meetings, today
482482
483483
'''
484-
# getting numerous errors when people try to access using the wrong account
485-
try:
486-
person = request.user.person
487-
except Person.DoesNotExist:
488-
return HttpResponseForbidden('ACCESS DENIED: user=%s' % request.META['REMOTE_USER'])
489-
490484
if has_role(request.user,'Secretariat'):
491485
meetings = Meeting.objects.filter(type='ietf').order_by('-number')
492486
else:
@@ -660,7 +654,11 @@ def select(request, meeting_num):
660654

661655
meeting = get_object_or_404(Meeting, number=meeting_num)
662656
user = request.user
663-
person = user.person
657+
try:
658+
person = user.person
659+
except ObjectDoesNotExist:
660+
messages.warning(request, 'The account %s is not associated with any groups. If you have multiple Datatracker accounts you may try another or report a problem to ietf-action@ietf.org' % request.user)
661+
return HttpResponseRedirect(reverse('proceedings'))
664662
groups_session, groups_no_session = groups_by_session(user, meeting)
665663
proceedings_url = get_proceedings_url(meeting)
666664

ietf/secr/sreq/views.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,10 @@ def main(request):
441441
meeting = get_meeting()
442442
scheduled_groups,unscheduled_groups = groups_by_session(request.user, meeting)
443443

444+
# warn if there are no associated groups
445+
if not scheduled_groups and not unscheduled_groups:
446+
messages.warning(request, 'The account %s is not associated with any groups. If you have multiple Datatracker accounts you may try another or report a problem to ietf-action@ietf.org' % request.user)
447+
444448
# load form select with unscheduled groups
445449
choices = zip([ g.pk for g in unscheduled_groups ],
446450
[ str(g) for g in unscheduled_groups ])

ietf/secr/utils/group.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from django.conf import settings
2+
from django.core.exceptions import ObjectDoesNotExist
23
from ietf.group.models import Group
34
from ietf.meeting.models import Session
45

@@ -44,13 +45,14 @@ def get_my_groups(user,conclude=False):
4445
if conclude:
4546
states.extend(['conclude','bof-conc'])
4647
all_groups = Group.objects.filter(type__in=('wg','rg','ag','team'),state__in=states).order_by('acronym')
47-
if user == None:
48+
49+
if user == None or has_role(user,'Secretariat'):
4850
return all_groups
49-
else:
51+
52+
try:
5053
person = user.person
51-
52-
if has_role(user,'Secretariat'):
53-
return all_groups
54+
except ObjectDoesNotExist:
55+
return list()
5456

5557
for group in all_groups:
5658
if group.role_set.filter(person=person,name__in=('chair','secr')):

0 commit comments

Comments
 (0)