Esempio n. 1
0
def user_login(request):
    user = request.user
    if user.is_authenticated and user.is_adminkvm:
        return HttpResponseRedirect('/home')
    elif user.is_authenticated and user.is_adminkvm == False:
        return HttpResponseRedirect('/client')
    else:
        if request.method == 'POST':
            # post form để User yêu cầu reset mật khẩu, gửi link về mail
            if 'uemail' in request.POST:
                form = UserResetForm(request.POST)
                if form.is_valid():
                    to_email = form.cleaned_data['uemail']
                    current_site = get_current_site(request)
                    user = get_user_email(to_email)
                    mail_subject = 'Reset password your account.'
                    message = render_to_string(
                        'kvmvdi/resetpwd.html', {
                            'user':
                            user,
                            'domain':
                            current_site.domain,
                            'uid':
                            urlsafe_base64_encode(force_bytes(
                                user.id)).decode(),
                            'token':
                            account_activation_token.make_token(user),
                        })
                    email = EmailMessage(mail_subject, message, to=[to_email])
                    thread = EmailThread(email)
                    thread.start()
                    return render(
                        request, 'kvmvdi/login.html',
                        {'mess': 'Please check email to reset your password!'})
                else:
                    error = ''
                    for field in form:
                        error += field.errors
                    return render(request, 'kvmvdi/login.html',
                                  {'error': error})
            elif 'agentname' and 'agentpass' in request.POST:
                username = request.POST['agentname']
                password = request.POST['agentpass']
                user = authenticate(username=username, password=password)
                if user:
                    if user.is_active and user.is_adminkvm:
                        login(request, user)
                        return HttpResponseRedirect('/home')
                    elif user.is_active and user.is_adminkvm == False:
                        login(request, user)
                        if user.token_id is None or user.check_expired(
                        ) == False:
                            user.token_expired = timezone.datetime.now(
                            ) + timezone.timedelta(hours=1)
                            user.token_id = getToken(
                                ip=OPS_IP,
                                username=user.username,
                                password=user.username,
                                project_name=user.username,
                                user_domain_id='default',
                                project_domain_id='default')
                            user.save()
                        return HttpResponseRedirect('/client')
                    else:
                        return render(request, 'kvmvdi/login.html',
                                      {'error': 'Your account is blocked!'})
                else:
                    return render(request, 'kvmvdi/login.html',
                                  {'error': 'Invalid username or password '})
            elif 'firstname' and 'email' and 'password2' in request.POST:
                user_form = UserForm(request.POST)
                if user_form.is_valid():
                    user = user_form.save()
                    connect = keystone(ip=OPS_IP,
                                       username=OPS_ADMIN,
                                       password=OPS_PASSWORD,
                                       project_name=OPS_PROJECT,
                                       user_domain_id='default',
                                       project_domain_id='default')
                    connect.create_project(name=user.username,
                                           domain='default')
                    check = False
                    while check == False:
                        if connect.find_project(user.username):
                            connect.create_user(name=user.username,
                                                domain='default',
                                                project=user.username,
                                                password=user.username,
                                                email=request.POST['email'])
                            check = True
                    check1 = False
                    while check1 == False:
                        if connect.find_user(user.username):
                            check1 = True
                    connect.add_user_to_project(user=user.username,
                                                project=user.username)
                    return redirect('/')
                else:
                    error = ''
                    for field in user_form:
                        error += field.errors
                    return render(request, 'kvmvdi/login.html',
                                  {'error': error})
        return render(request, 'kvmvdi/login.html')
