MCPcopy
hub / github.com/prowler-cloud/prowler / accept

Method accept

api/src/backend/api/v1/views.py:4365–4396  ·  view source on GitHub ↗
(self, request)

Source from the content-addressed store, hash-verified

4363 )
4364 @action(detail=False, methods=["post"], url_name="accept")
4365 def accept(self, request):
4366 serializer = self.get_serializer(
4367 data=request.data,
4368 context=self.get_serializer_context(),
4369 )
4370 serializer.is_valid(raise_exception=True)
4371 invitation_token = serializer.validated_data["invitation_token"]
4372 user_email = request.user.email
4373
4374 invitation = validate_invitation(
4375 invitation_token, user_email, raise_not_found=True
4376 )
4377
4378 # Proceed with accepting the invitation
4379 user = User.objects.using(MainRouter.admin_db).get(email=user_email)
4380 membership = Membership.objects.using(MainRouter.admin_db).create(
4381 user=user,
4382 tenant=invitation.tenant,
4383 )
4384 user_role = []
4385 for role in invitation.roles.all():
4386 user_role.append(
4387 UserRoleRelationship.objects.using(MainRouter.admin_db).create(
4388 user=user, role=role, tenant=invitation.tenant
4389 )
4390 )
4391 invitation.state = Invitation.State.ACCEPTED
4392 invitation.save(using=MainRouter.admin_db)
4393
4394 self.response_serializer_class = MembershipSerializer
4395 membership_serializer = self.get_serializer(membership)
4396 return Response(data=membership_serializer.data, status=status.HTTP_201_CREATED)
4397
4398
4399@extend_schema(tags=["Role"])

Callers

nothing calls this directly

Calls 7

validate_invitationFunction · 0.90
get_serializerMethod · 0.80
allMethod · 0.80
getMethod · 0.65
createMethod · 0.45
saveMethod · 0.45

Tested by

no test coverage detected