Projet

Général

Profil

0002-journal-define-profile-type-management-events-60082.patch

Paul Marillonnet, 07 février 2022 17:34

Télécharger (5,86 ko)

Voir les différences:

Subject: [PATCH 2/3] journal: define profile type management events (#60082)

 src/authentic2/journal_event_types.py | 51 +++++++++++++++++++++++
 tests/test_manager_journal.py         | 58 +++++++++++++++++++++++++--
 2 files changed, 106 insertions(+), 3 deletions(-)
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
-