Skip to content

Commit

Permalink
fixup! Refactor deactivate_member views
Browse files Browse the repository at this point in the history
Simplify even further with request.current_organization
  • Loading branch information
francoisfreitag committed Jan 31, 2025
1 parent c16815f commit e2a9d01
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 19 deletions.
12 changes: 8 additions & 4 deletions itou/common_apps/organizations/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,24 @@
from django.shortcuts import get_object_or_404, render


def deactivate_org_member(request, user_id, organization, *, membership_qs, success_url, template_name):
def deactivate_org_member(request, user_id, *, success_url, template_name):
if not request.is_current_organization_admin or request.user.pk == user_id:
raise PermissionDenied
membership = get_object_or_404(membership_qs.select_related("user"), user_id=user_id, is_active=True)
membership = get_object_or_404(
request.current_organization.memberships.select_related("user"),
user_id=user_id,
is_active=True,
)

if request.method == "POST":
organization.deactivate_membership(membership, updated_by=request.user)
request.current_organization.deactivate_membership(membership, updated_by=request.user)
messages.success(
request, f"{membership.user.get_full_name()} a été retiré(e) des membres actifs de cette structure."
)
return HttpResponseRedirect(success_url)

context = {
"structure": organization,
"structure": request.current_organization,
"target_member": membership.user,
}

Expand Down
9 changes: 4 additions & 5 deletions itou/www/companies_views/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from django.core.cache import caches
from django.core.exceptions import PermissionDenied
from django.db.models import Count, Q
from django.http import Http404, HttpResponseRedirect
from django.http import Http404, HttpResponseForbidden, HttpResponseRedirect
from django.shortcuts import get_object_or_404, render
from django.urls import reverse
from django.utils import timezone
Expand All @@ -17,7 +17,7 @@
from itou.cities.models import City
from itou.common_apps.address.departments import department_from_postcode
from itou.common_apps.organizations.views import deactivate_org_member, update_org_admin_role
from itou.companies.models import Company, CompanyMembership, JobDescription, SiaeFinancialAnnex
from itou.companies.models import Company, JobDescription, SiaeFinancialAnnex
from itou.jobs.models import Appellation
from itou.users.models import User
from itou.utils import constants as global_constants
Expand Down Expand Up @@ -636,12 +636,11 @@ def members(request, template_name="companies/members.html"):


def deactivate_member(request, user_id, template_name="companies/deactivate_member.html"):
company = get_current_company_or_404(request)
if not request.user.is_employer or not request.current_organization:
return HttpResponseForbidden()
return deactivate_org_member(
request,
user_id,
company,
membership_qs=CompanyMembership.objects.filter(company=company),
success_url=reverse("companies_views:members"),
template_name=template_name,
)
Expand Down
8 changes: 3 additions & 5 deletions itou/www/institutions_views/views.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
from django.db.models import Count, Q
from django.http import HttpResponseRedirect
from django.http import HttpResponseForbidden, HttpResponseRedirect
from django.shortcuts import render
from django.urls import reverse_lazy

from itou.common_apps.organizations.views import deactivate_org_member, update_org_admin_role
from itou.institutions.models import InstitutionMembership
from itou.users.models import User
from itou.utils.perms.institution import get_current_institution_or_404

Expand Down Expand Up @@ -39,12 +38,11 @@ def member_list(request, template_name="institutions/members.html"):


def deactivate_member(request, user_id, template_name="institutions/deactivate_member.html"):
institution = get_current_institution_or_404(request)
if not request.user.is_labor_inspector or not request.current_organization:
return HttpResponseForbidden()
return deactivate_org_member(
request,
user_id,
institution,
membership_qs=InstitutionMembership.objects.filter(institution=institution),
success_url=reverse_lazy("institutions_views:members"),
template_name=template_name,
)
Expand Down
9 changes: 4 additions & 5 deletions itou/www/prescribers_views/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
from django.contrib.auth.decorators import login_not_required
from django.core.exceptions import PermissionDenied
from django.db.models import Count, Q
from django.http import HttpResponseRedirect
from django.http import HttpResponseForbidden, HttpResponseRedirect
from django.shortcuts import get_object_or_404, render
from django.urls import reverse, reverse_lazy

from itou.common_apps.organizations.views import deactivate_org_member, update_org_admin_role
from itou.prescribers.enums import PrescriberOrganizationKind
from itou.prescribers.models import PrescriberMembership, PrescriberOrganization
from itou.prescribers.models import PrescriberOrganization
from itou.users.models import User
from itou.utils.apis.exceptions import GeocodingDataError
from itou.utils.perms.prescriber import get_current_org_or_404
Expand Down Expand Up @@ -73,12 +73,11 @@ def member_list(request, template_name="prescribers/members.html"):


def deactivate_member(request, user_id, template_name="prescribers/deactivate_member.html"):
organization = get_current_org_or_404(request)
if not request.user.is_prescriber or not request.current_organization:
return HttpResponseForbidden()
return deactivate_org_member(
request,
user_id,
organization,
membership_qs=PrescriberMembership.objects.filter(organization=organization),
success_url=reverse("prescribers_views:members"),
template_name=template_name,
)
Expand Down

0 comments on commit e2a9d01

Please sign in to comment.