Skip to content

Commit

Permalink
SP-424 (#276)
Browse files Browse the repository at this point in the history
  • Loading branch information
larsksy authored Apr 4, 2024
2 parents d801e4d + 03666fe commit 2a16d4a
Show file tree
Hide file tree
Showing 10 changed files with 48 additions and 52 deletions.
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"version": "0.1.0",
"private": true,
"dependencies": {
"@digdir/designsystemet-css": "^0.2.1",
"@digdir/designsystemet-react": "^0.53.1",
"@digdir/designsystemet-theme": "^0.14.1",
"@digdir/designsystemet-css": "^0.2.3",
"@digdir/designsystemet-react": "^0.55.0",
"@digdir/designsystemet-theme": "^0.15.0",
"@navikt/aksel-icons": "5.18.3",
"@tanstack/react-query": "^5.17.9",
"@types/node": "^20.11.0",
Expand Down
10 changes: 6 additions & 4 deletions src/components/common/Header/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,15 @@ import {
XMarkIcon,
} from "@navikt/aksel-icons";
import { useMediaQuery } from "react-responsive";
import {useEnhet} from "../../../hooks/brreg";

function Header() {
const { data, isLoading } = useUser();
const { data: user } = useUser();
const { data: orgName } = useEnhet(user?.user?.reporteeId || "", user && !user.user?.trusted)
const [open, setOpen] = useState(false);
const isSmallScreen = useMediaQuery({ query: "(max-width: 767px)" });
const location = useLocation();
const isLoggedIn = !isLoading && data!!.isAuthenticated;
const isLoggedIn = !!user && user.isAuthenticated;

return (
<header className={styles.header}>
Expand Down Expand Up @@ -106,9 +108,9 @@ function Header() {
{!isSmallScreen && isLoggedIn && (
<>
<div>
<Paragraph size={"small"}>{data!!.user!!.name}</Paragraph>
<Paragraph size={"small"}>{user.user!!.name}</Paragraph>
<Paragraph size={"small"}>
{data!!.user!!.reporteeName}
{user.user!!.trusted ? user.user!!.reporteeName : orgName?.navn}
</Paragraph>
</div>
<BedriftSvg className={styles.svg} />
Expand Down
8 changes: 4 additions & 4 deletions src/components/dashboard/NewClientModal/Step2.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -142,21 +142,21 @@ const Step2 = () => {

<Alert severity={"warning"}>
<Heading level={3} size={"xsmall"}>
For å gå videre må du laste ned private-key.
For å gå videre må du laste ned privatnøkkel.
</Heading>
Vi anbefaler at du laster ned public-key i tillegg.
Vi anbefaler at du laster ned offentlig nøkkel i tillegg.
Du er selv ansvarlig for å holde privatnøkkelen sikker.
</Alert>
<div className={styles.keyTextLabel}>
<DownloadField downloadValue={publicKey || ""} downloadName={"mp-key.pem.pub"}>
Last ned publickey
Last ned offentlig nøkkel
</DownloadField>
<DownloadField
downloadValue={privateKey || ""}
downloadName={"mp-key.pem"}
callback={onDownloadPrivateKey}
>
Last ned privatekey
Last ned privatnøkkel
</DownloadField>
</div>
</div>
Expand Down
33 changes: 10 additions & 23 deletions src/components/landing/Landingpage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,23 @@ import styles from "./styles.module.scss";
import { login } from "../auth/login";
import ContentContainer from "../common/ContentContainer/ContentContainer";
import { link } from "../util/textTransforms";
import { useSearchParams } from "react-router-dom";
import {Navigate, useSearchParams} from "react-router-dom";
import { Helmet } from "react-helmet-async";
import {useUser} from "../../hooks/auth";

const enkelttjenestenavn =
"Selvbetjening av integrasjoner i ID-porten/Maskinporten";

function Landingpage() {
const [params] = useSearchParams();
const {data: user} = useUser();
const error = params.get("error");
const auth = params.get("auth");

if (user && user.isAuthenticated) {
return <Navigate to={"/dashboard"} />
}

return (
<ContentContainer className={styles.container}>
<Helmet>
Expand Down Expand Up @@ -93,25 +99,6 @@ function Landingpage() {
</div>

<Accordion className={styles.faq}>
<Accordion.Item>
<Accordion.Header>
<Paragraph size={"large"}>
Hva betyr enkelttjeneste-tilgang?
</Paragraph>
</Accordion.Header>
<Accordion.Content>
<Paragraph spacing>
Enkelttjeneste-tilgang beyr at du har rettighet til
enkelttjenesten "{enkelttjenestenavn}" på vegne av virksomheten.
</Paragraph>
<Paragraph spacing>
Du kan se om du har denne rettigheten ved å logge inn i Altinn,
velge rett virksomhet og navigere til Profil. Under fanen "Skjema
og tjenester du har rettighet til" vil denne komme opp under "Har
tilgang til disse [antall] enkelttjenestene".
</Paragraph>
</Accordion.Content>
</Accordion.Item>
<Accordion.Item>
<Accordion.Header>
<Paragraph size={"large"}>
Expand Down Expand Up @@ -156,7 +143,7 @@ function Landingpage() {
Dersom du allerede er tilknyttet din virksomhet gjennom en
eksisterende rolle eller tjeneste i Altinn kan du{" "}
{link(
"https://www.altinn.no/hjelp/profil/sporre-om-rettighet/slik-spor-du-om-rettighet/",
"https://info.altinn.no/hjelp/profil/be-om-tilgang/",
"etterspørre rettigheten",
true,
)}
Expand All @@ -176,7 +163,7 @@ function Landingpage() {
<Paragraph spacing>
Virksomheten din kan også ha satt opp rollen{" "}
{link(
"https://www.altinn.no/hjelp/profil/roller-og-rettigheter/hvordan-gi-rettigheter-til-andre/",
"https://info.altinn.no/hjelp/profil/enkelttjenester-og-roller/hvordan-gi-en-enkelttjeneste-og-rolle-til-andre/",
"tilgangsstyrer",
true,
)}{" "}
Expand All @@ -187,7 +174,7 @@ function Landingpage() {
<Paragraph spacing>
Fremgangsmåten for å tildele en enkelttjeneste er beskrevet{" "}
{link(
"https://www.altinn.no/hjelp/profil/roller-og-rettigheter/hvordan-gi-rettigheter-til-andre/",
"https://info.altinn.no/hjelp/profil/enkelttjenester-og-roller/hvordan-gi-en-enkelttjeneste-og-rolle-til-andre/",
"her",
true,
)}{" "}
Expand Down
9 changes: 6 additions & 3 deletions src/components/onboarding/TabsSection/KeySection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ function KeySection() {
</Heading>
<Paragraph spacing>
Her lager du ditt eget asymmentriske nøkkelpar. Når du oppretter en ny
integrasjon, legger du ved public-nøkkelen du ønsker å bruke. Du får en{" "}
integrasjon, legger du ved public-nøkkelen du ønsker å bruke eller
velger å få en ferdiggenerert nøkkel. Du får en{" "}
<span lang={"en"}>key</span> id (kid) som du kan referere til som en del
av JWT-grant og bruker privatnøkkelen til å signere hele JWT-tokenet
</Paragraph>
Expand All @@ -35,7 +36,8 @@ function KeySection() {
Du har opprettet et RSA nøkkelpar og har public-delen av nøkkelen
tilgjengelig. Om du ikke har et eksisterende nøkkelpar kan du
opprette et med kommandoene. Om du ikke trenger en keystore, kan du
hoppe over punkt to.
hoppe over punkt to. Om du vil generere nøkkel under oppretting av
integrasjon kan du hoppe over alle tre stegene.
<ol>
<li>
<code lang={"en"}>
Expand Down Expand Up @@ -65,7 +67,7 @@ function KeySection() {
Det er opprett en {link("/dashboard", "ny integrasjon ")} eller en
eksisterende integrasjon registrert med en public-nøkkel. Dersom du
oppretter ny integrasjon, last opp public-delen av nøkkelen du
ønsker å bruke ved opprettelse.
ønsker å bruke eller generer en nøkkel under oppretting.
</li>
</ol>
<Heading level={3} size={"medium"}>
Expand All @@ -77,6 +79,7 @@ function KeySection() {
{link(
"https://docs.digdir.no/docs/Maskinporten/maskinporten_protocol_jwtgrant",
"standarden",
true
)}
. Følgende felter er påkrevd
</li>
Expand Down
2 changes: 2 additions & 0 deletions src/components/onboarding/TabsSection/SertificateSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ function SertificateSection() {
{link(
"https://docs.digdir.no/docs/Maskinporten/maskinporten_autentisering#hvem-kan-utstede-virksomhetssertifikater",
"Hvordan skaffer jeg et virksomhetssertifikat?",
true
)}
</li>
<li>
Expand All @@ -53,6 +54,7 @@ function SertificateSection() {
{link(
"https://docs.digdir.no/docs/Maskinporten/maskinporten_protocol_jwtgrant",
"standarden",
true
)}
. Følgende felter er påkrevd
</li>
Expand Down
2 changes: 1 addition & 1 deletion src/components/onboarding/TabsSection/TabsSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ function TabsSection() {
onClick={() => setSelectedTab(2)}
>
<KeyHorizontalIcon />
<Paragraph size={"large"}>Manuelt opplastet nøkkel</Paragraph>
<Paragraph size={"large"}>Nøkkel</Paragraph>
</button>
<button
className={`${styles.tab} ${
Expand Down
3 changes: 2 additions & 1 deletion src/hooks/brreg.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ import { BrregEnhet } from "../types/brreg";

export const QK_BRREG = "QK_BRREG";

export const useEnhet = (orgnr: string) => {
export const useEnhet = (orgnr: string, enabled?: boolean) => {
return useQuery({
queryKey: [QK_BRREG, orgnr],
queryFn: async () => {
const path = `https://data.brreg.no/enhetsregisteret/api/enheter/${orgnr}`;
const res = await axios.get<BrregEnhet>(path);
return res.data;
},
enabled: enabled || true
});
};
1 change: 1 addition & 0 deletions src/types/tokens.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ export type Userinfo = {
name: string;
reporteeName: string;
reporteeId: string;
trusted: boolean;
};
26 changes: 13 additions & 13 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1288,27 +1288,27 @@
resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz#2cbcf822bf3764c9658c4d2e568bd0c0cb748016"
integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==

"@digdir/designsystemet-css@^0.2.1":
version "0.2.1"
resolved "https://registry.yarnpkg.com/@digdir/designsystemet-css/-/designsystemet-css-0.2.1.tgz#9d65c39a96b587b497024b8c11f7e87171a0eae1"
integrity sha512-TMx+COXlgJmXF2v+KgFCTZd7H/sLpXkA/BLSQVpnMcKaJ2+rzMVpbPIRYjZAmYc/SdU6Zh6vphyjKR/tSuvECA==
"@digdir/designsystemet-css@^0.2.3":
version "0.2.3"
resolved "https://registry.yarnpkg.com/@digdir/designsystemet-css/-/designsystemet-css-0.2.3.tgz#dda46a3251adf005e97408ac062d2ab742808fad"
integrity sha512-20+pk3QZKHW3nT6Liz8wJSGFSJVtQJ/2K4HjyvbkzXcFjKNa+8kpUK5VJIcR+bCiucQU1ZSW0u0ynTYz/UxECw==
dependencies:
"@digdir/designsystemet-react" "^0.53.1"
"@digdir/designsystemet-react" "^0.55.0"

"@digdir/designsystemet-react@^0.53.1":
version "0.53.1"
resolved "https://registry.yarnpkg.com/@digdir/designsystemet-react/-/designsystemet-react-0.53.1.tgz#2a86c1da39e104d1e29389cffa3e4633e0c64b24"
integrity sha512-zbLNqKu3CBSjOvBGd9wWUWOxTmQnpSJ62bTiyebP0LbjMpAUR4T5UnWTpKS2Aje1+EgyUAV79V2TMHnVO5dySQ==
"@digdir/designsystemet-react@^0.55.0":
version "0.55.0"
resolved "https://registry.yarnpkg.com/@digdir/designsystemet-react/-/designsystemet-react-0.55.0.tgz#c31d3572d803475e2be572a318ed5620d3bf4500"
integrity sha512-TxQ7ZOWNKbt7W54EeILIVEUXzBxPb5zIXD8ozVz0faP1ToB9iyVQsO2R43QcWjDpjjI/HpqNONfOpMBLtsp8ww==
dependencies:
"@floating-ui/react" "0.26.4"
"@navikt/aksel-icons" "^5.12.2"
"@radix-ui/react-slot" "^1.0.2"
"@tanstack/react-virtual" "^3.0.1"

"@digdir/designsystemet-theme@^0.14.1":
version "0.14.1"
resolved "https://registry.yarnpkg.com/@digdir/designsystemet-theme/-/designsystemet-theme-0.14.1.tgz#4485b267bf48e24de0eb1646f93da69f9e35aaaa"
integrity sha512-eA9bfSXw65L1B/uz4rbe/G6W5rPe1mXddNwhRxxx7kMYz0BlBgkXMgctWuXChOwvg0CKxDO1AdQkrL88wIPSPw==
"@digdir/designsystemet-theme@^0.15.0":
version "0.15.0"
resolved "https://registry.yarnpkg.com/@digdir/designsystemet-theme/-/designsystemet-theme-0.15.0.tgz#27e51d07e2f766b9b3a367e00a04a9c7263a7a92"
integrity sha512-TlMLYbmIuZ4ThSNnBzVoc6Jg+GF7qtQ+HN07y/zVg9J89BGPkkdSLK8c6evovds0yfKQd2XIxUD+fpQxwG4cTw==

"@eslint-community/eslint-utils@^4.2.0":
version "4.4.0"
Expand Down

0 comments on commit 2a16d4a

Please sign in to comment.