def test_check_admin_permission_false():
    u = fEMRUser.objects.create_user(
        username="******",
        password="******",
        email="*****@*****.**",
    )
    assert not check_admin_permission(u)
    u.delete()
def test_check_admin_permission_true():
    u = fEMRUser.objects.create_user(
        username="******",
        password="******",
        email="*****@*****.**",
    )
    g = Group.objects.get_or_create(name="fEMR Admin")[0]
    g.user_set.add(u)
    assert check_admin_permission(u)
    u.delete()
    g.delete()
def fetch_csv_export(request, export_id=None):
    if request.user.is_authenticated:
        if check_admin_permission(request.user):
            export = CSVExport.objects.get(pk=export_id)
            with open(export.file.url, "rb") as file_handle:
                resp = HttpResponse(file_handle.read(),
                                    content_type="text/csv")
                resp[
                    "Content-Disposition"] = f'attachment; filename="{os.path.basename(export.file.path)}"'
                return resp
        else:
            return_response = redirect("main:permission_denied")
    else:
        return_response = redirect("main:not_logged_in")
    return return_response
def csv_export_list(request):
    if request.user.is_authenticated:
        if check_admin_permission(request.user):
            exports = CSVExport.objects.filter(
                user=request.user).order_by("-id")
            paginator = Paginator(exports, 10)
            page_number = request.GET.get("page")
            page_obj = paginator.get_page(page_number)
            return_response = render(request, "admin/export_list.html",
                                     {"exports": page_obj})
        else:
            return_response = redirect("main:permission_denied")
    else:
        return_response = redirect("main:not_logged_in")
    return return_response
def run_patient_csv_export(request, timeframe=1):
    if request.user.is_authenticated:
        if check_admin_permission(request.user):
            campaign = Campaign.objects.get(name=request.user.current_campaign)
            csv_export_handler.delay(request.user.pk, campaign.id, timeframe)
            messages.info(
                request,
                "We're building your CSV - you'll receive a message once it's done. This may take up to 10 minutes.",
            )
            return_response = render(request, "admin/home.html", {
                "user": request.user,
                "page_name": "Admin"
            })
        else:
            return_response = redirect("main:permission_denied")
    else:
        return_response = redirect("main:not_logged_in")
    return return_response
Beispiel #6
0
def has_admin_group(user: fEMRUser) -> bool:
    return check_admin_permission(user)
Beispiel #7
0
 def wrap(request, *args, **kwargs):
     if check_admin_permission(request.user):
         return_response = view_func(request, *args, **kwargs)
     else:
         return_response = redirect("main:permission_denied")
     return return_response