0002-journal-define-profile-type-management-events-60082.patch
src/authentic2/journal_event_types.py | ||
---|---|---|
435 | 435 |
profile_type = event.get_data('profile_type') |
436 | 436 |
object_user = event.get_data('object_user') |
437 | 437 |
return _(f'profile of type "{profile_type}" deleted for user "{object_user}"') |
438 | ||
439 | ||
440 |
class ProfileTypeAdd(EventTypeDefinition): |
|
441 |
name = 'user.profile_type.add' |
|
442 |
label = 'user profile type creation' |
|
443 | ||
444 |
@classmethod |
|
445 |
def record(cls, user, profile_type, api=False): |
|
446 |
data = { |
|
447 |
'profile_type': profile_type.name or profile_type.slug, |
|
448 |
} |
|
449 |
return super().record(user=user, data=data, api=api) |
|
450 | ||
451 |
@classmethod |
|
452 |
def get_message(cls, event, context): |
|
453 |
profile_type = event.get_data('profile_type') |
|
454 |
return _('creation of profile type {0}').format(profile_type) |
|
455 | ||
456 | ||
457 |
class ProfileTypeUpdate(EventTypeDefinition): |
|
458 |
name = 'user.profile_type.update' |
|
459 |
label = 'user profile type update' |
|
460 | ||
461 |
@classmethod |
|
462 |
def record(cls, user, profile_type, api=False): |
|
463 |
data = { |
|
464 |
'profile_type': profile_type.name or profile_type.slug, |
|
465 |
} |
|
466 |
return super().record(user=user, data=data, api=api) |
|
467 | ||
468 |
@classmethod |
|
469 |
def get_message(cls, event, context): |
|
470 |
profile_type = event.get_data('profile_type') |
|
471 |
return _('update of profile type {0}').format(profile_type) |
|
472 | ||
473 | ||
474 |
class ProfileTypeDeletion(EventTypeDefinition): |
|
475 |
name = 'user.profile_type.delete' |
|
476 |
label = 'user profile type deletion' |
|
477 | ||
478 |
@classmethod |
|
479 |
def record(cls, user, profile_type, api=False): |
|
480 |
data = { |
|
481 |
'profile_type': profile_type.name or profile_type.slug, |
|
482 |
} |
|
483 |
return super().record(user=user, data=data, api=api) |
|
484 | ||
485 |
@classmethod |
|
486 |
def get_message(cls, event, context): |
|
487 |
profile_type = event.get_data('profile_type') |
|
488 |
return _('deletion of profile type {0}').format(profile_type) |
tests/test_manager_journal.py | ||
---|---|---|
290 | 290 |
object_user=user, |
291 | 291 |
) |
292 | 292 | |
293 |
make( |
|
294 |
'user.profile_type.add', |
|
295 |
user=user, |
|
296 |
profile_type=profile_type, |
|
297 |
) |
|
298 |
make( |
|
299 |
'user.profile_type.update', |
|
300 |
user=user, |
|
301 |
profile_type=profile_type, |
|
302 |
) |
|
303 |
make( |
|
304 |
'user.profile_type.delete', |
|
305 |
user=user, |
|
306 |
profile_type=profile_type, |
|
307 |
) |
|
308 | ||
293 | 309 |
# verify we created at least one event for each type |
294 | 310 |
assert set(Event.objects.values_list("type__name", flat=True)) == set(_registry) |
295 | 311 | |
... | ... | |
636 | 652 |
'user': 'agent', |
637 | 653 |
'message': 'profile of type "One Type" deleted for user "Johnny doe"', |
638 | 654 |
}, |
655 |
{ |
|
656 |
'timestamp': 'Jan. 3, 2020, 1 a.m.', |
|
657 |
'type': 'user.profile_type.add', |
|
658 |
'user': 'Johnny doe', |
|
659 |
'message': 'creation of profile type One Type', |
|
660 |
}, |
|
661 |
{ |
|
662 |
'timestamp': 'Jan. 3, 2020, 2 a.m.', |
|
663 |
'type': 'user.profile_type.update', |
|
664 |
'user': 'Johnny doe', |
|
665 |
'message': 'update of profile type One Type', |
|
666 |
}, |
|
667 |
{ |
|
668 |
'timestamp': 'Jan. 3, 2020, 3 a.m.', |
|
669 |
'type': 'user.profile_type.delete', |
|
670 |
'user': 'Johnny doe', |
|
671 |
'message': 'deletion of profile type One Type', |
|
672 |
}, |
|
639 | 673 |
] |
640 | 674 | |
641 | 675 |
agent_page = response.click('agent', index=1) |
... | ... | |
856 | 890 |
'type': 'user.service.sso.denial', |
857 | 891 |
'user': 'Johnny doe', |
858 | 892 |
}, |
893 |
{ |
|
894 |
'timestamp': 'Jan. 3, 2020, 1 a.m.', |
|
895 |
'type': 'user.profile_type.add', |
|
896 |
'user': 'Johnny doe', |
|
897 |
'message': 'creation of profile type One Type', |
|
898 |
}, |
|
899 |
{ |
|
900 |
'timestamp': 'Jan. 3, 2020, 2 a.m.', |
|
901 |
'type': 'user.profile_type.update', |
|
902 |
'user': 'Johnny doe', |
|
903 |
'message': 'update of profile type One Type', |
|
904 |
}, |
|
905 |
{ |
|
906 |
'timestamp': 'Jan. 3, 2020, 3 a.m.', |
|
907 |
'type': 'user.profile_type.delete', |
|
908 |
'user': 'Johnny doe', |
|
909 |
'message': 'deletion of profile type One Type', |
|
910 |
}, |
|
859 | 911 |
] |
860 | 912 | |
861 | 913 | |
... | ... | |
1135 | 1187 | |
1136 | 1188 |
table_content = [text_content(p) for p in response.pyquery('tbody td.journal-list--message-column')] |
1137 | 1189 |
assert table_content == [ |
1190 |
'deletion of profile type One Type', |
|
1191 |
'update of profile type One Type', |
|
1192 |
'creation of profile type One Type', |
|
1138 | 1193 |
'profile of type "One Type" deleted for user "Johnny doe"', |
1139 | 1194 |
'profile of type "One Type" updated for user "Johnny doe"', |
1140 | 1195 |
'profile of type "One Type" created for user "Johnny doe"', |
... | ... | |
1153 | 1208 |
'edit of user "Johnny doe" (first name)', |
1154 | 1209 |
'password reset', |
1155 | 1210 |
'password reset failure with email "USER@example.com"', |
1156 |
'password reset request with email "user@example.com"', |
|
1157 |
'user deletion', |
|
1158 |
'profile edit (first name)', |
|
1159 | 1211 |
] |
1160 | 1212 | |
1161 | 1213 |
response.form['event_type'].select(text='Role management') |
1162 |
- |