示例#1
0
def creation_set(request):
    """Crée un nouveau set """
    # Vérification connexion utilisateur
    auxilliary_user = AuxilliariesUser()
    user = auxilliary_user.get_user(request)
    if user:
        # Utilisateur connecté
        if not user.statut_activation_compte or user.statut_blocage_admin:
            # Le compte n'est pas activé ou a été bloqué
            return AuxilliariesUser().redirect_unactivate_locked_user(
                user, "../../user/home/")
        else:
            # le compte est activé et n'est pas bloqué
            search_form = SearchForm()
            if request.method == "POST":
                # Creation de set
                return AuxilliariesSets().create_set(request, user,
                                                     search_form)
            else:
                # Demande de page de création de set
                return AuxilliariesSets().get_create_set_page(
                    request, search_form, user)
    else:
        # Utilisateur non connecté
        return redirect("../../authentification/connexion/")
示例#2
0
def update_description_set(request):
    """Met à jour la description d'un set"""
    set0_id = AuxilliariesSets().get_int_parameter(request.GET["set_id"])
    user = AuxilliariesUser().get_user(request)
    context = {"user": user}
    if user:  #   Vérification inscription utilisateur
        context["user"] = user
        if (not user.statut_activation_compte or user.statut_blocage_admin
            ):  # Le compte n'est pas activé ou a été bloqué
            return AuxilliariesUser().redirect_unactivate_locked_user(
                user, "../../user/home/")
        else:
            # le compte est activé et n'est pas bloqué
            # -)    Vérification si l'identifiant du set correspond à un set dans l'application
            set0 = AuxilliariesSets().set_in_application(set0_id)
            if set0:
                # Le set existe
                return AuxilliariesSets().update_set("description", set0,
                                                     context, user, set0_id,
                                                     request)
            else:
                # Aucun set avec set id dans l'application
                raise Http404()
    else:
        #      Utilisateur non-inscrit
        return redirect("../../authentification/connexion/")
示例#3
0
def creation_evenement(request, set_id):
    """Crée un nouvel évènement"""
    # Vérification connexion utilisateur
    user = AuxilliariesUser().get_user(request)
    set0_id = AuxilliariesSets().get_int_parameter(set_id)
    context = {"search_form": SearchForm(), "user": user}
    if user:
        # Utilisateur connecté
        context["user"] = user
        if not user.statut_activation_compte or user.statut_blocage_admin:
            # Le compte n'est pas activé ou a été bloqué
            return AuxilliariesUser().redirect_unactivate_locked_user(
                user, "../../../user/home/")
        else:
            # le compte est activé et n'est pas bloqué
            set0 = AuxilliariesSets().set_in_application(set0_id)
            if set0:
                # Le set existe
                return AuxilliariesSets().create_event_if_set_opened(
                    context, request, set0, user, set0_id)
            else:
                # Le set n'existe pas dans l'application
                raise Http404()
    else:
        # Utilisateur non connecté
        return redirect("../../authentification/connexion/")
示例#4
0
def google_connect(request):
    """Connecte un utilisateur à partir de son compte google"""
    # Vérification connexion utilisateur
    user = AuxilliariesUser().get_user(request)
    if user:
        # Utilisateur connecté
        return redirect("../../user/home/")
    else:
        # Utilisateur non connecté
        response_google_user = requests.get(
            "https://oauth2.googleapis.com/tokeninfo?id_token=" +
            request.GET["token"])
        if response_google_user.status_code == 200:
            # Requete vers l'api de google reussie
            google_user = response_google_user.json()
            check_user = Utilisateurs.objects.filter(
                adresse_mail=google_user["email"])
            if len(check_user) == 0:
                # Aucun utilisateur dans l'application avec ce mail
                return HttpResponse(
                    "Aucun utilisateur n'existe avec ce compte google")
            else:
                # Au moins un utilisateur existe dans l'application
                user = check_user[0]
                request.session["user_id"] = user.id
                return HttpResponse("Connexion done")
        else:
            # Echec de la requete vers l'api de google
            raise Http404()
