{/* Name */}
@@ -15,6 +20,11 @@ const SkeletonTableRow = () => {
|
|
+ {isCloudEnvironment && (
+
+
+ |
+ )}
{/* Company name */}
@@ -33,6 +43,7 @@ const SkeletonTableRow = () => {
export const SkeletonTableUser = () => {
const rows = 10;
+ const isCloudEnvironment = isCloud();
return (
@@ -60,6 +71,11 @@ export const SkeletonTableUser = () => {
|
|
+ {isCloudEnvironment && (
+
+
+ |
+ )}
{/* Company name */}
@@ -74,7 +90,7 @@ export const SkeletonTableUser = () => {
|
{Array.from({ length: rows }).map((_, i) => (
-
+
))}
diff --git a/ui/types/components.ts b/ui/types/components.ts
index ef9bc2541a..5d314f30cc 100644
--- a/ui/types/components.ts
+++ b/ui/types/components.ts
@@ -4,6 +4,7 @@ import { SVGProps } from "react";
import { ProviderCredentialFields } from "@/lib/provider-credentials/provider-credential-fields";
import type { FindingTriageSummary } from "./findings-triage";
+import type { UserSignInMethod } from "./users";
export type IconSvgProps = SVGProps & {
size?: number;
@@ -541,6 +542,7 @@ export interface UserProps {
role: {
name: string;
};
+ sign_in_methods?: UserSignInMethod[];
};
relationships: {
memberships: {
diff --git a/ui/types/users.ts b/ui/types/users.ts
index a9ea90196e..324bbda319 100644
--- a/ui/types/users.ts
+++ b/ui/types/users.ts
@@ -1,3 +1,29 @@
+export const USER_SIGN_IN_METHOD = {
+ EMAIL_PASSWORD: "email_password",
+ GOOGLE: "google",
+ GITHUB: "github",
+ SAML: "saml",
+ PARTNER_SSO: "partner_sso",
+} as const;
+
+export type UserSignInMethodType =
+ (typeof USER_SIGN_IN_METHOD)[keyof typeof USER_SIGN_IN_METHOD];
+
+type NonSamlUserSignInMethodType = Exclude<
+ UserSignInMethodType,
+ typeof USER_SIGN_IN_METHOD.SAML
+>;
+
+export type UserSignInMethod =
+ | {
+ method: typeof USER_SIGN_IN_METHOD.SAML;
+ domain?: string;
+ }
+ | {
+ method: NonSamlUserSignInMethodType;
+ domain?: never;
+ };
+
export interface UserAttributes {
name: string;
email: string;