예제 #1
0
파일: views.py 프로젝트: JPupsik/HealthCare
    def post(self, request):
        form = RegisterForm(request.POST)
        if form.is_valid():
            user = form.save()
            return redirect(reverse('login'))

        return render(request, 'sign-up.html', {'form': form})
예제 #2
0
def register(request):
    if request.method == "POST":  # S'il s'agit d'une requête POST
        print("IS POST REQUEST")
        form = RegisterForm(request.POST)  # On récupère les données

        if form.is_valid():  # On vérifie que les données envoyées sont valides

            new_user = User.objects.create_user(
                form.cleaned_data["email"], form.cleaned_data["email"], form.cleaned_data["password"]
            )
            new_user.first_name = form.cleaned_data["first_name"]
            new_user.last_name = form.cleaned_data["last_name"]
            new_user.save()

            new_profil = Profil()
            new_profil.user = new_user
            new_profil.save()

            envoi = True

            return HttpResponseRedirect("/accounts/login/")
        else:
            error = True
            error_message = "Invalid informations"

    else:  # Si ce n'est pas du POST, c'est probablement une requête GET
        form = RegisterForm()  # Nous créons un formulaire vide

    return render(request, "authentication/register.html", locals())
예제 #3
0
 def post(self, request):
     form = RegisterForm(request.POST)
     if form.is_valid():
         user = User.objects.create_user(**form.cleaned_data)
         user.save()
         return redirect('login')
     return render(request, self.template_name, context={'form': form})
예제 #4
0
def register(request):
    data = request.POST.copy()
    register_form = RegisterForm()
    if request.POST:
        register_form = RegisterForm(data)
        if register_form.is_valid():
            User.objects.create_user(data['username'], data['password'], data['email'])
            user = auth.authenticate(username=data['username'], password=data['password'])
            auth.login(request, user)
            return redirect(reverse('home'))
    
    objcontext = {'register_form': register_form, 'login_form': LoginForm()}
    return render(request, 'authentication/register.html', objcontext)
예제 #5
0
    def test_form_valid_data(self):
        form = RegisterForm(
            data={
                'email': "*****@*****.**",
                'first_name': "Test",
                'last_name': "Test",
                'phone_number': 12345678,
                'password': "******"
            })

        self.assertTrue(form.is_valid())
        self.assertEqual(len(form.errors), 0)


# python manage.py test authentication
예제 #6
0
def login_register_page(request):
    # This view checks whether the user is authenticated. If not it shows the login page.
    if request.user.is_authenticated:
        return redirect(settings.LOGIN_REDIRECT_URL)
    else:
        context = {'login_form': LoginForm(), 'register_form': RegisterForm()}
        return render(request, "registration/login_register.html", context)
예제 #7
0
    def post(self, request):
        """регистрация пользователя"""
        postdata = request.POST.copy()
        email = postdata.get('email', None)
        password = postdata.get('password', None)
        username = postdata.get('username', None)

        form = RegisterForm(request.POST)
        profile_form = StudentProfileForm(request.POST)
        if form.is_valid() and profile_form.is_valid():
            user = Account.objects.create_user(email, password=password, username=username)
            user = populateAccountData(request, user, is_teacher=False)
            login(request, user)
            profile_form.save(user)
            return HttpResponseRedirect('/')

        return render_to_response(self.template_name, locals(), context_instance=RequestContext(request))
예제 #8
0
def registerView(request, template_name="authentication/register.html"):
    if request.user.is_authenticated():
        return HttpResponseRedirect('/')

    if request.method == 'POST':
        form = RegisterForm(request.POST)
        if form.is_valid():
            email = request.POST['email']
            password = request.POST['password']
            username = email.split("@")[0]
            print "..... username: %s" % username
            new_user = User.objects.create_user(email=email,
                                                password=password,
                                                username=username)
            new_user.backend = 'django.contrib.auth.backends.ModelBackend'
            login(request, new_user)
    return HttpResponseRedirect('/')
예제 #9
0
파일: views.py 프로젝트: tomaslu/map_editor
 def post(self, request, *args, **kwargs):
     data = RequestUtils.get_parameters(request)
     
     form = RegisterForm(data)
     if form.is_valid():
         user = User.objects.create_user(
                                          form.cleaned_data['username'], 
                                          form.cleaned_data['email'], 
                                          form.cleaned_data['password'],
                                          )
         if form.cleaned_data['first_name']:
             user.first_name = form.cleaned_data['first_name']
         if form.cleaned_data['last_name']:
             user.last_name = form.cleaned_data['last_name']
         user.save()
         return HttpResponse('user is created')
     else:
         return HttpResponseBadRequest(str(form.errors))