示例#5
0
def envoie_lien_reinitialisation_password(request):
    """Envoie un lien de réinitialisation de mot de passe"""
    user = AuxilliariesUser().get_user(
        request)  # Vérification connexion utilisateur
    if user:  # Utilisateur connecté
        request.session["user_id"]
        return redirect("../../user/home/")
    else:  # Utilisateur non connecté
        if (
                request.method == "POST"
        ):  # Traitement de l'envoie de lien de réinitialisation de mot de passe
            mail = request.POST["email"]
            try:
                user = Utilisateurs.objects.get(adresse_mail=mail)
            except Exception as e:
                user = None
            if user:  # Un utilisateur avec l'email recu existe
                return AuxilliariesAuthentification(
                ).render_reinitialize_password(user, request)
            else:  # Aucun utilisateur avec l'email recu existe
                return AuxilliariesAuthentification(
                ).render_no_user_found_reinitialize_password(mail, request)
        else:  # Demande de la page d'envoie de lien de réinitialisation de mot de passe
            link_reset_form = LinkResetPasswordForm()
            search_form = SearchForm()
            context = {
                "link_reset_form": link_reset_form,
                "search_form": search_form
            }
            return render(request,
                          "envoie_lien_reinitialisation_mot_de_passe.html",
                          context)
示例#6
0
def reinitialisation_mot_de_passe(request):
    """Réinitialise un mot de passe"""
    user = AuxilliariesUser().get_user(
        request)  # Vérification connexion utilisateur
    if user:  # Utilisateur connecté
        return redirect("../../user/home/")
    else:  # Utilisateur non conecté
        if request.method == "POST":  # Exécution de la réinitialisation de mot de passe
            return AuxilliariesAuthentification(
            ).check_valid_form_reinitialize_password(request)
        else:  # Demande de la page de réinitialisation de mot de passe
            mail = request.GET["mail"]
            user = get_object_or_404(Utilisateurs, adresse_mail=mail)
            if (user.cle_de_reinitialisation_de_mot_de_passe ==
                    request.GET["key_reinitialisation_password"]):
                reset_form = ResetPasswordForm()
                search_form = SearchForm()
                context = {
                    "reset_form": reset_form,
                    "search_form": search_form,
                    "user": user,
                    "mail": mail,
                }
                return render(request, "reinitialisation_mot_de_passe.html",
                              context)
            else:  # La clé de réinitialisation recue ne correspond pas à celle qui est stockée
                raise Http404()
示例#7
0
def exit_set(request, set_id):
    """Sort un utilisateur d'un set"""
    set0_id = AuxilliariesSets().get_int_parameter(set_id)
    user = AuxilliariesUser().get_user(request)
    if user:  #   Vérification inscription utilisateur
        if (not user.statut_activation_compte or user.statut_blocage_admin
            ):  # Le compte n'est pas activé ou a été bloqué
            return AuxilliariesUser().httpresponse_unactivate_locked_user(user)
        else:  # le compte est activé et n'est pas bloqué
            set0 = AuxilliariesSets().set_in_application(
                set0_id
            )  #    Vérification si l'identifiant du set correspond à un set dans l'application
            if set0:  # Le set existe
                return AuxilliariesSets().make_exit_set(set0, user, set0_id)
            else:  # Aucun set avec cet id dans l'application ou aucun utilisateur dans l'application avec l'id recu
                raise Http404()
    else:  #      Utilisateur non-inscrit
        raise Http404()
示例#8
0
def envoie_activation_compte(request):
    """Envoie un lien d'activation de compte"""
    # Vérification connexion utilisateur
    user = AuxilliariesUser().get_user(request)
    if user:
        # Utilisateur connecté
        activation_key = "".join([
            random.choice(
                "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
            ) for _ in range(24)
        ])
        user.cle_dactivation_de_compte = activation_key
        user.save()
        sent_mail_statut = AuxilliariesAuthentification().send_mail(
            "activation_account", user)
        return redirect("../../user/home/")
    else:
        # Utilisateur non connecté
        raise Http404()
示例#9
0
def delete_set(request, set_id):
    """Supprime un set"""
    user = AuxilliariesUser().get_user(request)
    search_form = SearchForm()
    context = {"search_form": search_form, "user": user}
    if user:  # l'utilisateur est connecté
        if (not user.statut_activation_compte or user.statut_blocage_admin
            ):  # Le compte n'est pas activé ou a été bloqué
            return AuxilliariesUser().redirect_unactivate_locked_user(
                user, "../../../user/home/")
        else:  # le compte est activé et n'est pas bloqué
            context["user"] = user
            set0 = AuxilliariesSets().set_in_application(set_id)
            if set0:  # Le set existe
                return AuxilliariesSets().make_delete_set(set0, context, user)
            else:  # L'évènement n'existe pas dans l'application
                raise Http404()
    else:  # L'utilisateur n'est pas connecté
        raise Http404()
