Beispiel #1
0
def do_login(request):
    try:
        data = json.loads(request.body)
    except json.JSONDecodeError:
        raise PermissionDenied("No data")

    name = data.get('username')
    password = data.get('password')
    try:
        user = authenticate(request, username=name, password=password)
        if user is not None:
            login(request, user)
            return api_response(
                result=True,
                command="login",
                arguments=name,
                failed=False
            )
        else:
            raise PermissionDenied("Invalid login")
    except PermissionDenied:
        return api_response(
            command="login",
            arguments=name,
            status_code=401
        )
Beispiel #2
0
def do_login(request):
    try:
        data = json.loads(request.body)
    except json.JSONDecodeError:
        logger.debug("Login attempt without data")
        raise PermissionDenied("No data")

    name = data.get('username')
    password = data.get('password')
    try:
        user = authenticate(request, username=name, password=password)
        if user is not None:
            login(request, user)
            logger.info("Successful login: %s", name)
            return api_response(result=True,
                                command="login",
                                arguments=name,
                                failed=False)
        else:
            logger.warning("Failed login attempt %s", data)
            raise PermissionDenied("Invalid login")
    except PermissionDenied:
        logger.warning("Failed login attempt %s", data)
        return api_response(command="login", arguments=name, status_code=401)
Beispiel #3
0
    def wrapper(request, *args, **kwargs):
        dist = get_object_or_404(Distribution,
                                 id=kwargs.pop('distribution_id'))
        if not request.user.is_superuser:
            if dist.date != datetime.date.today():
                raise PermissionDenied()
            if not request.user.has_perm("distribution", obj=dist):
                if request.method == "POST":
                    form = DistributionHashForm(dist, request.POST)
                    if form.is_valid():
                        request.session["distribution_hash"] = \
                            form.cleaned_data["password"]
                        return redirect(request.path)
                else:
                    form = DistributionHashForm(dist)
                return render(request, "distribution/login.html", {
                    "form": form,
                })

        kwargs['distribution'] = dist
        return func(request, *args, **kwargs)