예제 #10
0
 def get(self, request: HttpRequest):
     return render(
         request,
         "authentication/register.html",
         {
             "form": RegisterForm(),
             "next": request.GET.get("next", "")
         },
     )
예제 #11
0
def my_profile(request):
    try:
        user = Profile.objects.get(pk=request.user.pk)
    except Profile.DoesNotExist:
        return redirect('login')
    form = RegisterForm(instance=user)
    my_books = Book.objects.filter(
        seller=Profile.objects.get(pk=request.user.pk))
    context = {
        'user': user,
        'form': form,
        'my_books': my_books
    }

    if request.method == 'GET':
        if not request.user.is_authenticated:
            return redirect('login')
        else:
            return render(request, 'profilepage/profilepage.html', context)

    else:
        form = RegisterForm(request.POST, instance=user)
        komite = form['komite'].value()
        allergies = form['allergies'].value()
        graduation_year = form['graduation_year'].value()
        print('Komite:', komite)
        if allergies:
            user.allergies = allergies
        if komite:
            user.komite = Komite.objects.get(pk=komite)
        else:
            user.komite = None
        if graduation_year:
            user.graduation_year = graduation_year
        user.save()
        if request.POST.get('new-password'):
            password = request.POST['new-password']
            user.set_password(password)
            user.save()
            login(request, authenticate(
                request, email=user.email, password=user.password))

        context['form'] = RegisterForm(instance=user)
        return render(request, 'profilepage/profilepage.html', context)
예제 #12
0
def register(request):
    if request.method == 'POST':
        form = RegisterForm(request.POST)

        if form.is_valid():
            data = form.cleaned_data
            user = TwitterUser.objects.create_user(
                username=data['username'],
                password=data['password1']
            )
            login(request, user)
            return HttpResponseRedirect(reverse('homepage'))

    else:
        form = RegisterForm()

    return render(request, 'generic_form.html', {
        'form': form
    })
예제 #13
0
def register_view(request):
    if request.user.is_authenticated:
        return redirect('mainapp:home')
    form = RegisterForm()
    if request.method == 'POST':
        form = RegisterForm(request.POST)
        if form.is_valid():
            form.save()
            messages.success(request,"Account succefully created!!")
            return redirect('mainapp:home')
    return render(request,'authentication/auth_register.html',{"form":form})
예제 #14
0
def register():
    """Register a new user."""
    form = RegisterForm()

    if form.validate_on_submit():
        user = User()
        form.populate_obj(user)
        db_session.add(user)

        if session.get("rooms") is not None:
            for room in Room.query.filter(Room.id.in_(session["rooms"])).all():
                room.participants.append(user)

        for answer in Answer.query.filter(
                Answer.anonymous_id == session["id"]).all():
            answer.anonymous_id = None
            answer.user = user

        try:
            db_session.commit()
        except IntegrityError as e:
            origin = str(e.orig).lower()
            if "unique" in origin:
                # this is very likely a unique constraint fail
                field = origin.split(":")[-1].split(".")[-1]
                return jsonify({field: [unique_constraint_failed]}), 400
            elif "duplicate" in origin:
                field = origin.split("key")[-1].split('"')[0].strip().strip(
                    "'")
                return jsonify({field: [unique_constraint_failed]}), 400
            else:
                raise

        login_user(user)

        return jsonify({}), 201

    return jsonify(form.errors), 400
예제 #15
0
    def post(self, request: HttpRequest):
        def _render_template(form, next_url):
            return render(
                request,
                "authentication/register.html",
                {
                    "form": form,
                    "next": next_url
                },
            )

        next_url = request.POST.get("next", "")
        form = RegisterForm(request.POST)

        if not form.is_valid():
            return _render_template(form, next_url)

        try:
            user = form.save()
            assert user is not None
        # If any unique field's value wasn't unique
        except AssertionError:
            form.add_error("", "ثبت کاربر با مشکل مواجه شد")
            return _render_template(form, next_url)

        # Send confirmation uel
        confirm_manager = EmailConfirmationManager(user)

        uid_base64 = confirm_manager.get_uid_base64()
        token = confirm_manager.get_token()

        confirm_url = request.build_absolute_uri(
            resolve_url(
                "authentication:confirm_email",
                uid_base64=uid_base64,
                token=token,
            ))

        send_email_result = confirm_manager.send_mail(
            "mails/email_confirmation.html",
            confirm_url,
            settings.DEFAULT_FROM_EMAIL,
        )

        messages.success(request, "ثبت نام با موفقیت انجام شد")
        if send_email_result:
            messages.success(
                request, "ارسال ایمیل تایید حساب کاربری با موفقیت انجام شد")
        else:
            messages.error(request,
                           "ارسال ایمیل تایید حساب کاربری موفقیت آمیز نبود")

        # Redirect to login page
        login_url = reverse("authentication:login") + "?next=" + next_url
        return redirect(login_url)
