Projet

Général

Profil

0001-manager-redirect-users-to-their-detail-page-if-they-.patch

Benjamin Dauvergne, 25 février 2022 11:25

Télécharger (2,07 ko)

Voir les différences:

Subject: [PATCH] manager: redirect users to their detail page if they can view
 it (#34829)

 src/authentic2/manager/user_views.py |  2 +-
 tests/test_user_manager.py           | 25 +++++++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)
src/authentic2/manager/user_views.py
899 899

  
900 900

  
901 901
def me(request):
902
    if request.user.has_perm('custom_user.change_user', request.user):
902
    if request.user.has_perm('custom_user.view_user', request.user):
903 903
        return redirect(request, 'a2-manager-user-detail', kwargs={'pk': request.user.pk})
904 904
    else:
905 905
        return redirect(request, 'account_management')
tests/test_user_manager.py
1276 1276
        .count()
1277 1277
        == 1
1278 1278
    )
1279

  
1280

  
1281
def test_me_redirect(app, simple_user):
1282
    from django.contrib.contenttypes.models import ContentType
1283

  
1284
    from authentic2.a2_rbac.models import Permission, Role
1285
    from django_rbac.models import VIEW_OP
1286
    from django_rbac.utils import get_operation
1287

  
1288
    login(app, simple_user)
1289

  
1290
    response = app.get('/manage/me/')
1291
    assert response.location == '/accounts/'
1292

  
1293
    role = Role.objects.create()
1294
    view_user_perm = Permission.objects.create(
1295
        operation=get_operation(VIEW_OP),
1296
        target_ct=ContentType.objects.get_for_model(simple_user),
1297
        target_id=simple_user.pk,
1298
    )
1299
    role.permissions.add(view_user_perm)
1300
    role.members.add(simple_user)
1301

  
1302
    response = app.get('/manage/me/')
1303
    assert response.location == f'/manage/users/{simple_user.pk}/'
1279
-