def member_subscribe_process(request, profile, organisation, mail=True): action = AccountActions.objects.create(action='confirm_rattachement', organisation=organisation, profile=profile) if mail: url = request.build_absolute_uri( reverse('idgo_admin:confirm_rattachement', kwargs={'key': action.key})) send_membership_confirmation_mail(profile.user, organisation, url) return action
def confirmation_mail(request, key): action = get_object_or_404(AccountActions, key=UUID(key), action='confirm_mail') if action.closed: message = 'Vous avez déjà validé votre adresse e-mail.' return render(request, 'idgo_admin/message.html', {'message': message}, status=200) user = action.profile.user profile = action.profile organisation = profile.organisation CkanHandler.activate_user(user.username) user.is_active = True action.profile.is_active = True user.save() action.profile.save() if organisation: # Demande de création d'une nouvelle organisation if not organisation.is_active: new_organisation_action = get_object_or_404( AccountActions, action='confirm_new_organisation', organisation=organisation, profile=profile, closed=None) url = request.build_absolute_uri( reverse('idgo_admin:confirm_new_orga', kwargs={'key': new_organisation_action.key})) send_organisation_creation_confirmation_mail( user, organisation, url) # Demande de rattachement (Profile-Organisation) rattachement_action = get_object_or_404(AccountActions, action='confirm_rattachement', organisation=organisation, profile=profile, closed=None) url = request.build_absolute_uri( reverse('idgo_admin:confirm_rattachement', kwargs={'key': rattachement_action.key})) send_membership_confirmation_mail(user, organisation, url) # Demande de rôle de référent en attente de validation try: LiaisonsReferents.objects.get(organisation=organisation, profile=profile, validated_on=None) except Exception: pass else: referent_action = get_object_or_404(AccountActions, action='confirm_referent', organisation=organisation, profile=profile, closed=None) url = request.build_absolute_uri( reverse('idgo_admin:confirm_referent', kwargs={'key': referent_action.key})) send_referent_confirmation_mail(user, organisation, url) # Demande de rôle de contributeur en attente de validation try: LiaisonsContributeurs.objects.get(profile=profile, organisation=organisation, validated_on=None) except Exception: pass else: contribution_action = get_object_or_404( AccountActions, action='confirm_contribution', organisation=organisation, profile=profile, closed=None) url = request.build_absolute_uri( reverse('idgo_admin:confirm_contribution', kwargs={'key': contribution_action.key})) send_contributor_confirmation_mail(user, organisation, url) send_successful_account_creation_mail(user) action.closed = timezone.now() action.save() message = ("Merci d'avoir confirmé votre adresse e-mail. " 'Toute demande de rattachement, contribution, ' 'ou rôle de référent technique pour une organisation, ' "ne sera effective qu'après validation " 'par un administrateur.') context = { 'message': message, 'button': { 'href': reverse('server_cas:signIn'), 'label': 'Se connecter' } } return render(request, 'idgo_admin/message.html', context, status=200)