예제 #1
0
def register_public_key_client(request):
    own_device = Device.get_own_device()
    if own_device.get_zone():
        set_as_registered()
        return {"already_registered": True}
    client = RegistrationClient()
    if client.test_connection() != "success":
        return {"no_internet": True}
    reg_response = client.register()
    reg_status = reg_response.get("code")
    if reg_status == "registered":
        set_as_registered()
        return {"newly_registered": True}
    if reg_status == "device_already_registered":
        set_as_registered()
        return {"already_registered": True}
    if reg_status == "public_key_unregistered":
        return {
            "unregistered":
            True,
            "registration_url":
            client.path_to_url(
                reverse("register_public_key") + "?" +
                urllib.quote(own_device.public_key)),
            "central_login_url":
            "%s://%s/accounts/login" %
            (settings.SECURESYNC_PROTOCOL, settings.CENTRAL_SERVER_HOST),
            "callback_url":
            request.build_absolute_uri(reverse("register_public_key")),
        }
    error_msg = reg_response.get("error", "")
    if error_msg:
        return {"error_msg": error_msg}
    return HttpResponse(_("Registration status: ") + reg_status)
예제 #2
0
def register_public_key_client(request):
    own_device = Device.get_own_device()
    if own_device.get_zone():
        set_as_registered()
        return {"already_registered": True}
    client = RegistrationClient()
    if client.test_connection() != "success":
        return {"no_internet": True}
    reg_response = client.register()
    reg_status = reg_response.get("code")
    if reg_status == "registered":
        set_as_registered()
        return {"newly_registered": True}
    if reg_status == "device_already_registered":
        set_as_registered()
        return {"already_registered": True}
    if reg_status == "public_key_unregistered":
        # Callback url used to redirect to the distributed server url
        #   after successful registration on the central server.
        return {
            "unregistered": True,
            "registration_url": client.path_to_url(
                reverse("register_public_key") + "?" + urllib.quote(own_device.public_key)
            ),
            "central_login_url": "%s://%s/accounts/login" % (settings.SECURESYNC_PROTOCOL, settings.CENTRAL_SERVER_HOST),
            "callback_url": request.build_absolute_uri(reverse("register_public_key")),
        }
    error_msg = reg_response.get("error", "")
    if error_msg:
        return {"error_msg": error_msg}
    return HttpResponse(_("Registration status: ") + reg_status)
예제 #3
0
def register_public_key_client(request):

    own_device = Device.get_own_device()
    if own_device.is_registered():
        initialize_registration()
        if request.next:
            return HttpResponseRedirect(request.next)
        else:
            return {"already_registered": True}

    client = RegistrationClient()
    if client.test_connection() != "success":
        return {"no_internet": True}

    reg_response = client.register()
    reg_status = reg_response.get("code")
    if reg_status == "registered":
        initialize_registration()
        if request.next:
            return HttpResponseRedirect(request.next)
        else:
            return {"newly_registered": True}
    elif reg_status == "device_already_registered":
        initialize_registration()
        if request.next:
            return HttpResponseRedirect(request.next)
        else:
            return {"already_registered": True}
    elif reg_status == "public_key_unregistered":
        # Callback url used to redirect to the distributed server url
        #   after successful registration on the central server.
        base_registration_url = client.path_to_url(
            set_query_params(reverse("register_public_key"), {
                "device_key": urllib.quote(own_device.public_key),
            }))
        return {
            "unregistered":
            True,
            "auto_registration_url":
            set_query_params(base_registration_url, {"auto": True}),
            "classic_registration_url":
            set_query_params(
                base_registration_url, {
                    "callback_url":
                    request.build_absolute_uri(reverse("register_public_key")),
                }),
            "central_login_url":
            "%s://%s/accounts/login" %
            (settings.SECURESYNC_PROTOCOL, settings.CENTRAL_SERVER_HOST),
        }

    error_msg = reg_response.get("error", "")
    if error_msg:
        return {"error_msg": error_msg}
    return HttpResponse(_("Registration status: ") + reg_status)