Ejemplo n.º 1
0
def activate(request, token):
    if request.method == "GET":
        acc, payload = authenticate_token(token)
        if acc == 0:
            return HttpResponse(payload)
        else:
            user = User().find_one({'_id': ObjectId(payload['user_id'])})
            if user is None:
                return HttpResponse("User does not exist!")
            if user['is_active'] == 1:
                return HttpResponse("Email is activated!")
            User().collection.update_one({'_id': ObjectId(payload['user_id'])},
                                         {"$set": {
                                             'is_active': 1
                                         }})
        return render(request, 'login.html', {'is_register': 1})
Ejemplo n.º 2
0
def reset_password(request):
    if request.method == 'POST':
        is_send_mail = request.POST.get('is_send_mail')
        if is_send_mail == '1':
            email = request.POST.get('email')
            user = User().find_one({'email': email})

            if user is None:
                return JsonResponse({'code': 0, 'msg': 'Email not exists!'})

            account_activation_token = create_token(
                {'user_id': str(user['_id'])}, 60)
            mail_subject = 'Please reset your password.'
            current_site = get_current_site(request)
            message = render_to_string(
                'acc_active_email.html', {
                    'user_name': user['username'],
                    'domain': current_site.domain,
                    'token': account_activation_token,
                    'reset_password': 1
                })
            email = EmailMessage(mail_subject, message, to=[email])
            email.send()
            return JsonResponse({
                'code': 1,
                'msg': 'The email send successfully!'
            })

        else:
            password = request.POST.get('password')
            token = request.POST.get('token')
            if not all([password, token]):
                return JsonResponse({
                    'code': 0,
                    'msg': 'password or token is None!'
                })
            acc, payload = authenticate_token(token)
            if acc == 0:
                return HttpResponse(payload)
            else:
                user = User().find_one({
                    '_id': ObjectId(payload['user_id']),
                    'is_active': 1
                })
                if user is None:
                    return JsonResponse({
                        'code':
                        0,
                        'msg':
                        'User not exist or Email not activated!'
                    })
                User().collection.update_one(
                    {'_id': ObjectId(payload['user_id'])},
                    {"$set": {
                        'password': get_password(password)
                    }})
            return JsonResponse({
                'code':
                1,
                "msg":
                "Reset password Successfully, Please Login!"
            })