예제 #16
0
def login_view(request):
    # This view handles the login of the user and checks if the user really exists in the database.
    if request.user.is_authenticated:
        return redirect(settings.LOGIN_REDIRECT_URL)

    error = False
    # We use the context because we have several forms in the same page.
    context = {
        'login_form': LoginForm(request.POST),
        'register_form': RegisterForm()
    }

    # if the method is POST.
    if request.method == "POST":
        form = LoginForm(request.POST)
        if form.is_valid():
            # We get the cleaned data.
            username = form.cleaned_data["username"]
            password = form.cleaned_data["password"]
            user = authenticate(username=username, password=password)
            #             data is correct.
            if user:
                # If the user really exists, we login
                login(request, user)
                context['error_login'] = error
                return redirect(settings.LOGIN_REDIRECT_URL)
            else:
                # An error will be shown.
                error = True
                context['error_login'] = error
        else:
            context['error_message'] = form._errors["password_reg"]

    else:
        form = LoginForm()

    # context['user_is_authenticated'] = request.user.is_authenticated()
    return render(request, 'registration/login_register.html', context)
예제 #17
0
파일: views.py 프로젝트: JPupsik/HealthCare
 def get(self, request):
     return render(request, 'sign-up.html', {'form': RegisterForm()})
예제 #18
0
def profile_view(request):

    # Sletter ugyldige kontraktforespørsler
    invalid_requests = Contract.objects.filter(
        Q(start_date__lt=datetime.datetime.today().strftime('%Y-%m-%d'))
        & (Q(pending=True) | Q(owner_approved=False))).delete()

    if request.user.is_authenticated:
        my_rented_apartments = Apartment.objects.filter(
            Q(contracts__tenant__email__iexact=request.user.email)
            | Q(contracts__tenants__contains=request.user.email)).distinct()

        has_rented_apartments = my_rented_apartments.count() > 0
        owns_apartments = Apartment.objects.filter(
            owner=request.user).count() > 0

        context = {
            'form':
            RegisterForm(),
            'my_apartments':
            Apartment.objects.filter(owner=request.user),
            'my_rented_apartments':
            my_rented_apartments,
            'has_rented_apartments':
            has_rented_apartments,
            'owns_apartments':
            owns_apartments,
            'owner_of':
            Apartment.objects.filter(
                Q(original_owner__iexact=request.user.email))
        }

    if request.method == 'GET':
        if not request.user.is_authenticated:
            messages.warning(request, "Du må logge inn først")
            return redirect('landing-page')
        else:
            return render(request, 'profile_page/profile-page.html', context)

    else:  # POST
        contract_id = request.POST.get("contract_id")

        if "first_name" in request.POST:
            user = Profile.objects.get(pk=request.user.pk)
            form = RegisterForm(request.POST, instance=user)
            user.first_name = form['first_name'].data
            user.last_name = form['last_name'].data
            user.phone_number = int(form['phone_number'].data)
            try:
                image = request.FILES.get("image")
                if image is not None:
                    user.profile_picture = image
                user.save()
                messages.success(request, 'Brukerinformasjon lagret!')
            except:
                messages.error(request, 'Noe gikk galt, prøv igjen')
                return redirect('profile')

            return HttpResponseRedirect('/profile')

        elif contract_id is not None:
            contract = Contract.objects.get(pk=contract_id)
            apartment_id = Apartment.objects.get(contracts__pk=contract_id).pk

            # Brukeren er utleier og trykte på godkjenn fremleie
            if "accept_owner" in request.POST:
                # Godkjenner kontrakten
                contract.owner_approved = True
                contract.save()

            # Brukeren er fremleier og trykte på godkjenn
            elif "accept" in request.POST:
                # Godkjenner kontrakten
                contract.pending = False
                start_date_accepted = contract.start_date
                end_date_accepted = contract.end_date
                contract.save()

                Contract.objects.filter(apartment=apartment_id).exclude(
                    Q(pk=contract_id)).filter(
                        Q(pending=True)
                        & (Q(start_date__lte=start_date_accepted)
                           & Q(end_date__gte=start_date_accepted))
                        | (Q(start_date__lte=end_date_accepted)
                           & Q(end_date__gte=end_date_accepted))
                        | (Q(start_date__gt=start_date_accepted)
                           & Q(end_date__lt=end_date_accepted))).delete()

            # Brukeren trykte på avslå
            elif "decline" in request.POST:
                contract.delete()

        # Viser profilsiden dersom brukeren fremdeles er logget inn
        if request.user.is_authenticated:
            return render(request, 'profile_page/profile-page.html', context)
        else:
            messages.warning(request, "Du må logge inn først")
            return redirect('landing-page')