示例#10
0
def evenements(request, event_id):
    """Gère l'affichage d'un évènement"""
    event_id = AuxilliariesSets().get_int_parameter(event_id)
    user = AuxilliariesUser().get_user(request)
    context = {"search_form": SearchForm(), "user": user}
    #   Vérification inscription utilisateur
    if user:  #       Utilisateur connecté
        return AuxilliariesSets().render_event("connected_user", context, user,
                                               event_id, request)
    else:  #      Utilisateur non-inscrit
        return AuxilliariesSets().render_event_activate_unlocked_unconnected(
            "unconnected_user", event_id, context, request, user)
示例#11
0
def make_post_set(request, set_id):
    """Crée une publication dans un set"""
    set0_id = AuxilliariesSets().get_int_parameter(set_id)
    section_set = AuxilliariesSets().get_section_set(request)
    user = AuxilliariesUser().get_user(request)
    if user:  #   Utilisateur connecté
        if (not user.statut_activation_compte or user.statut_blocage_admin
            ):  # Le compte n'est pas activé ou a été bloqué
            return AuxilliariesUser().redirect_unactivate_locked_user(
                user, "../../../user/home/")
        else:  # le compte est activé et n'est pas bloqué
            set0 = AuxilliariesSets().set_in_application(
                set0_id
            )  #    Vérification si l'identifiant du set correspond à un set dans l'application
            if set0:  # Le set existe
                return AuxilliariesSets().make_post_set(
                    set0, user, set0_id, request, set_id)
            else:  # Aucun set avec cet id dans l'application
                raise Http404()
    else:  # Utilisateur non-inscrit
        raise Http404()
示例#12
0
def manage_like_post_set(request, post_id):
    """Ajout et supprime un like d'une publication d'un set"""
    post0_id = AuxilliariesSets().get_int_parameter(post_id)
    user = AuxilliariesUser().get_user(request)
    if user:  #   Vérification inscription utilisateur
        if (not user.statut_activation_compte or user.statut_blocage_admin
            ):  # Le compte n'est pas activé ou a été bloqué
            return AuxilliariesUser().httpresponse_unactivate_locked_user(user)
        else:  # le compte est activé et n'est pas bloqué
            post0 = AuxilliariesSets().post_set_in_application(post0_id)
            if post0:
                set0 = post0.set0
                if set0:  # Le set existe
                    return AuxilliariesSets().http_like_post_set(
                        set0, user, post_id, post0, request)
                else:  # Aucun set avec cet id dans l'application
                    raise Http404()
            else:  # Aucune publication avec cet id
                raise Http404()
    else:  #      Utilisateur non-inscrit
        raise Http404()
示例#13
0
def search(request):
    """Gère les recherches"""
    user = AuxilliariesUser().get_user(request)
    context = {
        "recherche": request.GET["search_input"],
        "search_form": SearchForm()
    }
    section = AuxilliariesUser().get_sections_pages(
        request, "recherche")  # section de la recherche
    context["section"] = section
    context["user"] = user
    if user:
        # utilisateur connecté
        if not user.statut_activation_compte or user.statut_blocage_admin:
            # Le compte n'est pas activé ou a été bloqué
            return AuxilliariesUser().redirect_unactivate_locked_user(
                user, "../../../user/home/")
        else:
            # le compte est activé et n'est pas bloqué
            return AuxilliariesSets().render_search(section, request, context)
    else:
        # Utilisateur non connecté
        return AuxilliariesSets().render_search(section, request, context)
