Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
Jens Langhammer
2025-06-06 15:23:30 +02:00
parent b4282660b0
commit ac0d67cf24
5 changed files with 5 additions and 25 deletions

View File

@ -36,11 +36,6 @@ class TestAdminAPI(TestCase):
body = loads(response.content) body = loads(response.content)
self.assertEqual(len(body), 0) self.assertEqual(len(body), 0)
def test_metrics(self):
"""Test metrics API"""
response = self.client.get(reverse("authentik_api:admin_metrics"))
self.assertEqual(response.status_code, 200)
def test_apps(self): def test_apps(self):
"""Test apps API""" """Test apps API"""
response = self.client.get(reverse("authentik_api:apps-list")) response = self.client.get(reverse("authentik_api:apps-list"))

View File

@ -81,22 +81,6 @@ class TestUsersAPI(APITestCase):
response = self.client.get(reverse("authentik_api:user-list"), {"include_groups": "true"}) response = self.client.get(reverse("authentik_api:user-list"), {"include_groups": "true"})
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
def test_metrics(self):
"""Test user's metrics"""
self.client.force_login(self.admin)
response = self.client.get(
reverse("authentik_api:user-metrics", kwargs={"pk": self.user.pk})
)
self.assertEqual(response.status_code, 200)
def test_metrics_denied(self):
"""Test user's metrics (non-superuser)"""
self.client.force_login(self.user)
response = self.client.get(
reverse("authentik_api:user-metrics", kwargs={"pk": self.user.pk})
)
self.assertEqual(response.status_code, 403)
def test_recovery_no_flow(self): def test_recovery_no_flow(self):
"""Test user recovery link (no recovery flow set)""" """Test user recovery link (no recovery flow set)"""
self.client.force_login(self.admin) self.client.force_login(self.admin)

View File

@ -6,7 +6,7 @@ import django_filters
from django.db.models import Count, ExpressionWrapper, F, QuerySet from django.db.models import Count, ExpressionWrapper, F, QuerySet
from django.db.models import DateTimeField as DjangoDateTimeField from django.db.models import DateTimeField as DjangoDateTimeField
from django.db.models.fields.json import KeyTextTransform, KeyTransform from django.db.models.fields.json import KeyTextTransform, KeyTransform
from django.db.models.functions import Cast, TruncHour from django.db.models.functions import TruncHour
from django.db.models.query_utils import Q from django.db.models.query_utils import Q
from django.utils.timezone import now from django.utils.timezone import now
from drf_spectacular.types import OpenApiTypes from drf_spectacular.types import OpenApiTypes

View File

@ -15,6 +15,7 @@ export class EventVolumeChart extends AKChart<EventVolume[]> {
@property({ attribute: false }) @property({ attribute: false })
set query(value: EventsEventsListRequest | undefined) { set query(value: EventsEventsListRequest | undefined) {
if (JSON.stringify(this._query) === JSON.stringify(value)) return;
this._query = value; this._query = value;
this.refreshHandler(); this.refreshHandler();
} }

View File

@ -23,7 +23,7 @@ import {
import { Legend, Tooltip } from "chart.js"; import { Legend, Tooltip } from "chart.js";
import { BarController, DoughnutController, LineController } from "chart.js"; import { BarController, DoughnutController, LineController } from "chart.js";
import { ArcElement, BarElement } from "chart.js"; import { ArcElement, BarElement } from "chart.js";
import { LinearScale, TimeScale } from "chart.js"; import { LinearScale, TimeScale, TimeSeriesScale } from "chart.js";
import "chartjs-adapter-date-fns"; import "chartjs-adapter-date-fns";
import { msg } from "@lit/localize"; import { msg } from "@lit/localize";
@ -35,7 +35,7 @@ import { EventActions, EventVolume, UiThemeEnum } from "@goauthentik/api";
Chart.register(Legend, Tooltip); Chart.register(Legend, Tooltip);
Chart.register(LineController, BarController, DoughnutController); Chart.register(LineController, BarController, DoughnutController);
Chart.register(ArcElement, BarElement, PointElement, LineElement); Chart.register(ArcElement, BarElement, PointElement, LineElement);
Chart.register(TimeScale, LinearScale, Filler); Chart.register(TimeScale, TimeSeriesScale, LinearScale, Filler);
export const FONT_COLOUR_DARK_MODE = "#fafafa"; export const FONT_COLOUR_DARK_MODE = "#fafafa";
export const FONT_COLOUR_LIGHT_MODE = "#151515"; export const FONT_COLOUR_LIGHT_MODE = "#151515";
@ -186,7 +186,7 @@ export abstract class AKChart<T> extends AKElement {
responsive: true, responsive: true,
scales: { scales: {
x: { x: {
type: "time", type: "timeseries",
display: true, display: true,
ticks: { ticks: {
callback: (tickValue: string | number, index: number, ticks: Tick[]) => { callback: (tickValue: string | number, index: number, ticks: Tick[]) => {