예제 #19
0
파일: views.py 프로젝트: Agnar22/PU
def landing_page(request):
    create_review_models()
    form = RegisterForm()

    distinct_cities = Apartment.objects.values('city').distinct().count()
    distinct_apartments = Apartment.objects.all().count()

    if request.method == 'GET':
        context = {
            'form': form,
            'distinct_cities': distinct_cities,
            'distinct_apartments': distinct_apartments
        }
        return render(request, 'landingpage/landing-page.html', context)

    else:  # POST
        if request.POST.get("first_name"):  # Register
            print("Registrering")
            form = RegisterForm(request.POST, request.FILES or None)
            if form.is_valid():
                user = form.save(commit=False)

                # Cleaned (normalized) data
                email = form.cleaned_data['email'].lower()
                password = form.cleaned_data['password']
                user.set_password(password)
                try:
                    image = request.FILES.get("image")
                    if image is not None:
                        user.profile_picture = image
                    user.save()
                except:
                    messages.error(request, 'Noe gikk galt, prøv igjen')
                    return redirect('/')

                # Returns User objects if credentials are correct
                user = authenticate(email=email, password=password)

                if user is not None:
                    if user.is_active:
                        login(request, user)  # User is logged in
                        messages.success(request,
                                         'Du er nå registrert og logget inn!')
                        return redirect('/')
            else:
                messages.warning(request, form.errors)
            return render(
                request, 'landingpage/landing-page.html', {
                    'form': form,
                    'distinct_cities': distinct_cities,
                    'distinct_apartments': distinct_apartments
                })
        else:
            email = request.POST.get("email").lower()
            password = request.POST.get("password")
            user = authenticate(request, email=email, password=password)
            if user is not None:
                login(request, user)
                messages.success(request, 'Du er nå logget inn!')
                return redirect('landing-page')
            else:
                messages.error(request,
                               'Fant dessverre ikke brukeren, prøv på nytt')
                return redirect('landing-page')
예제 #20
0
 def get(self, request):
     form = RegisterForm()
     return render(request, self.template_name, context={'form': form})
예제 #21
0
 def test_form_no_data(self):
     form = RegisterForm(data={})
     self.assertFalse(form.is_valid())
     self.assertEqual(len(form.errors), 5)
예제 #22
0
def register_view(request):
    # This view registers new users.
    if request.user.is_authenticated:
        return redirect(settings.LOGIN_REDIRECT_URL)

    error_register = False
    # We use the context because we have two forms in the same page.
    context = {
        'login_form': LoginForm(),
        'register_form': RegisterForm(request.POST),
        'error_register': error_register
    }

    if request.method == "POST":
        form = RegisterForm(request.POST)
        if form.is_valid():
            # Getting the form data.
            first_name_reg = form.cleaned_data["first_name_reg"]
            last_name_reg = form.cleaned_data["last_name_reg"]
            username_reg = form.cleaned_data["username_reg"]
            email_reg = form.cleaned_data["email_reg"]
            password_reg = form.cleaned_data["password_reg"]
            account_type = form.cleaned_data["account_type"]

            # Checking if the user already exits.
            user = authenticate(username=username_reg, password=password_reg)
            if user:
                error_register = True
                context['error_register'] = error_register
                context['error_message'] = '* Username already exists.'
            else:
                # Creating the new user.
                new_user = User.objects.create_user(username_reg, email_reg,
                                                    password_reg)
                new_user.first_name = first_name_reg
                new_user.last_name = last_name_reg
                new_user.save()

                # Every user has a profile. We create a profile and save it.
                new_profile = Profile.objects.create(user=new_user)
                new_profile.profile_type = account_type
                new_profile.save()
                # Authenticating the user.
                user = authenticate(username=username_reg,
                                    password=password_reg)
                # data is correct (It should be correct in this case).
                if user:
                    login(request, user)
                    return redirect(settings.LOGIN_REDIRECT_URL)
                else:
                    error_register = True
                    context['error_register'] = error_register
        else:
            error_register = True
            context['error_register'] = error_register
            try:
                context['error_message'] = form._errors["password_reg"]
            except KeyError:
                try:
                    context['error_message'] = form._errors["email_reg"]
                except KeyError:
                    context['error_message'] = form._errors["username_reg"]

    else:
        form = RegisterForm()
        error_register = True
        context['error_register'] = error_register

    return render(request, 'registration/login_register.html', context)
def register_form(context, request):
    form = RegisterForm()
    return {
        'form': form,
        'request': request,
    }