web: Detangling some circular dependencies in Admin and User (#6852)

* Web: Detangling some circular dependencies in Admin and User

Admin, User, and Flow should not dependend upon each other, at least
not in a circular way.  If Admin and User depend on Flow, that's
fine, but Flow should not correspondingly depend upon elements of
either; if they have something in common, let's put them in
`@goauthentik/common` or find some other smart place to store them.

This commit refactors the intentToLabel and actionToLabel functions
into `@goauthentik/common/labels` and converts them to static tables
for maintenance purposes.

* web: "Consistency is the hobgoblin of small minds" - Ralph Waldo Emerson

* web: I found these confusing to look at, so I added comments.

* web: remove admin-to-user component reference(s) (#6856)

There was only one: AppIcon.  This has been moved to `components`.

Touching the LibraryApplications page triggered a cyclomatic
complexity check.  Extracting the expansion block and streamlining
the class and style declarations with lit directives helped.
This commit is contained in:
Ken Sternberg
2023-09-13 10:16:24 -07:00
committed by GitHub
parent 58aa7ec623
commit 28702b3a25
16 changed files with 124 additions and 145 deletions

View File

@ -1,11 +1,8 @@
import { EventWithContext } from "@goauthentik/common/events";
import { KeyUnknown } from "@goauthentik/elements/forms/Form";
import { msg } from "@lit/localize";
import { TemplateResult, html } from "lit";
import { EventActions, SeverityEnum } from "@goauthentik/api";
export function EventGeo(event: EventWithContext): TemplateResult {
let geo: KeyUnknown | undefined = undefined;
if (Object.hasOwn(event.context, "geo")) {
@ -17,76 +14,3 @@ export function EventGeo(event: EventWithContext): TemplateResult {
}
return html``;
}
export function ActionToLabel(action?: EventActions): string {
if (!action) return "";
switch (action) {
case EventActions.Login:
return msg("Login");
case EventActions.LoginFailed:
return msg("Failed login");
case EventActions.Logout:
return msg("Logout");
case EventActions.UserWrite:
return msg("User was written to");
case EventActions.SuspiciousRequest:
return msg("Suspicious request");
case EventActions.PasswordSet:
return msg("Password set");
case EventActions.SecretView:
return msg("Secret was viewed");
case EventActions.SecretRotate:
return msg("Secret was rotated");
case EventActions.InvitationUsed:
return msg("Invitation used");
case EventActions.AuthorizeApplication:
return msg("Application authorized");
case EventActions.SourceLinked:
return msg("Source linked");
case EventActions.ImpersonationStarted:
return msg("Impersonation started");
case EventActions.ImpersonationEnded:
return msg("Impersonation ended");
case EventActions.FlowExecution:
return msg("Flow execution");
case EventActions.PolicyExecution:
return msg("Policy execution");
case EventActions.PolicyException:
return msg("Policy exception");
case EventActions.PropertyMappingException:
return msg("Property Mapping exception");
case EventActions.SystemTaskExecution:
return msg("System task execution");
case EventActions.SystemTaskException:
return msg("System task exception");
case EventActions.SystemException:
return msg("General system exception");
case EventActions.ConfigurationError:
return msg("Configuration error");
case EventActions.ModelCreated:
return msg("Model created");
case EventActions.ModelUpdated:
return msg("Model updated");
case EventActions.ModelDeleted:
return msg("Model deleted");
case EventActions.EmailSent:
return msg("Email sent");
case EventActions.UpdateAvailable:
return msg("Update available");
default:
return action;
}
}
export function SeverityToLabel(severity: SeverityEnum | null | undefined): string {
if (!severity) return msg("Unknown severity");
switch (severity) {
case SeverityEnum.Alert:
return msg("Alert");
case SeverityEnum.Notice:
return msg("Notice");
case SeverityEnum.Warning:
return msg("Warning");
}
return msg("Unknown severity");
}