0001-manager-search-journal-by-uuid-of-deleted-accounts-6.patch
src/authentic2/manager/journal_views.py | ||
---|---|---|
47 | 47 |
user_uuid = uuid.UUID(lexem) |
48 | 48 |
except ValueError: |
49 | 49 |
yield self.q_false |
50 |
else: |
|
50 |
return |
|
51 |
# check if uuid exists to go on the fast path |
|
52 |
# searching in DeletedUser is expensive |
|
53 |
if User.objects.filter(user__uuid=user_uuid.hex).exists(): |
|
51 | 54 |
yield Q(user__uuid=user_uuid.hex) |
55 |
else: |
|
56 |
deleted_user_qs = DeletedUser.objects.filter(old_uuid=user_uuid.hex) |
|
57 |
yield from self._search_by_deleted_user(deleted_user_qs) |
|
52 | 58 | |
53 | 59 |
@classmethod |
54 | 60 |
def search_by_uuid_documentation(cls): |
... | ... | |
78 | 84 |
users = User.objects.find_duplicates(fullname=fullname, threshold=app_settings.A2_FTS_THRESHOLD) |
79 | 85 |
return self.query_for_users(users) |
80 | 86 | |
81 |
def search_by_email(self, email): |
|
82 |
yield from super().search_by_email(email) |
|
83 |
pks = list(DeletedUser.objects.filter(old_email=email).values_list('old_user_id', flat=True)) |
|
87 |
def _search_by_deleted_user(self, deleted_user_qs): |
|
88 |
pks = list(qs.values_list('old_user_id', flat=True)) |
|
84 | 89 |
if pks: |
85 | 90 |
yield Q(user_id__in=pks) |
86 | 91 |
user_ct = ContentType.objects.get_for_model(User) |
87 | 92 |
yield Q(reference_ids__contains=[n_2_pairing(user_ct.id, pk) for pk in pks]) |
88 | 93 | |
94 |
def search_by_email(self, email): |
|
95 |
yield from super().search_by_email(email) |
|
96 |
deleted_user_qs = DeletedUser.objects.filter(old_email=email) |
|
97 |
yield from self._search_by_deleted_user(deleted_user_qs) |
|
98 | ||
89 | 99 |
@classmethod |
90 | 100 |
def search_by_event_documentation(cls): |
91 | 101 |
return '%s %s' % ( |
92 |
- |