enterprise/rac: fix connection token management (#8909)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
@ -6,13 +6,13 @@ from rest_framework.filters import OrderingFilter, SearchFilter
|
|||||||
from rest_framework.serializers import ModelSerializer
|
from rest_framework.serializers import ModelSerializer
|
||||||
from rest_framework.viewsets import GenericViewSet
|
from rest_framework.viewsets import GenericViewSet
|
||||||
|
|
||||||
from authentik.api.authorization import OwnerFilter, OwnerPermissions
|
from authentik.api.authorization import OwnerFilter, OwnerSuperuserPermissions
|
||||||
from authentik.core.api.groups import GroupMemberSerializer
|
from authentik.core.api.groups import GroupMemberSerializer
|
||||||
from authentik.core.api.used_by import UsedByMixin
|
from authentik.core.api.used_by import UsedByMixin
|
||||||
from authentik.enterprise.api import EnterpriseRequiredMixin
|
from authentik.enterprise.api import EnterpriseRequiredMixin
|
||||||
from authentik.enterprise.providers.rac.api.endpoints import EndpointSerializer
|
from authentik.enterprise.providers.rac.api.endpoints import EndpointSerializer
|
||||||
from authentik.enterprise.providers.rac.api.providers import RACProviderSerializer
|
from authentik.enterprise.providers.rac.api.providers import RACProviderSerializer
|
||||||
from authentik.enterprise.providers.rac.models import ConnectionToken, Endpoint
|
from authentik.enterprise.providers.rac.models import ConnectionToken
|
||||||
|
|
||||||
|
|
||||||
class ConnectionTokenSerializer(EnterpriseRequiredMixin, ModelSerializer):
|
class ConnectionTokenSerializer(EnterpriseRequiredMixin, ModelSerializer):
|
||||||
@ -23,7 +23,7 @@ class ConnectionTokenSerializer(EnterpriseRequiredMixin, ModelSerializer):
|
|||||||
user = GroupMemberSerializer(source="session.user", read_only=True)
|
user = GroupMemberSerializer(source="session.user", read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Endpoint
|
model = ConnectionToken
|
||||||
fields = [
|
fields = [
|
||||||
"pk",
|
"pk",
|
||||||
"provider",
|
"provider",
|
||||||
@ -49,5 +49,5 @@ class ConnectionTokenViewSet(
|
|||||||
filterset_fields = ["endpoint", "session__user", "provider"]
|
filterset_fields = ["endpoint", "session__user", "provider"]
|
||||||
search_fields = ["endpoint__name", "provider__name"]
|
search_fields = ["endpoint__name", "provider__name"]
|
||||||
ordering = ["endpoint__name", "provider__name"]
|
ordering = ["endpoint__name", "provider__name"]
|
||||||
permission_classes = [OwnerPermissions]
|
permission_classes = [OwnerSuperuserPermissions]
|
||||||
filter_backends = [OwnerFilter, DjangoFilterBackend, OrderingFilter, SearchFilter]
|
filter_backends = [OwnerFilter, DjangoFilterBackend, OrderingFilter, SearchFilter]
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import { customElement, property } from "lit/decorators.js";
|
|||||||
|
|
||||||
import PFDescriptionList from "@patternfly/patternfly/components/DescriptionList/description-list.css";
|
import PFDescriptionList from "@patternfly/patternfly/components/DescriptionList/description-list.css";
|
||||||
|
|
||||||
import { ConnectionToken, Endpoint, RACProvider, RacApi } from "@goauthentik/api";
|
import { ConnectionToken, RACProvider, RacApi } from "@goauthentik/api";
|
||||||
|
|
||||||
@customElement("ak-rac-connection-token-list")
|
@customElement("ak-rac-connection-token-list")
|
||||||
export class ConnectionTokenListPage extends Table<ConnectionToken> {
|
export class ConnectionTokenListPage extends Table<ConnectionToken> {
|
||||||
@ -53,18 +53,18 @@ export class ConnectionTokenListPage extends Table<ConnectionToken> {
|
|||||||
return html`<ak-forms-delete-bulk
|
return html`<ak-forms-delete-bulk
|
||||||
objectLabel=${msg("Connection Token(s)")}
|
objectLabel=${msg("Connection Token(s)")}
|
||||||
.objects=${this.selectedElements}
|
.objects=${this.selectedElements}
|
||||||
.metadata=${(item: Endpoint) => {
|
.metadata=${(item: ConnectionToken) => {
|
||||||
return [
|
return [
|
||||||
{ key: msg("Name"), value: item.name },
|
{ key: msg("Endpoint"), value: item.endpointObj.name },
|
||||||
{ key: msg("Host"), value: item.host },
|
{ key: msg("User"), value: item.user.username },
|
||||||
];
|
];
|
||||||
}}
|
}}
|
||||||
.usedBy=${(item: Endpoint) => {
|
.usedBy=${(item: ConnectionToken) => {
|
||||||
return new RacApi(DEFAULT_CONFIG).racConnectionTokensUsedByList({
|
return new RacApi(DEFAULT_CONFIG).racConnectionTokensUsedByList({
|
||||||
connectionTokenUuid: item.pk,
|
connectionTokenUuid: item.pk,
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
.delete=${(item: Endpoint) => {
|
.delete=${(item: ConnectionToken) => {
|
||||||
return new RacApi(DEFAULT_CONFIG).racConnectionTokensDestroy({
|
return new RacApi(DEFAULT_CONFIG).racConnectionTokensDestroy({
|
||||||
connectionTokenUuid: item.pk,
|
connectionTokenUuid: item.pk,
|
||||||
});
|
});
|
||||||
|
|||||||
@ -88,7 +88,11 @@ export class RACProviderViewPage extends AKElement {
|
|||||||
<section slot="page-overview" data-tab-title="${msg("Overview")}">
|
<section slot="page-overview" data-tab-title="${msg("Overview")}">
|
||||||
${this.renderTabOverview()}
|
${this.renderTabOverview()}
|
||||||
</section>
|
</section>
|
||||||
<section slot="page-connections" data-tab-title="${msg("Connections")}">
|
<section
|
||||||
|
slot="page-connections"
|
||||||
|
data-tab-title="${msg("Connections")}"
|
||||||
|
class="pf-c-page__main-section pf-m-no-padding-mobile"
|
||||||
|
>
|
||||||
<div class="pf-c-card">
|
<div class="pf-c-card">
|
||||||
<div class="pf-c-card__body">
|
<div class="pf-c-card__body">
|
||||||
<ak-rac-connection-token-list
|
<ak-rac-connection-token-list
|
||||||
|
|||||||
Reference in New Issue
Block a user