Skip to content

Commit

Permalink
Domain restriction support (#1228)
Browse files Browse the repository at this point in the history
  • Loading branch information
olemp authored Mar 22, 2024
1 parent 5ef0465 commit d93c346
Show file tree
Hide file tree
Showing 15 changed files with 131 additions and 89 deletions.
3 changes: 3 additions & 0 deletions client/components/Breadcrumb/Breadcrumb.module.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.breadcrumb {
margin-left: -10px;
}
7 changes: 6 additions & 1 deletion client/components/Breadcrumb/Breadcrumb.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,16 @@ import { ReusableComponent } from 'components/types'
import React from 'react'
import { renderBreadcrumbItem } from './renderBreadcrumbItem'
import { IBreadcrumbComponentProps } from './types'
import styles from './Breadcrumb.module.scss'
import { mergeClasses } from '@fluentui/react-components'

export const BreadcrumbComponent: ReusableComponent<
IBreadcrumbComponentProps
> = (props) => {
return (
<div className={props.className}>
<div
className={mergeClasses(BreadcrumbComponent.className, props.className)}
>
<Breadcrumb size='large'>
{props.items.map((item) => renderBreadcrumbItem(item, props.items))}
</Breadcrumb>
Expand All @@ -17,6 +21,7 @@ export const BreadcrumbComponent: ReusableComponent<
}

BreadcrumbComponent.displayName = 'Breadcrumb'
BreadcrumbComponent.className = styles.breadcrumb
BreadcrumbComponent.defaultProps = {
items: []
}
4 changes: 2 additions & 2 deletions client/components/List/reducer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ function applyFilters<T = any>(
(item) =>
_.filter(Object.keys(filterValues), (key) => {
const value = get(item as any, key, '')
switch (typeof value) {
switch (typeof filterValues[key]) {
case 'boolean': {
return filterValues[key] === value
}
default: {
return filterValues[key].includes(value)
return filterValues[key]?.includes(value)
}
}
}).length === Object.keys(filterValues).length
Expand Down
2 changes: 2 additions & 0 deletions client/graphql-queries/user/user-context.gql
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ query UserContext {
security {
securityGroupEnabled
securityGroupId
domainRestrictionEnabled
domainRestriction
}
}
}
Expand Down
30 changes: 17 additions & 13 deletions client/i18n/en-GB.json
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@
"bulkImportUsersLabel": "Bulk import",
"bulkImportingUsersLabel": "Importing {{count}} users. Please wait..",
"addNewUser": "Add new",
"userFieldAdSync": "The field is automatically synchronized from Azure AD when the user logs in, and can not be modified in Did.",
"userFieldAdSync": "The field is automatically synchronized from Entra ID when the user logs in, and can not be modified in Did.",
"syncUsersLabel": "Synchronize user properties",
"synchronizingUserProperties": "Synchronizing user properties...",
"updateSuccess": "Successfully updated user **{{displayName}}**.",
Expand All @@ -226,8 +226,8 @@
"createError": "An error occured when attempting to create user **{{displayName}}**.",
"addNewUserPanelTitle": "Add new user",
"editUserPanelTitle": "Edit user",
"addNewUserPanelDescription": "Select a user from Azure Active Directory, set a role, and any changed properties that are not automatically synchronized.",
"editUserPanelDescription": "Change role or edit properties that are not automatically synced from Azure Active Directory. You can also hide the user from overviews.",
"addNewUserPanelDescription": "Select a user from Entra ID, set a role, and any changed properties that are not automatically synchronized.",
"editUserPanelDescription": "Change role or edit properties that are not automatically synced from Entra ID. You can also hide the user from overviews.",
"employmentStartDateLabel": "Employment Start Date",
"employmentEndDateLabel": "Employment End Date",
"employmentEndDateDescription": "The date the user's employment ends. If the user is no longer employed, set this date to the last day of employment.",
Expand Down Expand Up @@ -259,15 +259,15 @@
"forecastNotificationsDescription": "How many weeks ahead should users forecast.",
"forecastNotificationsLabel": "Notifications",
"summaryRangeValueFormat": "Showing {{value}} months",
"adsync": "Azure AD Sync",
"adsync": "Entra ID Sync",
"adUserSyncEnabledLabel": "Synchronize user properties",
"adUserSyncEnabledDescription": "Automatically synchronize user properties from Azure Active Directory when the user logs in.",
"adUserSyncEnabledDescription": "Automatically synchronize user properties from Entra ID when the user logs in.",
"adUserSyncPropertiesLabel": "Properties to synchronize",
"adUserSyncPropertiesDescription": "Choose which properties that should be automatically synchronized from Azure Active Directory.",
"adUserSyncPropertiesDescription": "Choose which properties that should be automatically synchronized from Entra ID.",
"roleInUseMessage": "This role is assigned to {{count}} user(s) and cannot be deleted. ",
"userHiddenFromReportsLabel": "Hidden from reports",
"adUserSyncUserPhotoLabel": "Synchronize user photo",
"adUserSyncUserPhotoDescription": "Synchronize user photo from Azure Active Directory when the users logs in.",
"adUserSyncUserPhotoDescription": "Synchronize user photo from Entra ID when the users logs in.",
"subscriptionInfoHeader": "Basic info",
"vacation": "Holidays and absence",
"vacationTotalDaysLabel": "Vacation days",
Expand Down Expand Up @@ -339,10 +339,14 @@
"budgetTrackingEnabledLabel": "Enable Budget Tracking",
"budgetTrackingEnabledDescription": "Enabling this setting will enable additional properties on the projects making it possible to visualize how many hours are registered for the project and how it's going. This feature will provide users with a simple overview of project progress",
"security": "Security",
"securityGroupIdLabel": "Azure Entra ID Security Group ID",
"securityGroupIdDescription": "The ID of the Azure AD security group that should have access to the application. If the field is empty, users with access needs to be manually added to the application.",
"securityGroupEnabledLabel": "Enable Azure Entra ID Security Group Access",
"securityGroupEnabledDescription": "Enable access to the application for users in the specified Azure AD security group."
"securityGroupIdLabel": "Entra ID Security Group ID",
"securityGroupIdDescription": "The ID of the Entra ID security group that should have access to the application. If the field is empty, users with access needs to be manually added to the application.",
"securityGroupEnabledLabel": "Enable Entra ID Security Group Access",
"securityGroupEnabledDescription": "Enable access to the application for users in the specified Entra ID security group.",
"domainRestrictionEnabledLabel": "Enable domain restriction",
"domainRestrictionEnabledDescription": "In addition to the Entra ID security group, you can restrict access to the application to users in the specified domain.",
"domainRestrictionLabel": "Restrict access to users in the following domain",
"domainRestrictionDescription": "In addition to the Entra ID security group, you can restrict access to the application to users in the specified domain. If the field is empty, all users in the Entra ID security group will have access to the application."
},
"reports": {
"generatingReportProgressText": "Please wait while we generate the report for you...",
Expand Down Expand Up @@ -614,7 +618,7 @@
"startPageLabel": "Start page",
"preferredLanguageDescription": "Did will display menus and buttons in this language.",
"googleSignInText": "Sign in with Google",
"activeDirectory": "Azure AD",
"activeDirectory": "Entra ID",
"google": "Google",
"signInDisabledText": "Sign in is currently disabled. Please hold on.",
"error": "Error",
Expand Down Expand Up @@ -715,7 +719,7 @@
"manageReportLinksDescription": "Manage report links. Add, edit and delete report links.",
"selectAll": "Select/deselect all",
"importUsers": "Retrieve users from AD",
"importUsersDescription": "Retrieve users from Azure Active Directory and register them in the system. This is not something that everyone should have access to.",
"importUsersDescription": "Retrieve users from Entra ID and register them in the system. This is not something that everyone should have access to.",
"manageApiTokensDescription": "Manage (create new, delete existing, and view existing keys) API keys. It is good to be careful about who gets this access, as there is quite a lot that can be done with this much power.",
"manageApiTokens": "Manage API-tokens",
"listApiTokens": "List API-tokens",
Expand Down
34 changes: 19 additions & 15 deletions client/i18n/nb.json
Original file line number Diff line number Diff line change
Expand Up @@ -186,19 +186,19 @@
"bulkImportUsersLabel": "Importer i bulk",
"bulkImportingUsersLabel": "Importerer {{count}} brukere. Vennligst vent...",
"addNewUser": "Legg til ny",
"userFieldAdSync": "Feltet synkroniseres automatisk fra Azure AD når brukeren logger på, og kan ikke endres i Did.",
"userFieldAdSync": "Feltet synkroniseres automatisk fra Entra ID når brukeren logger på, og kan ikke endres i Did.",
"syncUsersLabel": "Synkroniser brukeregenskaper",
"synchronizingUserProperties": "Synkroniserer brukeregenskaper...",
"updateSuccess": "Brukeren **{{displayName}}** ble oppdatert uten problem.",
"createSuccess": "Brukeren **{{displayName}}** er opprettet og er nå klar til å begynne å registrere timer.",
"updateError": "Det oppstod en feil under oppdatering av bruker **{{displayName}}**.",
"createError": "Det oppstod en feil under opprettelse av bruker **{{displayName}}**.",
"editUserPanelDescription": "Endre rolle eller rediger egenskaper som ikke automatisk blir synkronisert fra Azure Active Directory. Du kan også skjule brukeren fra timeoversikter.",
"addNewUserPanelDescription": "Velg en bruker fra Azure Active Directory, sett en rolle, og eventuelt endre på egenskaper som ikke sykroniseres automatisk.",
"editUserPanelDescription": "Endre rolle eller rediger egenskaper som ikke automatisk blir synkronisert fra Entra ID. Du kan også skjule brukeren fra timeoversikter.",
"addNewUserPanelDescription": "Velg en bruker fra Entra ID, sett en rolle, og eventuelt endre på egenskaper som ikke sykroniseres automatisk.",
"addNewUserPanelTitle": "Legg til ny bruker",
"editUserPanelTitle": "Rediger bruker",
"employmentEndDateDescription": "Datoen brukerens arbeidsforhold avsluttes. \nDersom brukeren ikke lenger er ansatt, sett denne datoen til siste arbeidsdag.",
"employmentStartDateDescription": "Datoen brukerens ansettelse starter. \nHvis brukeren allerede er ansatt, sett denne datoen til første arbeidsdag.",
"employmentEndDateDescription": "Datoen brukerens arbeidsforhold avsluttes. Dersom brukeren ikke lenger er ansatt, sett denne datoen til siste arbeidsdag.",
"employmentStartDateDescription": "Datoen brukerens ansettelse starter. Hvis brukeren allerede er ansatt, sett denne datoen til første arbeidsdag.",
"employmentEndDateLabel": "Sluttdato for ansettelse",
"employmentStartDateLabel": "Startdato for ansettelse"
},
Expand Down Expand Up @@ -296,15 +296,15 @@
"forecastNotificationsDescription": "Hvor mange uker fram i tid skal brukerne prognosere?",
"forecastNotificationsLabel": "Varsler",
"summaryRangeValueFormat": "Viser {{value}} måneder",
"adsync": "Synkronisering med Azure AD",
"adsync": "Synkronisering med Entra ID",
"adUserSyncEnabledLabel": "Synkroniser brukeregenskaper",
"adUserSyncEnabledDescription": "Synkroniser automatisk brukeregenskaper fra Azure Active Directory når brukeren logger på.",
"adUserSyncEnabledDescription": "Synkroniser automatisk brukeregenskaper fra Entra ID når brukeren logger på.",
"adUserSyncPropertiesLabel": "Egenskaper som skal synkroniseres",
"adUserSyncPropertiesDescription": "Velg hvilke egenskaper som skal synkroniseres automatisk fra Azure Active Directory.",
"adUserSyncPropertiesDescription": "Velg hvilke egenskaper som skal synkroniseres automatisk fra Entra ID.",
"roleInUseMessage": "Denne rollen er tildelt {{count}} brukere og kan ikke slettes.",
"userHiddenFromReportsLabel": "Skjult fra timeoversikt",
"adUserSyncUserPhotoLabel": "Synkroniser profilbilde",
"adUserSyncUserPhotoDescription": "Synkroniser profilbilde fra Azure Active Directory når brukerne logger på.",
"adUserSyncUserPhotoDescription": "Synkroniser profilbilde fra Entra ID når brukerne logger på.",
"subscriptionInfoHeader": "Grunnleggende informasjon",
"vacationEventCategoryLabel": "Kalenderoppføringskategori i Outlook",
"vacationEventCategoryDescription": "Kategori som skal brukes til å merke kalenderoppføringer i Outlook som ferie.",
Expand Down Expand Up @@ -337,10 +337,14 @@
"budgetTracking": "Budsjettoppfølging",
"budgetTrackingEnabledLabel": "Aktiver budsjettoppfølging",
"security": "Sikkerhet",
"securityGroupIdLabel": "Azure Entra ID Sikkerhetsgruppe ID",
"securityGroupIdDescription": "ID-en til Azure AD-sikkerhetsgruppen som skal ha tilgang til applikasjonen. Hvis feltet er tomt, må brukere med tilgang legges til manuelt i applikasjonen.",
"securityGroupEnabledLabel": "Aktiver tilgang gjennom en sikkerhetsgruppe i Azure Entra ID.",
"securityGroupEnabledDescription": "Aktiver tilgang til applikasjonen for brukere i den angitte Azure AD-sikkerhetsgruppen."
"securityGroupIdLabel": "Entra ID Sikkerhetsgruppe ID",
"securityGroupIdDescription": "ID-en til Entra ID-sikkerhetsgruppen som skal ha tilgang til applikasjonen. Hvis feltet er tomt, må brukere med tilgang legges til manuelt i applikasjonen.",
"securityGroupEnabledLabel": "Aktiver tilgang gjennom en sikkerhetsgruppe i Entra ID.",
"securityGroupEnabledDescription": "Aktiver tilgang til applikasjonen for brukere i den angitte Entra ID-sikkerhetsgruppen.",
"domainRestrictionLabel": "Begrens tilgang til brukere i følgende domene",
"domainRestrictionDescription": "I tillegg til Entra ID-sikkerhetsgruppen kan du begrense tilgangen til applikasjonen til brukere i det angitte domenet. Hvis feltet er tomt, vil alle brukere i Entra ID-sikkerhetsgruppen ha tilgang til applikasjonen.",
"domainRestrictionEnabledLabel": "Aktiver domenebegrensning",
"domainRestrictionEnabledDescription": "I tillegg til Entra ID-sikkerhetsgruppen kan du begrense tilgangen til applikasjonen til brukere i det angitte domenet."
},
"reports": {
"generatingReportProgressText": "Vennligst vent mens vi genererer rapporten for deg...",
Expand Down Expand Up @@ -612,7 +616,7 @@
"startPageLabel": "Startside",
"preferredLanguageDescription": "Did viser menyer og knapper på dette språket.",
"googleSignInText": "Logg på med Google",
"activeDirectory": "Azure AD",
"activeDirectory": "Entra ID",
"google": "Google",
"signInDisabledText": "Pålogging er for øyeblikket deaktivert. \nVennligst vent.",
"error": "Feilmelding",
Expand Down Expand Up @@ -712,7 +716,7 @@
"category_api": "API",
"selectAll": "Velg/fjern alle",
"importUsers": "Hent brukere fra AD",
"importUsersDescription": "Hente ut brukere fra Azure Active Directory og registere de i systemet. Dette er ikke noe alle burde ha tilgang til.",
"importUsersDescription": "Hente ut brukere fra Entra ID og registere de i systemet. Dette er ikke noe alle burde ha tilgang til.",
"manageApiTokensDescription": "Administere (opprette nye, slette eksisterende, og se eksisterende nøkler) API-nøkler. Det er greit å være forsiktig med hvem som får denne tilgangen, da det er ganske mye som kan gjøres med så mye krefter.",
"manageApiTokens": "Administrere API-nøkler",
"listApiTokensDescription": "Se eksisterende API-nøkler. Du har kun tilgang til grunnleggende informasjon om nøklene. Navn, beskrivelse, opprettet dato og når de utløper. Du har ikke mulighet for å hente ut selve nøkkelen som trengs for å kjøre spørringen fra tredjeapartssystemer.",
Expand Down
Loading

0 comments on commit d93c346

Please sign in to comment.