示例#14
0
def make_post_event(request, event_id):
    """Crée une publication dans un évènement"""
    event_id = AuxilliariesSets().get_int_parameter(event_id)
    user = AuxilliariesUser().get_user(request)
    context = {"search_form": SearchForm(), "user": user}
    if user:  #   Vérification inscription utilisateur
        context["user"] = user
        if (not user.statut_activation_compte or user.statut_blocage_admin
            ):  # Le compte n'est pas activé ou a été bloqué
            return AuxilliariesUser().redirect_unactivate_locked_user(
                user, "../../../user/home/")
        else:  # le compte est activé et n'est pas bloqué
            event0 = AuxilliariesSets().event_in_application(
                event_id
            )  #   Vérification si l'identifiant de l'évènement correspond à un évènement dans l'application
            context["event"] = event0
            if event0:  # L'évènement existe dans l'application
                return AuxilliariesSets().make_post_event(
                    event0, context, user, event_id, request)
            else:  # Aucun Evènement avec cet id dans l'application
                raise Http404()
    else:  #      Utilisateur non-inscrit
        raise Http404()
示例#15
0
def delete_add_user_set(request, set_id, user_delete_add_id):
    """Ajoute et supprime un utilisateur d'un set"""
    set0_id = AuxilliariesSets().get_int_parameter(set_id)
    user_to_delete_add_id = AuxilliariesSets().get_int_parameter(
        user_delete_add_id)
    user = AuxilliariesUser().get_user(request)
    if user:  # l'utilisateur existe
        if (not user.statut_activation_compte or user.statut_blocage_admin
            ):  # Le compte n'est pas activé ou a été bloqué
            return AuxilliariesUser().httpresponse_unactivate_locked_user(user)
        else:  # le compte est activé et n'est pas bloqué
            set0 = AuxilliariesSets().set_in_application(
                set0_id
            )  #    Vérification si l'identifiant du set correspond à un set dans l'application
            user_to_delete_add = AuxilliariesUser().user_in_application(
                user_to_delete_add_id)
            if (set0 and user_to_delete_add
                ):  # Le set et l'utilisateur à ajouter/supprimer existent
                return AuxilliariesSets().make_delete_add_user_set(
                    set0, user, set0_id, user_to_delete_add)
            else:  # Aucun set avec cet id dans l'application ou aucun utilisateur dans l'application avec l'id recu
                raise Http404()
    else:  #      Utilisateur non-inscrit
        raise Http404()
示例#16
0
def sets(request, set_id):
    """Gère l'affichage d'un set"""
    set0_id = AuxilliariesSets().get_int_parameter(set_id)
    section_set = AuxilliariesSets().get_section_set(request)
    user = AuxilliariesUser().get_user(request)
    context = {
        "search_form": SearchForm(),
        "section_set": section_set,
        "user": user
    }
    #   Vérification inscription utilisateur
    if user:
        # Utilisateur connecté
        return AuxilliariesSets().render_set_connected_user(
            context, user, request, section_set, set0_id)
    else:
        #      Utilisateur non-inscrit
        return AuxilliariesSets().render_set_unconnected_user(
            set0_id, context, request, user, section_set)
示例#17
0
def initialisation_mot_de_passe(request):
    """Crée un nouveau compte à partir du compte google de l'utilisateur"""
    user = AuxilliariesUser().get_user(
        request)  # Vérification connexion utilisateur
    if user:  # Utilisateur connecté
        return redirect("../../user/home/")
    else:  # Utilisateur non conecté
        if request.method == "POST":  # Traitement de la soummission du mot de passe
            return AuxilliariesAuthentification(
            ).check_valid_form_initialize_password(request)
        else:  # Demande du formulaire de l'initialisation du mot de passe
            initialize_form = InitializePasswordForm()
            search_form = SearchForm()
            context = {
                "initialize_form": initialize_form,
                "search_form": search_form,
                "mail": request.GET["mail"],
                "name": request.GET["name"],
            }
            return render(request, "initialisation_mot_de_passe.html", context)
示例#18
0
def activation_compte(request):
    """Active un compte"""
    # Vérification connexion utilisateur
    user = AuxilliariesUser().get_user(request)
    if user:
        # Utilisateur connecté
        mail = request.GET["mail"]
        if user.adresse_mail == mail:
            # Le mail de l'utilisateur correspond au mail du compte recu
            if user.cle_dactivation_de_compte == request.GET["key_activation"]:
                user.statut_activation_compte = True
                user.cle_dactivation_de_compte = None
                user.save()
                return redirect("../../user/home/")
            else:
                # La clé d'activation recu ne correspond pas à celle qui est stockée
                raise Http404()
        else:
            # Le mail de l'utilisateur ne correspond pas au mail du compte recu
            raise Http404()
    else:
        # Utilisateur non connecté
        return redirect("../../authentification/connexion/")