Esempio n. 2
0
def user_login(request):
    if request.user.is_anonymous:
        if request.method == 'POST':
            # Reset mật khẩu
            if 'uemail' in request.POST:
                form = UserResetForm(request.POST)
                if form.is_valid():
                    to_email = form.cleaned_data['uemail']
                    current_site = get_current_site(request)
                    user = get_user_email(to_email)
                    mail_subject = 'Reset password'
                    message = render_to_string('client/reset-password.html', {
                        'user': user,
                        'domain': current_site.domain,
                        'uid': urlsafe_base64_encode(force_bytes(user.id)).decode(),
                        'token': account_activation_token.make_token(user)
                    })
                    # gửi mail sử dụng celery
                    send_email.delay(mail_subject, message, to_email)
                    return render(request, 'client/signup.html', {'mess': 'Please check email to reset your password !'})
                else: 
                    error = ''
                    for field in form:
                        error += field.errors
                    return render(request, 'client/signup.html', {'messdk': error})
            # đăng nhập
            elif 'agentname' and 'agentpass' in request.POST:
                username = request.POST['agentname']
                password = request.POST['agentpass']
                user = authenticate(username=username, password=password)
                if user is not None:
                    if user.is_active:
                        login(request, user)
                        if user.is_adminkvm:
                            return redirect('superadmin:home')
                        else:
                            return redirect('client:home')
                    else: 
                        # return render(request, 'client/signup.html', {'messdk': 'Tài khoản của bạn chưa được kích hoạt'})
                        return render(request, 'client/signup.html', {'messdk': 'Your account is inactive!'})
                else:
                    # return render(request, 'client/signup.html', {'messdk': 'Tên đăng nhập hoặc mật khẩu không chính xác'})
                    return render(request, 'client/signup.html', {'messdk': 'Username or password is invalid!'})
            # Đăng ký
            elif 'email' and 'password2' in request.POST:
                user_form = UserForm(request.POST)
                if user_form.is_valid():
                    current_site = get_current_site(request)
                    user = user_form.save()

                    mail_subject = 'Active account OpenID'
                    message = render_to_string('client/active_acc.html', {
                        'user': user,
                        'domain': current_site.domain,
                        'uid': urlsafe_base64_encode(force_bytes(user.id)).decode(),
                        'token': account_activation_token.make_token(user)
                    })
                    # print(account_activation_token.make_token(user))
                    send_email.delay(mail_subject, message, user.email)
                    return render(request, 'client/signup.html', {'mess': 'Please check email to active your account'})
                else:
                    error = ''
                    for field in user_form:
                        error += field.errors
                    return render(request, 'client/signup.html', {'mess': error})

    else:
        return redirect('client:home')
    return render(request, 'client/signup.html')
Esempio n. 3
0
def user_login(request):
    user = request.user
    if user.is_authenticated:
        return HttpResponseRedirect('/home')
    else:
        if request.method == 'POST':
            # post form để User yêu cầu reset mật khẩu, gửi link về mail
            if 'uemail' in request.POST:
                form = UserResetForm(request.POST)
                if form.is_valid():
                    to_email = form.cleaned_data['uemail']
                    current_site = get_current_site(request)
                    user = get_user_email(to_email)
                    mail_subject = 'Reset password your account.'
                    message = render_to_string(
                        'kvmvdi/resetpwd.html', {
                            'user':
                            user,
                            'domain':
                            current_site.domain,
                            'uid':
                            urlsafe_base64_encode(force_bytes(
                                user.id)).decode(),
                            'token':
                            account_activation_token.make_token(user),
                        })
                    email = EmailMessage(mail_subject, message, to=[to_email])
                    thread = EmailThread(email)
                    thread.start()
                    return render(
                        request, 'kvmvdi/login.html',
                        {'mess': 'Please check email to reset your password!'})
                else:
                    error = ''
                    for field in form:
                        error += field.errors
                    return render(request, 'kvmvdi/login.html',
                                  {'error': error})
            elif 'agentname' and 'agentpass' in request.POST:
                username = request.POST['agentname']
                password = request.POST['agentpass']
                user = authenticate(username=username, password=password)
                if user:
                    if user.is_active and user.is_adminkvm:
                        login(request, user)
                        return HttpResponseRedirect('/home')
                    else:
                        return render(request, 'kvmvdi/login.html',
                                      {'error': 'Your account is blocked!'})
                else:
                    return render(request, 'kvmvdi/login.html',
                                  {'error': 'Invalid username or password '})
            elif 'firstname' and 'email' and 'password2' in request.POST:
                user_form = UserForm(request.POST)
                if user_form.is_valid():
                    user = user_form.save()
                    return redirect('/')
                else:
                    print(user_form.errors)
                    error = ''
                    for field in user_form:
                        error += field.errors
                    return render(request, 'kvmvdi/login.html',
                                  {'error': error})
        return render(request, 'kvmvdi/login.html')
