core: add option to select group for property mapping testing (#9834)
* make naming consistent, p1 Signed-off-by: Jens Langhammer <jens@goauthentik.io> * p2 Signed-off-by: Jens Langhammer <jens@goauthentik.io> * core: add option to select group for property mapping testing Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
@ -14,16 +14,18 @@ import { ifDefined } from "lit/directives/if-defined.js";
|
||||
|
||||
import {
|
||||
CoreApi,
|
||||
CoreGroupsListRequest,
|
||||
CoreUsersListRequest,
|
||||
PolicyTestRequest,
|
||||
Group,
|
||||
PropertyMapping,
|
||||
PropertyMappingTestRequest,
|
||||
PropertyMappingTestResult,
|
||||
PropertymappingsApi,
|
||||
User,
|
||||
} from "@goauthentik/api";
|
||||
|
||||
@customElement("ak-property-mapping-test-form")
|
||||
export class PolicyTestForm extends Form<PolicyTestRequest> {
|
||||
export class PolicyTestForm extends Form<PropertyMappingTestRequest> {
|
||||
@property({ attribute: false })
|
||||
mapping?: PropertyMapping;
|
||||
|
||||
@ -31,17 +33,17 @@ export class PolicyTestForm extends Form<PolicyTestRequest> {
|
||||
result?: PropertyMappingTestResult;
|
||||
|
||||
@property({ attribute: false })
|
||||
request?: PolicyTestRequest;
|
||||
request?: PropertyMappingTestRequest;
|
||||
|
||||
getSuccessMessage(): string {
|
||||
return msg("Successfully sent test-request.");
|
||||
}
|
||||
|
||||
async send(data: PolicyTestRequest): Promise<PropertyMappingTestResult> {
|
||||
async send(data: PropertyMappingTestRequest): Promise<PropertyMappingTestResult> {
|
||||
this.request = data;
|
||||
const result = await new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsAllTestCreate({
|
||||
pmUuid: this.mapping?.pk || "",
|
||||
policyTestRequest: data,
|
||||
propertyMappingTestRequest: data,
|
||||
formatResult: true,
|
||||
});
|
||||
return (this.result = result);
|
||||
@ -122,7 +124,7 @@ export class PolicyTestForm extends Form<PolicyTestRequest> {
|
||||
}
|
||||
|
||||
renderForm(): TemplateResult {
|
||||
return html`<ak-form-element-horizontal label=${msg("User")} ?required=${true} name="user">
|
||||
return html`<ak-form-element-horizontal label=${msg("User")} name="user">
|
||||
<ak-search-select
|
||||
.fetchObjects=${async (query?: string): Promise<User[]> => {
|
||||
const args: CoreUsersListRequest = {
|
||||
@ -144,7 +146,31 @@ export class PolicyTestForm extends Form<PolicyTestRequest> {
|
||||
return user?.pk;
|
||||
}}
|
||||
.selected=${(user: User): boolean => {
|
||||
return this.request?.user.toString() === user.pk.toString();
|
||||
return this.request?.user?.toString() === user.pk.toString();
|
||||
}}
|
||||
>
|
||||
</ak-search-select>
|
||||
</ak-form-element-horizontal>
|
||||
<ak-form-element-horizontal label=${msg("Group")} name="group">
|
||||
<ak-search-select
|
||||
.fetchObjects=${async (query?: string): Promise<Group[]> => {
|
||||
const args: CoreGroupsListRequest = {
|
||||
ordering: "name",
|
||||
};
|
||||
if (query !== undefined) {
|
||||
args.search = query;
|
||||
}
|
||||
const groups = await new CoreApi(DEFAULT_CONFIG).coreGroupsList(args);
|
||||
return groups.results;
|
||||
}}
|
||||
.renderElement=${(group: Group): string => {
|
||||
return group.name;
|
||||
}}
|
||||
.value=${(group: Group | undefined): string | undefined => {
|
||||
return group?.pk;
|
||||
}}
|
||||
.selected=${(group: Group): boolean => {
|
||||
return this.request?.group?.toString() === group.pk.toString();
|
||||
}}
|
||||
>
|
||||
</ak-search-select>
|
||||
|
Reference in New Issue
Block a user