Refactor permission (need to re adjust), 2 test not passed(registration, permissions)

This commit is contained in:
Jean-Baptiste Doderlein 2022-08-20 18:10:12 +00:00
parent 838bd2bb23
commit a17e47acb9
17 changed files with 107 additions and 346 deletions

View file

@ -1695,12 +1695,12 @@
"auth",
"user"
],
"query": "{\"memberships__club__name\": \"BDE\", \"memberships__roles__name\": \"Adhérent BDE\", \"memberships__date_start__lte\": [\"today\"], \"memberships__date_end__gte\": [\"today\"]}",
"query": "{\"memberships__club__name\": \"BDE\", \"memberships__roles__name\": \"Adhérent\", \"memberships__date_start__lte\": [\"today\"], \"memberships__date_end__gte\": [\"today\"]}",
"type": "view",
"mask": 2,
"field": "",
"permanent": false,
"description": "Voir n'importe quel utilisateur qui est adhérent BDE"
"description": "Voir n'importe quel utilisateur qui est adhérent"
}
},
{
@ -1931,8 +1931,8 @@
"model": "permission.role",
"pk": 1,
"fields": {
"for_club": 1,
"name": "Adh\u00e9rent BDE",
"for_club": null,
"name": "Adh\u00e9rent",
"permissions": [
1,
2,
@ -1971,61 +1971,9 @@
{
"model": "permission.role",
"pk": 2,
"fields": {
"for_club": 2,
"name": "Adh\u00e9rent Kfet",
"permissions": [
22,
34,
36,
39,
40,
152,
153,
154,
155,
156,
157,
158,
159,
160,
179,
189,
190
]
}
},
{
"model": "permission.role",
"pk": 3,
"fields": {
"for_club": null,
"name": "Membre de club",
"permissions": [
22
]
}
},
{
"model": "permission.role",
"pk": 4,
"fields": {
"for_club": null,
"name": "Bureau de club",
"permissions": [
47,
49,
50,
169
]
}
},
{
"model": "permission.role",
"pk": 5,
"fields": {
"for_club": null,
"name": "Pr\u00e9sident\u00b7e de club",
"name": "Pr\u00e9sident\u00b7e",
"permissions": [
50,
62
@ -2034,10 +1982,10 @@
},
{
"model": "permission.role",
"pk": 6,
"pk": 3,
"fields": {
"for_club": null,
"name": "Tr\u00e9sorier\u00b7\u00e8re de club",
"name": "Tr\u00e9sorier\u00b7\u00e8re",
"permissions": [
59,
19,
@ -2047,7 +1995,6 @@
60,
61,
62,
150,
166,
167,
168,
@ -2059,80 +2006,29 @@
},
{
"model": "permission.role",
"pk": 7,
"pk": 4,
"fields": {
"for_club": 1,
"name": "Pr\u00e9sident\u00b7e BDE",
"for_club": null,
"name": "Secr\u00e9taire",
"permissions": [
24,
25,
26,
27,
30,
33
]
}
},
{
"model": "permission.role",
"pk": 8,
"fields": {
"for_club": 1,
"name": "Tr\u00e9sorier\u00b7\u00e8re BDE",
"permissions": [
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
43,
51,
53,
54,
55,
56,
57,
58,
63,
64,
65,
66,
67,
68,
69,
145,
146,
147,
150,
151,
163,
164,
170,
171,
172,
173,
174,
175,
176,
177,
178,
188,
183,
186,
187
177
]
}
},
{
"model": "permission.role",
"pk": 9,
"pk": 5,
"fields": {
"for_club": 1,
"for_club": null,
"name": "Respo info",
"permissions": [
1,
@ -2256,125 +2152,5 @@
196
]
}
},
{
"model": "permission.role",
"pk": 10,
"fields": {
"for_club": 2,
"name": "GC Kfet",
"permissions": [
32,
56,
58,
55,
57,
52,
23,
24,
25,
26,
27,
28,
29,
30,
31,
166,
167,
168,
170,
171,
176,
177,
178,
179,
180,
181,
182
]
}
},
{
"model": "permission.role",
"pk": 11,
"fields": {
"for_club": 2,
"name": "Res[pot]",
"permissions": [
37,
38,
41,
42,
43,
44,
45,
46,
148,
149,
182
]
}
},
{
"model": "permission.role",
"pk": 17,
"fields": {
"for_club": null,
"name": "1A",
"permissions": []
}
},
{
"model": "permission.role",
"pk": 19,
"fields": {
"for_club": 1,
"name": "Secrétaire BDE",
"permissions": [
54,
55,
56,
57,
58,
145,
146,
147,
150,
176,
177
]
}
},
{
"model": "permission.role",
"pk": 20,
"fields": {
"for_club": 1,
"name": "PC Kfet",
"permissions": [
6,
22,
24,
25,
26,
27,
30,
49,
50,
55,
56,
57,
58,
147,
150,
166,
167,
168,
176,
177,
180,
181
]
}
}
]

View file

@ -36,10 +36,7 @@ class RightsTable(tables.Table):
def render_roles(self, record):
# If the user has the right to manage the roles, display the link to manage them
roles = record.roles.filter((~(Q(name="Adhérent BDE")
| Q(name="Adhérent Kfet")
| Q(name="Membre de club")
| Q(name="Bureau de club"))
roles = record.roles.filter((~(Q(name="Adhérent"))
)).all()
s = ", ".join(str(role) for role in roles)
if PermissionBackend.check_perm(get_current_request(), "member.change_membership_roles", record):

View file

@ -6,39 +6,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
{% load render_table from django_tables2 %}
{% block content %}
{% if user.is_authenticated %}
<div class="card bg-light mb-3">
<h3 class="card-header text-center">
{% trans "Users that have surnormal rights" %}
</h3>
<div class="card-body">
<div class="alert alert-info">
<i class="fa fa-info-circle"></i> {% trans "Superusers have all rights on everything, to manage the website." %}
</div>
<div class="card">
<div class="card-head">
<h4 class="card-header text-center">
<a href="#" data-toggle="collapse" data-target="#card-superusers">{% trans "Superusers" %}</a>
</h4>
</div>
<div class="card-body collapse show" id="card-superusers">
{% render_table superusers %}
</div>
</div>
<hr>
<div class="card">
<div class="card-head">
<h4 class="card-header text-center">
<a href="#" data-toggle="collapse" data-target="#card-clubs">{% trans "Club managers" %}</a>
</h4>
</div>
<div class="card-body collapse show" id="card-clubs">
{% render_table special_memberships_table %}
</div>
</div>
</div>
</div>
{% endif %}
<div class="card bg-light">
<h3 class="card-header text-center">
@ -97,6 +65,25 @@ SPDX-License-Identifier: GPL-3.0-or-later
{% endfor %}
</div>
</div>
{% if user.is_authenticated %}
<div class="card bg-light mb-3">
<h3 class="card-header text-center">
{% trans "Users that have surnormal rights" %}
</h3>
<div class="card-body">
<div class="card">
<div class="card-head">
<h4 class="card-header text-center">
<a href="#" data-toggle="collapse" data-target="#card-clubs">{% trans "Club managers" %}</a>
</h4>
</div>
<div class="card-body collapse show" id="card-clubs">
{% render_table special_memberships_table %}
</div>
</div>
</div>
</div>
{% endif %}
{% endblock %}
{% block extrajavascript %}

View file

@ -58,7 +58,7 @@ class OAuth2TestCase(TestCase):
# Create membership to validate permissions
NoteUser.objects.create(user=self.user)
membership = Membership.objects.create(user=self.user, club_id=bde.pk)
membership.roles.add(Role.objects.get(name="Adhérent BDE"))
membership.roles.add(Role.objects.get(name="Adhérent"))
membership.save()
# User is now a member and can now see its own user detail
@ -85,7 +85,7 @@ class OAuth2TestCase(TestCase):
bde = Club.objects.get(name="BDE")
NoteUser.objects.create(user=self.user)
membership = Membership.objects.create(user=self.user, club_id=bde.pk)
membership.roles.add(Role.objects.get(name="Adhérent BDE"))
membership.roles.add(Role.objects.get(name="Adhérent"))
membership.save()
resp = self.client.get(reverse('permission:scopes'))

View file

@ -40,7 +40,7 @@ class TestPermissionDenied(TestCase):
name="",
description="",
creater=self.user,
activity_type_id=1,
activity_type_id=4,
organizer_id=1,
attendees_club_id=1,
date_start=timezone.now(),
@ -54,7 +54,7 @@ class TestPermissionDenied(TestCase):
name="",
description="",
creater=self.user,
activity_type_id=1,
activity_type_id=4,
organizer_id=1,
attendees_club_id=1,
date_start=timezone.now(),

View file

@ -9,7 +9,7 @@ from django.core.exceptions import FieldError
from django.db.models import F, Q
from django.test import TestCase
from django.utils import timezone
from member.models import Club, Membership
from member.models import Club, Membership, Role
from note.models import NoteUser, Note, NoteClub, NoteSpecial
@ -23,6 +23,12 @@ class PermissionQueryTestCase(TestCase):
def setUpTestData(cls):
user = User.objects.create(username="user")
NoteUser.objects.create(user=user)
membership =Membership.objects.create(
user=user,
club=Club.objects.get(name="BDE")
)
membership.roles.add(Role.objects.get(name="Adhérent"))
membership.save()
def test_permission_queries(self):
"""

View file

@ -131,10 +131,7 @@ class RightsView(TemplateView):
special_memberships = Membership.objects.filter(
date_start__lte=date.today(),
date_end__gte=date.today(),
).filter(roles__in=Role.objects.filter((~(Q(name="Adhérent BDE")
| Q(name="Adhérent Kfet")
| Q(name="Membre de club")
| Q(name="Bureau de club"))
).filter(roles__in=Role.objects.filter((~(Q(name="Adhérent"))
)))\
.order_by("club__name", "user__last_name")\
.distinct().all()