Esempio n. 4
0
def user_login(request):
    user = request.user
    if request.method == 'POST':
        if 'uemail' in request.POST:
            form = UserResetForm(request.POST)
            if form.is_valid():
                to_email = form.cleaned_data['uemail']
                current_site = get_current_site(request)
                user = get_user_email(to_email)
                mail_subject = 'Làm mới mật khẩu'
                message = render_to_string(
                    'client/reset-password.html', {
                        'user': user,
                        'domain': current_site.domain,
                        'uid': urlsafe_base64_encode(force_bytes(
                            user.id)).decode(),
                        'token': account_activation_token.make_token(user)
                    })
                email = EmailMessage(mail_subject, message, to=[to_email])
                thread = EmailThread(email)
                thread.start()
                return render(request, 'client/signup.html',
                              {'mess': 'Kiểm tra mail để thay đổi mật khẩu !'})
            else:
                error = ''
                for field in form:
                    error += field.errors
                return render(request, 'client/signup.html', {'messdk': error})
        elif 'agentname' and 'agentpass' in request.POST:
            username = request.POST['agentname']
            password = request.POST['agentpass']
            print(username + " " + password)
            user = authenticate(username=username, password=password)
            print(user)

            if user is not None:
                if user.is_active:
                    login(request, user)
                    # if user.token_id is None or user.check_expired() == False:
                    return redirect('client:home')
                else:
                    return render(
                        request, 'client/signup.html',
                        {'messdk': 'Tài khoản của bạn chưa được kích hoạt'})
            else:
                return render(
                    request, 'client/signup.html',
                    {'messdk': 'Tên đăng nhập hoặc mật khẩu không chính xác'})
        elif 'fullname' and 'email' and 'password2' in request.POST:
            user_form = UserForm(request.POST)
            if user_form.is_valid():
                current_site = get_current_site(request)
                user = user_form.save()

                mail_subject = 'Kích hoạt tài khoản Intercom '
                message = render_to_string(
                    'client/active_acc.html', {
                        'user': user,
                        'domain': current_site.domain,
                        'uid': urlsafe_base64_encode(force_bytes(
                            user.id)).decode(),
                        'token': account_activation_token.make_token(user)
                    })
                to_email = user.email
                email = EmailMessage(mail_subject, message, to=[to_email])
                thread = EmailThread(email)
                thread.start()
                return render(request, 'client/home.html',
                              {'mess': 'Xác nhận mail đã đăng kí'})
            else:
                error = ''
                for field in user_form:
                    error += field.errors
                return render(request, 'client/home.html', {'mess': error})
    return render(request, 'client/signup.html')
Esempio n. 5
0
def user_login(request):
    if request.method == 'POST':
        # Reset mật khẩu
        if 'uemail' in request.POST:
            form = UserResetForm(request.POST)
            if form.is_valid():
                to_email = form.cleaned_data['uemail']
                current_site = get_current_site(request)
                user = get_user_email(to_email)
                mail_subject = 'Làm mới mật khẩu'
                message = render_to_string(
                    'client/reset-password.html', {
                        'user': user,
                        'domain': current_site.domain,
                        'uid': urlsafe_base64_encode(force_bytes(
                            user.id)).decode(),
                        'token': account_activation_token.make_token(user)
                    })
                send_email.delay(mail_subject, message, to_email)
                return render(request, 'client/signup.html',
                              {'mess': 'Kiểm tra mail để thay đổi mật khẩu !'})
            else:
                error = ''
                for field in form:
                    error += field.errors
                return render(request, 'client/signup.html', {'messdk': error})
        # đăng nhập
        elif 'agentname' and 'agentpass' in request.POST:
            username = request.POST['agentname']
            password = request.POST['agentpass']
            user = authenticate(username=username, password=password)
            if user is not None:
                if user.is_active:
                    login(request, user)
                    if user.is_adminkvm:
                        return redirect('superadmin:home')
                    else:
                        user.token_id = KeystoneClient(
                            username=user.username,
                            password=user.username,
                            project_name=user.username).get_token()
                        user.save()
                        return redirect('client:home')
                else:
                    return render(
                        request, 'client/signup.html',
                        {'messdk': 'Tài khoản của bạn chưa được kích hoạt'})
            else:
                return render(
                    request, 'client/signup.html',
                    {'messdk': 'Tên đăng nhập hoặc mật khẩu không chính xác'})
        # Đăng ký
        elif 'email' and 'password2' in request.POST:
            user_form = UserForm(request.POST)
            if user_form.is_valid():
                current_site = get_current_site(request)
                user = user_form.save()

                mail_subject = 'Kích hoạt tài khoản Intercom '
                message = render_to_string(
                    'client/active_acc.html', {
                        'user': user,
                        'domain': current_site.domain,
                        'uid': urlsafe_base64_encode(force_bytes(
                            user.id)).decode(),
                        'token': account_activation_token.make_token(user)
                    })
                send_email.delay(mail_subject, message, user.email)
                return render(
                    request, 'client/signup.html',
                    {'mess': 'Vui lòng vào mail để kích hoạt tài khoản'})
            else:
                error = ''
                for field in user_form:
                    error += field.errors
                return render(request, 'client/signup.html', {'mess': error})
    return render(request, 'client/signup.html')