diff --git a/api/src/affiliation/loaders/__tests__/load-affiliation-connections-by-org-id.test.js b/api/src/affiliation/loaders/__tests__/load-affiliation-connections-by-org-id.test.js
index 3fa581cac5..cc018b66d8 100644
--- a/api/src/affiliation/loaders/__tests__/load-affiliation-connections-by-org-id.test.js
+++ b/api/src/affiliation/loaders/__tests__/load-affiliation-connections-by-org-id.test.js
@@ -530,7 +530,7 @@ describe('given the load affiliations by org id function', () => {
permission: 'user',
})
})
- describe('ordering by USER_USERNAME', () => {
+ describe('ordering by USERNAME', () => {
describe('direction is set to ASC', () => {
it('returns affiliation', async () => {
const expectedAffiliation = await loadAffiliationByKey({
@@ -552,7 +552,7 @@ describe('given the load affiliations by org id function', () => {
after: toGlobalId('affiliation', affOne._key),
before: toGlobalId('affiliation', affThree._key),
orderBy: {
- field: 'user-username',
+ field: 'username',
direction: 'ASC',
},
}
@@ -601,7 +601,7 @@ describe('given the load affiliations by org id function', () => {
after: toGlobalId('affiliation', affThree._key),
before: toGlobalId('affiliation', affOne._key),
orderBy: {
- field: 'user-username',
+ field: 'username',
direction: 'DESC',
},
}
diff --git a/api/src/affiliation/loaders/load-affiliation-connections-by-org-id.js b/api/src/affiliation/loaders/load-affiliation-connections-by-org-id.js
index fa32893b24..1c8614e8a5 100644
--- a/api/src/affiliation/loaders/load-affiliation-connections-by-org-id.js
+++ b/api/src/affiliation/loaders/load-affiliation-connections-by-org-id.js
@@ -20,9 +20,15 @@ export const loadAffiliationConnectionsByOrgId =
let affiliationField, documentField
/* istanbul ignore else */
- if (orderBy.field === 'user-username') {
+ if (orderBy.field === 'username') {
affiliationField = aql`DOCUMENT(users, PARSE_IDENTIFIER(affiliation._to).key).userName`
documentField = aql`DOCUMENT(users, PARSE_IDENTIFIER(DOCUMENT(affiliations, ${afterId})._to).key).userName`
+ } else if (orderBy.field === 'display_name') {
+ affiliationField = aql`DOCUMENT(users, PARSE_IDENTIFIER(affiliation._to).key).displayName`
+ documentField = aql`DOCUMENT(users, PARSE_IDENTIFIER(DOCUMENT(affiliations, ${afterId})._to).key).displayName`
+ } else if (orderBy.field === 'permission') {
+ affiliationField = aql`rolePriority[affiliation.permission]`
+ documentField = aql`rolePriority[DOCUMENT(affiliations, ${afterId}).permission]`
}
afterTemplate = aql`
@@ -48,9 +54,15 @@ export const loadAffiliationConnectionsByOrgId =
let affiliationField, documentField
/* istanbul ignore else */
- if (orderBy.field === 'user-username') {
+ if (orderBy.field === 'username') {
affiliationField = aql`DOCUMENT(users, PARSE_IDENTIFIER(affiliation._to).key).userName`
documentField = aql`DOCUMENT(users, PARSE_IDENTIFIER(DOCUMENT(affiliations, ${beforeId})._to).key).userName`
+ } else if (orderBy.field === 'display_name') {
+ affiliationField = aql`DOCUMENT(users, PARSE_IDENTIFIER(affiliation._to).key).displayName`
+ documentField = aql`DOCUMENT(users, PARSE_IDENTIFIER(DOCUMENT(affiliations, ${beforeId})._to).key).displayName`
+ } else if (orderBy.field === 'permission') {
+ affiliationField = aql`rolePriority[affiliation.permission]`
+ documentField = aql`rolePriority[DOCUMENT(affiliations, ${beforeId}).permission]`
}
beforeTemplate = aql`
@@ -124,10 +136,18 @@ export const loadAffiliationConnectionsByOrgId =
let affField, hasNextPageDocument, hasPreviousPageDocument
/* istanbul ignore else */
- if (orderBy.field === 'user-username') {
+ if (orderBy.field === 'username') {
affField = aql`DOCUMENT(users, PARSE_IDENTIFIER(affiliation._to).key).userName`
hasNextPageDocument = aql`DOCUMENT(users, PARSE_IDENTIFIER(LAST(retrievedAffiliations)._to).key).userName`
hasPreviousPageDocument = aql`DOCUMENT(users, PARSE_IDENTIFIER(FIRST(retrievedAffiliations)._to).key).userName`
+ } else if (orderBy.field === 'display_name') {
+ affField = aql`DOCUMENT(users, PARSE_IDENTIFIER(affiliation._to).key).displayName`
+ hasNextPageDocument = aql`DOCUMENT(users, PARSE_IDENTIFIER(LAST(retrievedAffiliations)._to).key).displayName`
+ hasPreviousPageDocument = aql`DOCUMENT(users, PARSE_IDENTIFIER(FIRST(retrievedAffiliations)._to).key).displayName`
+ } else if (orderBy.field === 'permission') {
+ affField = aql`rolePriority[affiliation.permission]`
+ hasNextPageDocument = aql`rolePriority[LAST(retrievedAffiliations).permission]`
+ hasPreviousPageDocument = aql`FIRST(retrievedAffiliations).permission`
}
hasNextPageFilter = aql`
@@ -146,8 +166,12 @@ export const loadAffiliationConnectionsByOrgId =
let sortByField = aql``
if (typeof orderBy !== 'undefined') {
/* istanbul ignore else */
- if (orderBy.field === 'user-username') {
+ if (orderBy.field === 'username') {
sortByField = aql`DOCUMENT(users, PARSE_IDENTIFIER(affiliation._to).key).userName ${orderBy.direction},`
+ } else if (orderBy.field === 'display_name') {
+ sortByField = aql`DOCUMENT(users, PARSE_IDENTIFIER(affiliation._to).key).displayName ${orderBy.direction},`
+ } else if (orderBy.field === 'permission') {
+ sortByField = aql`rolePriority[affiliation.permission] ${orderBy.direction},`
}
}
@@ -196,6 +220,14 @@ export const loadAffiliationConnectionsByOrgId =
RETURN e._key
)
+ LET rolePriority = {
+ "pending": 0,
+ "owner": 1,
+ "super_admin": 2,
+ "admin": 3,
+ "user": 4
+ }
+
LET retrievedAffiliations = (
FOR affiliation IN affiliations
FILTER affiliation._key IN affiliationKeys
diff --git a/api/src/enums/affiliation-user-order-field.js b/api/src/enums/affiliation-user-order-field.js
index 6efe1b53ce..c7cc3a41fe 100644
--- a/api/src/enums/affiliation-user-order-field.js
+++ b/api/src/enums/affiliation-user-order-field.js
@@ -1,28 +1,20 @@
-import {GraphQLEnumType} from 'graphql'
+import { GraphQLEnumType } from 'graphql'
export const AffiliationUserOrderField = new GraphQLEnumType({
name: 'AffiliationUserOrderField',
description: 'Properties by which affiliation connections can be ordered.',
values: {
- USER_USERNAME: {
- value: 'user-username',
- description: 'Order affiliation edges by username.',
+ USERNAME: {
+ value: 'username',
+ description: 'Order affiliations by username.',
},
- USER_DISPLAYNAME: {
- value: 'user-displayName',
- description: 'Order affiliation edges by displayName.',
+ DISPLAY_NAME: {
+ value: 'display_name',
+ description: 'Order affiliations by display name.',
},
- USER_EMAIL_VALIDATED: {
- value: 'user-emailValidated',
- description: 'Order affiliation edges by user verification status.',
- },
- USER_INSIDER: {
- value: 'user-insider',
- description: 'Order affiliation edges by user insider status.',
- },
- USER_AFFILIATIONS_COUNT: {
- value: 'user-affiliations-totalCount',
- description: 'Order affiliation edges by amount of total affiliations.',
+ PERMISSION: {
+ value: 'permission',
+ description: 'Order affiliations by permission.',
},
},
})
diff --git a/api/src/enums/index.js b/api/src/enums/index.js
index 6f478eefda..41ea86414b 100644
--- a/api/src/enums/index.js
+++ b/api/src/enums/index.js
@@ -1,5 +1,6 @@
export * from './affiliation-org-order-field'
export * from './affiliation-user-order-field'
+export * from './user-order-field'
export * from './dkim-order-field'
export * from './dkim-result-order-field'
export * from './dmarc-order-field'
diff --git a/api/src/enums/user-order-field.js b/api/src/enums/user-order-field.js
new file mode 100644
index 0000000000..e4f428e9cd
--- /dev/null
+++ b/api/src/enums/user-order-field.js
@@ -0,0 +1,28 @@
+import { GraphQLEnumType } from 'graphql'
+
+export const UserOrderField = new GraphQLEnumType({
+ name: 'UserOrderField',
+ description: 'Properties by which affiliation connections can be ordered.',
+ values: {
+ USER_USERNAME: {
+ value: 'user-username',
+ description: 'Order affiliation edges by username.',
+ },
+ USER_DISPLAYNAME: {
+ value: 'user-displayName',
+ description: 'Order affiliation edges by displayName.',
+ },
+ USER_EMAIL_VALIDATED: {
+ value: 'user-emailValidated',
+ description: 'Order affiliation edges by user verification status.',
+ },
+ USER_INSIDER: {
+ value: 'user-insider',
+ description: 'Order affiliation edges by user insider status.',
+ },
+ USER_AFFILIATIONS_COUNT: {
+ value: 'user-affiliations-totalCount',
+ description: 'Order affiliation edges by amount of total affiliations.',
+ },
+ },
+})
diff --git a/api/src/user/index.js b/api/src/user/index.js
index 1b5bd9dcd0..ee648b9915 100644
--- a/api/src/user/index.js
+++ b/api/src/user/index.js
@@ -3,3 +3,4 @@ export * from './mutations'
export * from './objects'
export * from './queries'
export * from './unions'
+export * from './inputs'
diff --git a/api/src/user/inputs/__tests__/user-order.test.js b/api/src/user/inputs/__tests__/user-order.test.js
new file mode 100644
index 0000000000..0bac20decf
--- /dev/null
+++ b/api/src/user/inputs/__tests__/user-order.test.js
@@ -0,0 +1,21 @@
+import { GraphQLNonNull } from 'graphql'
+
+import { userOrder } from '../user-order'
+import { OrderDirection, UserOrderField } from '../../../enums'
+
+describe('given the affiliationOrder input object', () => {
+ describe('testing fields', () => {
+ it('has a direction field', () => {
+ const demoType = userOrder.getFields()
+
+ expect(demoType).toHaveProperty('direction')
+ expect(demoType.direction.type).toMatchObject(new GraphQLNonNull(OrderDirection))
+ })
+ it('has a field field', () => {
+ const demoType = userOrder.getFields()
+
+ expect(demoType).toHaveProperty('field')
+ expect(demoType.field.type).toMatchObject(new GraphQLNonNull(UserOrderField))
+ })
+ })
+})
diff --git a/api/src/user/inputs/index.js b/api/src/user/inputs/index.js
new file mode 100644
index 0000000000..f474ae42b6
--- /dev/null
+++ b/api/src/user/inputs/index.js
@@ -0,0 +1 @@
+export * from './user-order'
diff --git a/api/src/user/inputs/user-order.js b/api/src/user/inputs/user-order.js
new file mode 100644
index 0000000000..ea691c7c6e
--- /dev/null
+++ b/api/src/user/inputs/user-order.js
@@ -0,0 +1,18 @@
+import { GraphQLInputObjectType, GraphQLNonNull } from 'graphql'
+
+import { OrderDirection, UserOrderField } from '../../enums'
+
+export const userOrder = new GraphQLInputObjectType({
+ name: 'UserOrder',
+ description: 'Ordering options for affiliation connections.',
+ fields: () => ({
+ field: {
+ type: new GraphQLNonNull(UserOrderField),
+ description: 'The field to order affiliations by.',
+ },
+ direction: {
+ type: new GraphQLNonNull(OrderDirection),
+ description: 'The ordering direction.',
+ },
+ }),
+})
diff --git a/api/src/user/queries/find-my-users.js b/api/src/user/queries/find-my-users.js
index 7272427ea1..38ae198971 100644
--- a/api/src/user/queries/find-my-users.js
+++ b/api/src/user/queries/find-my-users.js
@@ -1,15 +1,15 @@
-import {GraphQLString} from 'graphql'
-import {connectionArgs} from 'graphql-relay'
+import { GraphQLString } from 'graphql'
+import { connectionArgs } from 'graphql-relay'
-import {affiliationUserOrder} from '../../affiliation/inputs'
-import {userConnection} from '../objects/user-connection'
+import { userOrder } from '../../user/inputs'
+import { userConnection } from '../objects/user-connection'
export const findMyUsers = {
type: userConnection.connectionType,
description: 'Select users an admin has access to.',
args: {
orderBy: {
- type: affiliationUserOrder,
+ type: userOrder,
description: 'Ordering options for user affiliation',
},
search: {
@@ -23,20 +23,15 @@ export const findMyUsers = {
args,
{
userKey,
- auth: {
- checkSuperAdmin,
- userRequired,
- verifiedRequired,
- superAdminRequired,
- },
- loaders: {loadUserConnectionsByUserId},
+ auth: { checkSuperAdmin, userRequired, verifiedRequired, superAdminRequired },
+ loaders: { loadUserConnectionsByUserId },
},
) => {
const user = await userRequired()
- verifiedRequired({user})
+ verifiedRequired({ user })
const isSuperAdmin = await checkSuperAdmin()
- superAdminRequired({user, isSuperAdmin})
+ superAdminRequired({ user, isSuperAdmin })
const userConnections = await loadUserConnectionsByUserId({
isSuperAdmin,
diff --git a/frontend/mocking/faked_schema.js b/frontend/mocking/faked_schema.js
index f5578b4b79..c2a392d24a 100644
--- a/frontend/mocking/faked_schema.js
+++ b/frontend/mocking/faked_schema.js
@@ -324,7 +324,7 @@ export const getTypeNames = () => gql`
"""
Ordering options for user affiliation
"""
- orderBy: AffiliationUserOrder
+ orderBy: UserOrder
"""
String used to search for users.
@@ -2232,29 +2232,19 @@ export const getTypeNames = () => gql`
"""
enum AffiliationUserOrderField {
"""
- Order affiliation edges by username.
+ Order affiliations by username.
"""
- USER_USERNAME
+ USERNAME
"""
- Order affiliation edges by displayName.
- """
- USER_DISPLAYNAME
-
+ Order affiliations by display name.
"""
- Order affiliation edges by user verification status.
- """
- USER_EMAIL_VALIDATED
-
- """
- Order affiliation edges by user insider status.
- """
- USER_INSIDER
+ DISPLAY_NAME
"""
- Order affiliation edges by amount of total affiliations.
+ Order affiliations by permission.
"""
- USER_AFFILIATIONS_COUNT
+ PERMISSION
}
"""
@@ -4388,6 +4378,51 @@ export const getTypeNames = () => gql`
cursor: String!
}
+ """
+ Ordering options for affiliation connections.
+ """
+ input UserOrder {
+ """
+ The field to order affiliations by.
+ """
+ field: UserOrderField!
+
+ """
+ The ordering direction.
+ """
+ direction: OrderDirection!
+ }
+
+ """
+ Properties by which affiliation connections can be ordered.
+ """
+ enum UserOrderField {
+ """
+ Order affiliation edges by username.
+ """
+ USER_USERNAME
+
+ """
+ Order affiliation edges by displayName.
+ """
+ USER_DISPLAYNAME
+
+ """
+ Order affiliation edges by user verification status.
+ """
+ USER_EMAIL_VALIDATED
+
+ """
+ Order affiliation edges by user insider status.
+ """
+ USER_INSIDER
+
+ """
+ Order affiliation edges by amount of total affiliations.
+ """
+ USER_AFFILIATIONS_COUNT
+ }
+
"""
Domain object containing information for a given domain.
"""
diff --git a/frontend/src/admin/UserList.js b/frontend/src/admin/UserList.js
index 65586c43c6..41e59e72e5 100644
--- a/frontend/src/admin/UserList.js
+++ b/frontend/src/admin/UserList.js
@@ -51,7 +51,12 @@ export function UserList({ includePending, permission, orgSlug, orgId }) {
usePaginatedCollection({
fetchForward: FORWARD,
recordsPerPage: usersPerPage,
- variables: { orgSlug, search: debouncedSearchUser, includePending },
+ variables: {
+ orgSlug,
+ search: debouncedSearchUser,
+ includePending,
+ orderBy: { field: 'PERMISSION', direction: 'ASC' },
+ },
relayRoot: 'findOrganizationBySlug.affiliations',
fetchPolicy: 'cache-and-network',
nextFetchPolicy: 'cache-first',
diff --git a/frontend/src/admin/__tests__/AdminPage.test.js b/frontend/src/admin/__tests__/AdminPage.test.js
index 503e31feea..1d4feb70a1 100644
--- a/frontend/src/admin/__tests__/AdminPage.test.js
+++ b/frontend/src/admin/__tests__/AdminPage.test.js
@@ -290,7 +290,13 @@ function mocks() {
{
request: {
query: PAGINATED_ORG_AFFILIATIONS_ADMIN_PAGE,
- variables: { orgSlug: 'Wolf-Group', first: 20, search: '', includePending: true },
+ variables: {
+ orgSlug: 'Wolf-Group',
+ first: 20,
+ search: '',
+ includePending: true,
+ orderBy: { field: 'PERMISSION', direction: 'ASC' },
+ },
},
result: {
data: {
diff --git a/frontend/src/admin/__tests__/UserList.test.js b/frontend/src/admin/__tests__/UserList.test.js
index 8cf2f83397..0a79d9f4d9 100644
--- a/frontend/src/admin/__tests__/UserList.test.js
+++ b/frontend/src/admin/__tests__/UserList.test.js
@@ -30,14 +30,26 @@ const successMocks = [
{
request: {
query: FORWARD,
- variables: { first: 20, orgSlug: 'test-org.slug', search: '', includePending: true },
+ variables: {
+ first: 20,
+ orgSlug: 'test-org.slug',
+ search: '',
+ includePending: true,
+ orderBy: { direction: 'ASC', field: 'PERMISSION' },
+ },
},
result: { data: rawOrgUserListData },
},
{
request: {
query: FORWARD,
- variables: { first: 20, orgSlug: 'test-org.slug', search: '', includePending: true },
+ variables: {
+ first: 20,
+ orgSlug: 'test-org.slug',
+ search: '',
+ includePending: true,
+ orderBy: { direction: 'ASC', field: 'PERMISSION' },
+ },
},
result: { data: rawOrgUserListData },
},
diff --git a/frontend/src/components/SearchBox.js b/frontend/src/components/SearchBox.js
index 68f343bc4c..7e2b2114ba 100644
--- a/frontend/src/components/SearchBox.js
+++ b/frontend/src/components/SearchBox.js
@@ -60,7 +60,7 @@ export function SearchBox({
/>
-
+ {onToggle && }
Sort by:
diff --git a/frontend/src/graphql/queries.js b/frontend/src/graphql/queries.js
index 50d4f18e1f..9106235bca 100644
--- a/frontend/src/graphql/queries.js
+++ b/frontend/src/graphql/queries.js
@@ -618,10 +618,10 @@ export const PAGINATED_ORG_DOMAINS = gql`
`
export const PAGINATED_ORG_AFFILIATIONS = gql`
- query OrgUsersNext($slug: Slug!, $first: Int, $after: String) {
+ query OrgUsersNext($slug: Slug!, $first: Int, $after: String, $search: String, $orderBy: AffiliationUserOrder) {
findOrganizationBySlug(orgSlug: $slug) {
id
- affiliations(first: $first, after: $after) {
+ affiliations(first: $first, after: $after, search: $search, orderBy: $orderBy) {
pageInfo {
hasNextPage
endCursor
@@ -957,7 +957,7 @@ export const IS_LOGIN_REQUIRED = gql`
`
export const FIND_MY_USERS = gql`
- query FindMyUsers($first: Int, $after: String, $orderBy: AffiliationUserOrder, $search: String) {
+ query FindMyUsers($first: Int, $after: String, $orderBy: UserOrder, $search: String) {
findMyUsers(orderBy: $orderBy, first: $first, after: $after, search: $search) {
edges {
cursor
diff --git a/frontend/src/locales/en.po b/frontend/src/locales/en.po
index b12d594941..a6e8376850 100644
--- a/frontend/src/locales/en.po
+++ b/frontend/src/locales/en.po
@@ -224,7 +224,7 @@ msgstr "Admin Profile"
msgid "Admin accounts must activate a multi-factor authentication option."
msgstr "Admin accounts must activate a multi-factor authentication option."
-#: src/app/ReadGuidancePage.js:342
+#: src/app/ReadGuidancePage.js:332
msgid "Admins of an organization can add domains to their list."
msgstr "Admins of an organization can add domains to their list."
@@ -261,7 +261,7 @@ msgstr "An error has occurred."
msgid "An error occurred when fetching this organization's information"
msgstr "An error occurred when fetching this organization's information"
-#: src/domains/DomainsPage.js:41
+#: src/domains/DomainsPage.js:43
msgid "An error occurred when you attempted to download all domain statuses."
msgstr "An error occurred when you attempted to download all domain statuses."
@@ -345,7 +345,7 @@ msgstr "An error occurred while verifying your phone number."
msgid "An error occurred."
msgstr "An error occurred."
-#: src/app/ReadGuidancePage.js:420
+#: src/app/ReadGuidancePage.js:410
msgid "Another possibility is that your domain is not internet facing."
msgstr "Another possibility is that your domain is not internet facing."
@@ -415,7 +415,7 @@ msgstr "Authenticate"
msgid "BETA"
msgstr "BETA"
-#: src/domains/DomainsPage.js:203
+#: src/domains/DomainsPage.js:205
#: src/organizationDetails/OrganizationDomains.js:343
msgid "BLOCKED"
msgstr "BLOCKED"
@@ -456,7 +456,7 @@ msgstr "Blocked"
msgid "By accessing, browsing, or using our website or our services, you acknowledge that you have read, understood, and agree to be bound by these Terms and Conditions, and to comply with all applicable laws and regulations. We recommend that you review all Terms and Conditions periodically to understand any updates or changes that may affect you. If you do not agree to these Terms and Conditions, please refrain from using our website, products and services."
msgstr "By accessing, browsing, or using our website or our services, you acknowledge that you have read, understood, and agree to be bound by these Terms and Conditions, and to comply with all applicable laws and regulations. We recommend that you review all Terms and Conditions periodically to understand any updates or changes that may affect you. If you do not agree to these Terms and Conditions, please refrain from using our website, products and services."
-#: src/app/ReadGuidancePage.js:410
+#: src/app/ReadGuidancePage.js:400
msgid "By default our scanners check domains ending in “.gc.ca” and “.canada.ca”. If your domain is outside that set, you need to contact us to let us know. Send an email to <0>TBS Cyber Security0> to confirm your ownership of that domain."
msgstr "By default our scanners check domains ending in “.gc.ca” and “.canada.ca”. If your domain is outside that set, you need to contact us to let us know. Send an email to <0>TBS Cyber Security0> to confirm your ownership of that domain."
@@ -469,10 +469,13 @@ msgstr "By default our scanners check domains ending in “.gc.ca” and “.can
#~ msgstr "CCS Injection Vulnerability:"
#: src/app/SlideMessage.js:55
-#: src/landing/LandingPage.js:28
msgid "Canadians rely on the Government of Canada to provide secure digital services. The Policy on Service and Digital guides government online services to adopt good security practices for practices outlined in the <0>email0> and <1>web1> services. Track how government sites are becoming more secure."
msgstr "Canadians rely on the Government of Canada to provide secure digital services. The Policy on Service and Digital guides government online services to adopt good security practices for practices outlined in the <0>email0> and <1>web1> services. Track how government sites are becoming more secure."
+#: src/landing/LandingPage.js:29
+msgid "Canadians rely on the Government of Canada to provide secure digital services. The Policy on Service and Digital guides government online services to adopt good security practices for practices outlined in the <0>email<1/>0> and <2>web<3/>2> services. Track how government sites are becoming more secure."
+msgstr "Canadians rely on the Government of Canada to provide secure digital services. The Policy on Service and Digital guides government online services to adopt good security practices for practices outlined in the <0>email<1/>0> and <2>web<3/>2> services. Track how government sites are becoming more secure."
+
#: src/admin/SuperAdminUserList.js:403
#: src/user/UserPage.js:260
msgid "Cancel"
@@ -487,12 +490,12 @@ msgid "Certificate chain info could not be found during the scan."
msgstr "Certificate chain info could not be found during the scan."
#: src/domains/DomainCard.js:193
-#: src/domains/DomainsPage.js:187
+#: src/domains/DomainsPage.js:189
#: src/organizationDetails/OrganizationDomains.js:316
msgid "Certificates"
msgstr "Certificates"
-#: src/domains/DomainsPage.js:79
+#: src/domains/DomainsPage.js:81
#: src/organizationDetails/OrganizationDomains.js:97
msgid "Certificates Status"
msgstr "Certificates Status"
@@ -543,13 +546,13 @@ msgid "Check your associated Tracker email for the verification link"
msgstr "Check your associated Tracker email for the verification link"
#: src/domains/DomainCard.js:195
-#: src/domains/DomainsPage.js:189
+#: src/domains/DomainsPage.js:191
#: src/guidance/WebTLSResults.js:106
#: src/organizationDetails/OrganizationDomains.js:318
msgid "Ciphers"
msgstr "Ciphers"
-#: src/domains/DomainsPage.js:80
+#: src/domains/DomainsPage.js:82
#: src/organizationDetails/OrganizationDomains.js:98
msgid "Ciphers Status"
msgstr "Ciphers Status"
@@ -654,7 +657,7 @@ msgstr "Confirm subdomain discovery for <0>{domainUrl}0>:"
msgid "Connection Results"
msgstr "Connection Results"
-#: src/app/ReadGuidancePage.js:180
+#: src/app/ReadGuidancePage.js:170
msgid "Consider prioritizing websites and web services that exchange Protected data."
msgstr "Consider prioritizing websites and web services that exchange Protected data."
@@ -748,19 +751,19 @@ msgstr "Current Password:"
#~ msgstr "Current Phone Number:"
#: src/domains/DomainCard.js:196
-#: src/domains/DomainsPage.js:190
+#: src/domains/DomainsPage.js:192
#: src/guidance/WebTLSResults.js:156
#: src/organizationDetails/OrganizationDomains.js:319
#: src/organizationDetails/OrganizationDomains.js:377
msgid "Curves"
msgstr "Curves"
-#: src/domains/DomainsPage.js:81
+#: src/domains/DomainsPage.js:83
#: src/organizationDetails/OrganizationDomains.js:99
msgid "Curves Status"
msgstr "Curves Status"
-#: src/domains/DomainsPage.js:194
+#: src/domains/DomainsPage.js:196
#: src/organizationDetails/OrganizationDomains.js:323
msgid "DKIM"
msgstr "DKIM"
@@ -799,7 +802,7 @@ msgstr "DKIM Selectors"
msgid "DKIM Selectors:"
msgstr "DKIM Selectors:"
-#: src/domains/DomainsPage.js:84
+#: src/domains/DomainsPage.js:86
#: src/organizationDetails/OrganizationDomains.js:102
msgid "DKIM Status"
msgstr "DKIM Status"
@@ -816,7 +819,7 @@ msgstr "DKIM record and keys are deployed and valid"
#~ msgid "DKIM record could not be found for this selector."
#~ msgstr "DKIM record could not be found for this selector."
-#: src/domains/DomainsPage.js:198
+#: src/domains/DomainsPage.js:200
#: src/organizationDetails/OrganizationDomains.js:327
msgid "DMARC"
msgstr "DMARC"
@@ -863,7 +866,7 @@ msgstr "DMARC Report"
msgid "DMARC Report for {domainSlug}"
msgstr "DMARC Report for {domainSlug}"
-#: src/domains/DomainsPage.js:85
+#: src/domains/DomainsPage.js:87
#: src/organizationDetails/OrganizationDomains.js:103
msgid "DMARC Status"
msgstr "DMARC Status"
@@ -971,7 +974,7 @@ msgstr "Details for a given guidance tag can be found on the wiki, see below."
#~ msgid "Develop a prioritized schedule to address any failings. Consider prioritizing websites and web services that exchange Protected data."
#~ msgstr "Develop a prioritized schedule to address any failings. Consider prioritizing websites and web services that exchange Protected data."
-#: src/app/ReadGuidancePage.js:177
+#: src/app/ReadGuidancePage.js:167
msgid "Develop a prioritized schedule to address any failings:"
msgstr "Develop a prioritized schedule to address any failings:"
@@ -1004,8 +1007,8 @@ msgstr "Disposition"
#: src/admin/AuditLogTable.js:67
#: src/dmarc/DmarcByDomainPage.js:106
#: src/dmarc/DmarcByDomainPage.js:272
-#: src/domains/DomainsPage.js:76
-#: src/domains/DomainsPage.js:180
+#: src/domains/DomainsPage.js:78
+#: src/domains/DomainsPage.js:182
#: src/organizationDetails/OrganizationDomains.js:309
#: src/organizationDetails/OrganizationDomains.js:364
msgid "Domain"
@@ -1015,7 +1018,7 @@ msgstr "Domain"
msgid "Domain List"
msgstr "Domain List"
-#: src/app/ReadGuidancePage.js:481
+#: src/app/ReadGuidancePage.js:471
msgid "Domain Name System (DNS) Services Management Configuration Requirements - Canada.ca"
msgstr "Domain Name System (DNS) Services Management Configuration Requirements - Canada.ca"
@@ -1065,8 +1068,8 @@ msgstr "Domain:"
#: src/app/App.js:136
#: src/app/App.js:247
#: src/app/FloatingMenu.js:116
-#: src/domains/DomainsPage.js:90
-#: src/domains/DomainsPage.js:140
+#: src/domains/DomainsPage.js:92
+#: src/domains/DomainsPage.js:142
#: src/organizationDetails/OrganizationDetails.js:132
#: src/organizationDetails/OrganizationDomains.js:124
#: src/summaries/Doughnut.js:49
@@ -1075,7 +1078,7 @@ msgstr "Domain:"
msgid "Domains"
msgstr "Domains"
-#: src/app/ReadGuidancePage.js:121
+#: src/app/ReadGuidancePage.js:111
msgid "Domains are only to be removed from your list when 1) they no longer exist, meaning they are deleted from the DNS returning an error code of NX DOMAIN (domain name does not exist); or 2) if you have identified that they do not belong to your organization."
msgstr "Domains are only to be removed from your list when 1) they no longer exist, meaning they are deleted from the DNS returning an error code of NX DOMAIN (domain name does not exist); or 2) if you have identified that they do not belong to your organization."
@@ -1142,6 +1145,7 @@ msgstr "Edit User"
#: src/admin/SuperAdminUserList.js:148
#: src/components/fields/EmailField.js:15
#: src/domains/DomainCard.js:201
+#: src/organizationDetails/OrganizationAffiliations.js:45
#: src/user/EditableUserTFAMethod.js:166
msgid "Email"
msgstr "Email"
@@ -1151,7 +1155,7 @@ msgstr "Email"
msgid "Email Guidance"
msgstr "Email Guidance"
-#: src/app/ReadGuidancePage.js:493
+#: src/app/ReadGuidancePage.js:483
msgid "Email Management Services Configuration Requirements - Canada.ca"
msgstr "Email Management Services Configuration Requirements - Canada.ca"
@@ -1159,7 +1163,7 @@ msgstr "Email Management Services Configuration Requirements - Canada.ca"
msgid "Email Scan Results"
msgstr "Email Scan Results"
-#: src/app/ReadGuidancePage.js:270
+#: src/app/ReadGuidancePage.js:260
msgid "Email Security:"
msgstr "Email Security:"
@@ -1382,7 +1386,7 @@ msgstr "Filters:"
#~ msgid "For any questions or concerns related to the ITPIN and related implementation guidance, contact TBS Cybersecurity."
#~ msgstr "For any questions or concerns related to the ITPIN and related implementation guidance, contact TBS Cybersecurity."
-#: src/app/ReadGuidancePage.js:526
+#: src/app/ReadGuidancePage.js:516
msgid "For any questions or concerns, please contact <0>TBS Cyber Security0> ."
msgstr "For any questions or concerns, please contact <0>TBS Cyber Security0> ."
@@ -1431,7 +1435,7 @@ msgstr "Forgot your password?"
msgid "French"
msgstr "French"
-#: src/app/ReadGuidancePage.js:317
+#: src/app/ReadGuidancePage.js:307
msgid "Frequently Asked Questions"
msgstr "Frequently Asked Questions"
@@ -1475,7 +1479,7 @@ msgstr "Getting Started"
msgid "Getting an Account:"
msgstr "Getting an Account:"
-#: src/domains/DomainsPage.js:151
+#: src/domains/DomainsPage.js:153
msgid "Getting domain statuses"
msgstr "Getting domain statuses"
@@ -1525,7 +1529,7 @@ msgid "HIDDEN"
msgstr "HIDDEN"
#: src/domains/DomainCard.js:192
-#: src/domains/DomainsPage.js:186
+#: src/domains/DomainsPage.js:188
#: src/organizationDetails/OrganizationDomains.js:315
msgid "HSTS"
msgstr "HSTS"
@@ -1550,7 +1554,7 @@ msgstr "HSTS Parsed"
msgid "HSTS Preloaded"
msgstr "HSTS Preloaded"
-#: src/domains/DomainsPage.js:78
+#: src/domains/DomainsPage.js:80
#: src/organizationDetails/OrganizationDomains.js:96
msgid "HSTS Status"
msgstr "HSTS Status"
@@ -1572,7 +1576,7 @@ msgid "HTTP Upgrades"
msgstr "HTTP Upgrades"
#: src/domains/DomainCard.js:191
-#: src/domains/DomainsPage.js:183
+#: src/domains/DomainsPage.js:185
#: src/organizationDetails/OrganizationDomains.js:312
msgid "HTTPS"
msgstr "HTTPS"
@@ -1602,7 +1606,7 @@ msgstr "HTTPS Live"
msgid "HTTPS Scan Complete"
msgstr "HTTPS Scan Complete"
-#: src/domains/DomainsPage.js:77
+#: src/domains/DomainsPage.js:79
#: src/organizationDetails/OrganizationDomains.js:95
msgid "HTTPS Status"
msgstr "HTTPS Status"
@@ -1678,7 +1682,7 @@ msgstr "Hostname Matches: {0}"
#~ msgid "Hostname Validated"
#~ msgstr "Hostname Validated"
-#: src/app/ReadGuidancePage.js:339
+#: src/app/ReadGuidancePage.js:329
msgid "How can I edit my domain list?"
msgstr "How can I edit my domain list?"
@@ -1729,7 +1733,7 @@ msgstr "Identify any current affiliated Tracker users within your organization a
#~ msgid "Identify resources required to act as central point(s) of contact with Treasury Board of Canada Secretariat (TBS). Share the contact list with <0>TBS Cyber Security0>, as required."
#~ msgstr "Identify resources required to act as central point(s) of contact with Treasury Board of Canada Secretariat (TBS). Share the contact list with <0>TBS Cyber Security0>, as required."
-#: src/app/ReadGuidancePage.js:130
+#: src/app/ReadGuidancePage.js:120
msgid "If a domain is no longer in use but still exists on the DNS, it is still vulnerable to email spoofing attacks, where an attacker can send an email that appears to be coming from your domain."
msgstr "If a domain is no longer in use but still exists on the DNS, it is still vulnerable to email spoofing attacks, where an attacker can send an email that appears to be coming from your domain."
@@ -1770,7 +1774,7 @@ msgstr "Immediately"
#~ msgid "Implementation"
#~ msgstr "Implementation"
-#: src/app/ReadGuidancePage.js:505
+#: src/app/ReadGuidancePage.js:495
msgid "Implementation guidance: email domain protection (ITSP.40.065 v1.1) - Canadian Centre for Cyber Security"
msgstr "Implementation guidance: email domain protection (ITSP.40.065 v1.1) - Canadian Centre for Cyber Security"
@@ -1778,11 +1782,11 @@ msgstr "Implementation guidance: email domain protection (ITSP.40.065 v1.1) - Ca
#~ msgid "Implementation:"
#~ msgstr "Implementation:"
-#: src/app/ReadGuidancePage.js:250
+#: src/app/ReadGuidancePage.js:240
msgid "Implementation: <0>Guidance on securely configuring network protocols (ITSP.40.062)0>"
msgstr "Implementation: <0>Guidance on securely configuring network protocols (ITSP.40.062)0>"
-#: src/app/ReadGuidancePage.js:293
+#: src/app/ReadGuidancePage.js:283
msgid "Implementation: <0>Implementation guidance: email domain protection (ITSP.40.065 v1.1)0>"
msgstr "Implementation: <0>Implementation guidance: email domain protection (ITSP.40.065 v1.1)0>"
@@ -1998,7 +2002,7 @@ msgstr "Invalid email"
msgid "Invite Requested"
msgstr "Invite Requested"
-#: src/admin/UserList.js:154
+#: src/admin/UserList.js:159
msgid "Invite User"
msgstr "Invite User"
@@ -2014,7 +2018,7 @@ msgstr "Is SPF aligned. Can be true or false."
msgid "Issuer:"
msgstr "Issuer:"
-#: src/app/ReadGuidancePage.js:324
+#: src/app/ReadGuidancePage.js:314
msgid "It is not clear to me why a domain has failed?"
msgstr "It is not clear to me why a domain has failed?"
@@ -2022,7 +2026,7 @@ msgstr "It is not clear to me why a domain has failed?"
#~ msgid "It is recommended that SSC partners contact their SSC Service Delivery Manager to discuss the departmental action plan and required steps to submit a request for change."
#~ msgstr "It is recommended that SSC partners contact their SSC Service Delivery Manager to discuss the departmental action plan and required steps to submit a request for change."
-#: src/app/ReadGuidancePage.js:186
+#: src/app/ReadGuidancePage.js:176
msgid "It is recommended that Shared Service Canada (SSC) partners contact their SSC Service Delivery Manager to discuss action plans and required steps to submit a request for change."
msgstr "It is recommended that Shared Service Canada (SSC) partners contact their SSC Service Delivery Manager to discuss action plans and required steps to submit a request for change."
@@ -2100,11 +2104,11 @@ msgstr "Let's get you set up so you can verify your account information and begi
msgid "Limitation of Liability"
msgstr "Limitation of Liability"
-#: src/app/ReadGuidancePage.js:207
+#: src/app/ReadGuidancePage.js:197
msgid "Links to Review:"
msgstr "Links to Review:"
-#: src/app/ReadGuidancePage.js:220
+#: src/app/ReadGuidancePage.js:210
msgid "List of guidance tags"
msgstr "List of guidance tags"
@@ -2173,7 +2177,7 @@ msgstr "Monitor DMARC reports;"
msgid "More details"
msgstr "More details"
-#: src/app/ReadGuidancePage.js:513
+#: src/app/ReadGuidancePage.js:503
msgid "Mozilla SSL Configuration Generator"
msgstr "Mozilla SSL Configuration Generator"
@@ -2199,12 +2203,13 @@ msgstr "Must Staple"
msgid "NEW"
msgstr "NEW"
-#: src/domains/DomainsPage.js:202
+#: src/domains/DomainsPage.js:204
msgid "NXDOMAIN"
msgstr "NXDOMAIN"
#: src/createOrganization/CreateOrganizationPage.js:173
#: src/createOrganization/CreateOrganizationPage.js:178
+#: src/organizationDetails/OrganizationAffiliations.js:46
#: src/organizations/Organizations.js:61
msgid "Name"
msgstr "Name"
@@ -2317,7 +2322,7 @@ msgstr "No"
#~ msgstr "No DMARC phase information available for this organization."
#: src/admin/AdminDomains.js:256
-#: src/domains/DomainsPage.js:97
+#: src/domains/DomainsPage.js:99
#: src/organizationDetails/OrganizationDomains.js:249
msgid "No Domains"
msgstr "No Domains"
@@ -2330,7 +2335,7 @@ msgstr "No Domains"
msgid "No Organizations"
msgstr "No Organizations"
-#: src/organizationDetails/OrganizationAffiliations.js:43
+#: src/organizationDetails/OrganizationAffiliations.js:59
msgid "No Users"
msgstr "No Users"
@@ -2362,12 +2367,12 @@ msgstr "No data for the Fully Aligned by IP Address table"
msgid "No data for the SPF Failures by IP Address table"
msgstr "No data for the SPF Failures by IP Address table"
-#: src/domains/DomainsPage.js:161
-#: src/domains/DomainsPage.js:169
+#: src/domains/DomainsPage.js:163
+#: src/domains/DomainsPage.js:171
msgid "No data found"
msgstr "No data found"
-#: src/domains/DomainsPage.js:162
+#: src/domains/DomainsPage.js:164
msgid "No data found when retrieving all domain statuses."
msgstr "No data found when retrieving all domain statuses."
@@ -2396,7 +2401,7 @@ msgid "No scan data is currently available for this service. You may request a s
msgstr "No scan data is currently available for this service. You may request a scan using the refresh button, or wait up to 24 hours for data to refresh."
#: src/admin/SuperAdminUserList.js:161
-#: src/admin/UserList.js:68
+#: src/admin/UserList.js:73
msgid "No users"
msgstr "No users"
@@ -2471,7 +2476,7 @@ msgstr "OWNER"
#~ msgid "Obtain certificates from a GC-approved certificate source as outlined in the Recommendations for TLS Server Certificates for GC Public Facing Web Services"
#~ msgstr "Obtain certificates from a GC-approved certificate source as outlined in the Recommendations for TLS Server Certificates for GC Public Facing Web Services"
-#: src/app/ReadGuidancePage.js:192
+#: src/app/ReadGuidancePage.js:182
msgid "Obtain certificates from a GC-approved certificate source as outlined in the Recommendations for TLS Server Certificates for GC public facing web services"
msgstr "Obtain certificates from a GC-approved certificate source as outlined in the Recommendations for TLS Server Certificates for GC public facing web services"
@@ -2479,7 +2484,7 @@ msgstr "Obtain certificates from a GC-approved certificate source as outlined in
#~ msgid "Obtain the configuration guidance for the appropriate endpoints (e.g. web server, network/security appliances, etc.) and implement recommended configurations to support HTTPS."
#~ msgstr "Obtain the configuration guidance for the appropriate endpoints (e.g. web server, network/security appliances, etc.) and implement recommended configurations to support HTTPS."
-#: src/app/ReadGuidancePage.js:198
+#: src/app/ReadGuidancePage.js:188
msgid "Obtain the configuration guidance for the appropriate endpoints (e.g., web server, network/security appliances, etc.) and implement recommended configurations."
msgstr "Obtain the configuration guidance for the appropriate endpoints (e.g., web server, network/security appliances, etc.) and implement recommended configurations."
@@ -2496,11 +2501,11 @@ msgstr "Old Value:"
msgid "Once access is given to your department by the TBS Cyber team, they will be able to invite and manage other users within the organization and manage the domain list."
msgstr "Once access is given to your department by the TBS Cyber team, they will be able to invite and manage other users within the organization and manage the domain list."
-#: src/app/ReadGuidancePage.js:345
+#: src/app/ReadGuidancePage.js:335
msgid "Only <0>TBS Cyber Security0> can remove domains from your organization. Domains are only to be removed from your list when 1) they no longer exist, meaning they are deleted from the DNS returning an error code of NX DOMAIN (domain name does not exist); or 2) if you have identified that they do not belong to your organization."
msgstr "Only <0>TBS Cyber Security0> can remove domains from your organization. Domains are only to be removed from your list when 1) they no longer exist, meaning they are deleted from the DNS returning an error code of NX DOMAIN (domain name does not exist); or 2) if you have identified that they do not belong to your organization."
-#: src/app/ReadGuidancePage.js:429
+#: src/app/ReadGuidancePage.js:419
msgid "Options include contacting the <0>SSC WebSSL services team0> and/or using <1>Let's Encrypt1>. For more information, please refer to the guidance on <2>Recommendations for TLS Server Certificates2>."
msgstr "Options include contacting the <0>SSC WebSSL services team0> and/or using <1>Let's Encrypt1>. For more information, please refer to the guidance on <2>Recommendations for TLS Server Certificates2>."
@@ -2694,7 +2699,7 @@ msgstr "Please allow up to 24 hours for summaries to reflect any changes."
msgid "Please choose your preferred language"
msgstr "Please choose your preferred language"
-#: src/app/ReadGuidancePage.js:327
+#: src/app/ReadGuidancePage.js:317
msgid "Please contact <0>TBS Cyber Security0> for help."
msgstr "Please contact <0>TBS Cyber Security0> for help."
@@ -2781,19 +2786,19 @@ msgstr "Privacy Notice Statement"
msgid "Prod"
msgstr "Prod"
-#: src/app/ReadGuidancePage.js:518
+#: src/app/ReadGuidancePage.js:508
msgid "Protect domains that do not send email - GOV.UK (www.gov.uk)"
msgstr "Protect domains that do not send email - GOV.UK (www.gov.uk)"
#: src/domains/DomainCard.js:194
-#: src/domains/DomainsPage.js:188
+#: src/domains/DomainsPage.js:190
#: src/guidance/WebTLSResults.js:53
#: src/organizationDetails/OrganizationDomains.js:317
#: src/organizationDetails/OrganizationDomains.js:378
msgid "Protocols"
msgstr "Protocols"
-#: src/domains/DomainsPage.js:82
+#: src/domains/DomainsPage.js:84
#: src/organizationDetails/OrganizationDomains.js:100
msgid "Protocols Status"
msgstr "Protocols Status"
@@ -2859,7 +2864,7 @@ msgstr "Received Chain Has Valid Order"
msgid "Record:"
msgstr "Record:"
-#: src/app/ReadGuidancePage.js:470
+#: src/app/ReadGuidancePage.js:460
msgid "References:"
msgstr "References:"
@@ -2913,7 +2918,7 @@ msgstr "Request Invite"
msgid "Request a domain to be scanned:"
msgstr "Request a domain to be scanned:"
-#: src/domains/DomainsPage.js:152
+#: src/domains/DomainsPage.js:154
msgid "Request successfully sent to get all domain statuses - this may take a minute."
msgstr "Request successfully sent to get all domain statuses - this may take a minute."
@@ -2929,11 +2934,11 @@ msgstr "Requested subdomain scan"
#~ msgid "Requests for updates can be sent directly to <0>TBS Cyber Security0>."
#~ msgstr "Requests for updates can be sent directly to <0>TBS Cyber Security0>."
-#: src/app/ReadGuidancePage.js:275
+#: src/app/ReadGuidancePage.js:265
msgid "Requirements: <0>Email Management Services Configuration Requirements0>"
msgstr "Requirements: <0>Email Management Services Configuration Requirements0>"
-#: src/app/ReadGuidancePage.js:232
+#: src/app/ReadGuidancePage.js:222
msgid "Requirements: <0>Web Sites and Services Management Configuration Requirements0>"
msgstr "Requirements: <0>Web Sites and Services Management Configuration Requirements0>"
@@ -2980,6 +2985,10 @@ msgstr "Results for scans of web technologies (TLS, HTTPS)."
msgid "Revoked:"
msgstr "Revoked:"
+#: src/organizationDetails/OrganizationAffiliations.js:47
+msgid "Role"
+msgstr "Role"
+
#: src/admin/UserListModal.js:106
msgid "Role updated"
msgstr "Role updated"
@@ -2997,12 +3006,12 @@ msgstr "Rotate DKIM keys annually."
msgid "SAN List:"
msgstr "SAN List:"
-#: src/domains/DomainsPage.js:208
+#: src/domains/DomainsPage.js:210
#: src/organizationDetails/OrganizationDomains.js:348
msgid "SCAN PENDING"
msgstr "SCAN PENDING"
-#: src/domains/DomainsPage.js:192
+#: src/domains/DomainsPage.js:194
#: src/organizationDetails/OrganizationDomains.js:321
msgid "SPF"
msgstr "SPF"
@@ -3029,7 +3038,7 @@ msgstr "SPF Failures by IP Address"
msgid "SPF Results"
msgstr "SPF Results"
-#: src/domains/DomainsPage.js:83
+#: src/domains/DomainsPage.js:85
#: src/organizationDetails/OrganizationDomains.js:101
msgid "SPF Status"
msgstr "SPF Status"
@@ -3127,7 +3136,7 @@ msgstr "Search by initiated by, resource name"
#: src/dmarc/DmarcByDomainPage.js:195
#: src/dmarc/DmarcByDomainPage.js:245
-#: src/domains/DomainsPage.js:226
+#: src/domains/DomainsPage.js:228
#: src/organizationDetails/OrganizationDomains.js:365
msgid "Search for a domain"
msgstr "Search for a domain"
@@ -3136,6 +3145,10 @@ msgstr "Search for a domain"
msgid "Search for a user (email)"
msgstr "Search for a user (email)"
+#: src/organizationDetails/OrganizationAffiliations.js:90
+msgid "Search for a user by email"
+msgstr "Search for a user by email"
+
#: src/admin/AuditLogTable.js:188
#~ msgid "Search for an activity"
#~ msgstr "Search for an activity"
@@ -3145,7 +3158,7 @@ msgid "Search for an organization"
msgstr "Search for an organization"
#: src/admin/AdminDomains.js:349
-#: src/admin/UserList.js:139
+#: src/admin/UserList.js:144
#: src/components/ReactTableGlobalFilter.js:36
#: src/components/SearchBox.js:44
msgid "Search:"
@@ -3263,7 +3276,7 @@ msgstr "Shows if the HTTPS endpoint downgrades to unsecured HTTP immediately, ev
msgid "Shows if the certificate bundle provided from the server included the root certificate."
msgstr "Shows if the certificate bundle provided from the server included the root certificate."
-#: src/domains/DomainsPage.js:187
+#: src/domains/DomainsPage.js:189
#: src/organizationDetails/OrganizationDomains.js:316
msgid "Shows if the domain has a valid SSL certificate."
msgstr "Shows if the domain has a valid SSL certificate."
@@ -3283,42 +3296,42 @@ msgstr "Shows if the domain has a valid SSL certificate."
#~ msgid "Shows if the domain is policy compliant."
#~ msgstr "Shows if the domain is policy compliant."
-#: src/domains/DomainsPage.js:195
+#: src/domains/DomainsPage.js:197
#: src/organizationDetails/OrganizationDomains.js:324
msgid "Shows if the domain meets the DomainKeys Identified Mail (DKIM) requirements."
msgstr "Shows if the domain meets the DomainKeys Identified Mail (DKIM) requirements."
-#: src/domains/DomainsPage.js:186
+#: src/domains/DomainsPage.js:188
#: src/organizationDetails/OrganizationDomains.js:315
msgid "Shows if the domain meets the HSTS requirements."
msgstr "Shows if the domain meets the HSTS requirements."
-#: src/domains/DomainsPage.js:184
+#: src/domains/DomainsPage.js:186
#: src/organizationDetails/OrganizationDomains.js:313
msgid "Shows if the domain meets the Hypertext Transfer Protocol Secure (HTTPS) requirements."
msgstr "Shows if the domain meets the Hypertext Transfer Protocol Secure (HTTPS) requirements."
-#: src/domains/DomainsPage.js:199
+#: src/domains/DomainsPage.js:201
#: src/organizationDetails/OrganizationDomains.js:328
msgid "Shows if the domain meets the Message Authentication, Reporting, and Conformance (DMARC) requirements."
msgstr "Shows if the domain meets the Message Authentication, Reporting, and Conformance (DMARC) requirements."
-#: src/domains/DomainsPage.js:192
+#: src/domains/DomainsPage.js:194
#: src/organizationDetails/OrganizationDomains.js:321
msgid "Shows if the domain meets the Sender Policy Framework (SPF) requirements."
msgstr "Shows if the domain meets the Sender Policy Framework (SPF) requirements."
-#: src/domains/DomainsPage.js:188
+#: src/domains/DomainsPage.js:190
#: src/organizationDetails/OrganizationDomains.js:317
msgid "Shows if the domain uses acceptable protocols."
msgstr "Shows if the domain uses acceptable protocols."
-#: src/domains/DomainsPage.js:189
+#: src/domains/DomainsPage.js:191
#: src/organizationDetails/OrganizationDomains.js:318
msgid "Shows if the domain uses only ciphers that are strong or acceptable."
msgstr "Shows if the domain uses only ciphers that are strong or acceptable."
-#: src/domains/DomainsPage.js:190
+#: src/domains/DomainsPage.js:192
#: src/organizationDetails/OrganizationDomains.js:319
msgid "Shows if the domain uses only curves that are strong or acceptable."
msgstr "Shows if the domain uses only curves that are strong or acceptable."
@@ -3605,22 +3618,22 @@ msgstr "Tag used to show domains that are not active."
msgid "Tag used to show domains that are out of the organization's scope."
msgstr "Tag used to show domains that are out of the organization's scope."
-#: src/domains/DomainsPage.js:203
+#: src/domains/DomainsPage.js:205
#: src/organizationDetails/OrganizationDomains.js:343
msgid "Tag used to show domains that are possibly blocked by a firewall."
msgstr "Tag used to show domains that are possibly blocked by a firewall."
-#: src/domains/DomainsPage.js:208
+#: src/domains/DomainsPage.js:210
#: src/organizationDetails/OrganizationDomains.js:348
msgid "Tag used to show domains that have a pending web scan."
msgstr "Tag used to show domains that have a pending web scan."
-#: src/domains/DomainsPage.js:202
+#: src/domains/DomainsPage.js:204
#: src/organizationDetails/OrganizationDomains.js:342
msgid "Tag used to show domains that have an rcode status of NXDOMAIN"
msgstr "Tag used to show domains that have an rcode status of NXDOMAIN"
-#: src/domains/DomainsPage.js:206
+#: src/domains/DomainsPage.js:208
#: src/organizationDetails/OrganizationDomains.js:346
msgid "Tag used to show domains which may be from a wildcard subdomain (a wildcard resolver exists as a sibling)."
msgstr "Tag used to show domains which may be from a wildcard subdomain (a wildcard resolver exists as a sibling)."
@@ -3689,7 +3702,7 @@ msgid "The advice, guidance or services provided to you by TBS will be provided
msgstr "The advice, guidance or services provided to you by TBS will be provided on an “as-is” basis, without warranty or representation of any kind, and TBS will not be liable for any loss, liability, damage or cost, including loss of data or interruptions of business arising from the provision of such advice, guidance or services by Tracker. Consequently, TBS recommends, that the users exercise their own skill and care with respect to their use of the advice, guidance and services that Tracker provides."
#: src/dmarc/DmarcByDomainPage.js:272
-#: src/domains/DomainsPage.js:180
+#: src/domains/DomainsPage.js:182
#: src/organizationDetails/OrganizationDomains.js:309
msgid "The domain address."
msgstr "The domain address."
@@ -3714,15 +3727,15 @@ msgstr "The material available on this web site is subject to the"
msgid "The page you are looking for has moved or does not exist."
msgstr "The page you are looking for has moved or does not exist."
-#: src/app/ReadGuidancePage.js:156
+#: src/app/ReadGuidancePage.js:146
msgid "The percentage of internet-facing services that have a DMARC policy of at least p=”none”"
msgstr "The percentage of internet-facing services that have a DMARC policy of at least p=”none”"
-#: src/app/ReadGuidancePage.js:153
+#: src/app/ReadGuidancePage.js:143
msgid "The percentage of web-hosting services that strongly enforce HTTPS"
msgstr "The percentage of web-hosting services that strongly enforce HTTPS"
-#: src/app/ReadGuidancePage.js:461
+#: src/app/ReadGuidancePage.js:451
msgid "The process of detecting DKIM selectors is not immediate. It may take more than 24 hours for the selectors to appear in Tracker after the conditions are met."
msgstr "The process of detecting DKIM selectors is not immediate. It may take more than 24 hours for the selectors to appear in Tracker after the conditions are met."
@@ -3738,7 +3751,7 @@ msgstr "The results of DKIM verification of the message. Can be pass, fail, neut
msgid "The results of DKIM verification of the message. Can be pass, fail, neutral, temp-error, or perm-error."
msgstr "The results of DKIM verification of the message. Can be pass, fail, neutral, temp-error, or perm-error."
-#: src/app/ReadGuidancePage.js:149
+#: src/app/ReadGuidancePage.js:139
msgid "The summary cards show two metrics that Tracker scans:"
msgstr "The summary cards show two metrics that Tracker scans:"
@@ -3746,7 +3759,7 @@ msgstr "The summary cards show two metrics that Tracker scans:"
msgid "The user's role has been successfully updated"
msgstr "The user's role has been successfully updated"
-#: src/app/ReadGuidancePage.js:164
+#: src/app/ReadGuidancePage.js:154
msgid "These metrics are an important first step in securing your services and should be treated as minimum requirements. Further metrics are available in your organization's domain list."
msgstr "These metrics are an important first step in securing your services and should be treated as minimum requirements. Further metrics are available in your organization's domain list."
@@ -3848,8 +3861,8 @@ msgid "To maximize your account's security, <0>please activate a multi-factor au
msgstr "To maximize your account's security, <0>please activate a multi-factor authentication option0>."
#: src/app/ReadGuidancePage.js:111
-msgid "To receive DKIM scan results and guidance, you must add the DKIM selectors used for each domain. Organization administrators can add selectors in the “Admin Profile” by clicking the edit button of the domain for which they wish to add the selector. Common selectors to keep an for are “selector1”, and “selector2”."
-msgstr "To receive DKIM scan results and guidance, you must add the DKIM selectors used for each domain. Organization administrators can add selectors in the “Admin Profile” by clicking the edit button of the domain for which they wish to add the selector. Common selectors to keep an for are “selector1”, and “selector2”."
+#~ msgid "To receive DKIM scan results and guidance, you must add the DKIM selectors used for each domain. Organization administrators can add selectors in the “Admin Profile” by clicking the edit button of the domain for which they wish to add the selector. Common selectors to keep an for are “selector1”, and “selector2”."
+#~ msgstr "To receive DKIM scan results and guidance, you must add the DKIM selectors used for each domain. Organization administrators can add selectors in the “Admin Profile” by clicking the edit button of the domain for which they wish to add the selector. Common selectors to keep an for are “selector1”, and “selector2”."
#: src/app/App.js:87
msgid "To view detailed scan results and other functionality, <0>please affiliate with an organization0>."
@@ -3867,7 +3880,7 @@ msgstr "Total Messages"
#~ msgstr "Total users"
#: src/app/SlideMessage.js:51
-#: src/landing/LandingPage.js:24
+#: src/landing/LandingPage.js:25
msgid "Track Digital Security"
msgstr "Track Digital Security"
@@ -3884,7 +3897,7 @@ msgstr "Tracker HSTS and HTTPS results display incorrectly when a domain has a n
msgid "Tracker account has been successfully closed."
msgstr "Tracker account has been successfully closed."
-#: src/app/ReadGuidancePage.js:454
+#: src/app/ReadGuidancePage.js:444
msgid "Tracker automatically adds DKIM selectors using DMARC reports. Selectors will be added to Tracker when 1) the domain has a DMARC RUA record which includes \"mailto:dmarc@cyber.gc.ca\"; and 2) the selector has been used to sign an email and passed DKIM validation."
msgstr "Tracker automatically adds DKIM selectors using DMARC reports. Selectors will be added to Tracker when 1) the domain has a DMARC RUA record which includes \"mailto:dmarc@cyber.gc.ca\"; and 2) the selector has been used to sign an email and passed DKIM validation."
@@ -3908,11 +3921,11 @@ msgstr "Tracker logo outline"
msgid "Tracker logo text"
msgstr "Tracker logo text"
-#: src/app/ReadGuidancePage.js:171
+#: src/app/ReadGuidancePage.js:161
msgid "Tracker results refresh every 24 hours."
msgstr "Tracker results refresh every 24 hours."
-#: src/app/ReadGuidancePage.js:211
+#: src/app/ReadGuidancePage.js:201
msgid "Tracker:"
msgstr "Tracker:"
@@ -4071,7 +4084,7 @@ msgstr "Unable to update your phone number, please try again."
msgid "Unable to verify your phone number, please try again."
msgstr "Unable to verify your phone number, please try again."
-#: src/app/ReadGuidancePage.js:144
+#: src/app/ReadGuidancePage.js:134
msgid "Understanding Scan Metrics:"
msgstr "Understanding Scan Metrics:"
@@ -4133,8 +4146,8 @@ msgid "User"
msgstr "User"
#: src/organizationDetails/OrganizationAffiliations.js:32
-msgid "User Affiliations"
-msgstr "User Affiliations"
+#~ msgid "User Affiliations"
+#~ msgstr "User Affiliations"
#: src/admin/SuperAdminUserList.js:392
#: src/user/UserPage.js:255
@@ -4142,11 +4155,11 @@ msgid "User Email"
msgstr "User Email"
#: src/admin/SuperAdminUserList.js:157
-#: src/admin/UserList.js:64
+#: src/admin/UserList.js:69
msgid "User List"
msgstr "User List"
-#: src/admin/UserList.js:148
+#: src/admin/UserList.js:153
msgid "User email"
msgstr "User email"
@@ -4232,7 +4245,7 @@ msgstr "Volume of messages spoofing domain (reject + quarantine + none):"
msgid "WEB"
msgstr "WEB"
-#: src/domains/DomainsPage.js:205
+#: src/domains/DomainsPage.js:207
#: src/organizationDetails/OrganizationDomains.js:345
msgid "WILDCARD"
msgstr "WILDCARD"
@@ -4305,7 +4318,7 @@ msgstr "Web Guidance"
msgid "Web Scan Results"
msgstr "Web Scan Results"
-#: src/app/ReadGuidancePage.js:227
+#: src/app/ReadGuidancePage.js:217
msgid "Web Security:"
msgstr "Web Security:"
@@ -4346,11 +4359,11 @@ msgstr "Welcome to your personal view of Tracker. Moderate the security posture
msgid "Welcome, you are successfully signed in!"
msgstr "Welcome, you are successfully signed in!"
-#: src/app/ReadGuidancePage.js:406
+#: src/app/ReadGuidancePage.js:396
msgid "What does it mean if a domain is “unreachable”?"
msgstr "What does it mean if a domain is “unreachable”?"
-#: src/app/ReadGuidancePage.js:426
+#: src/app/ReadGuidancePage.js:416
msgid "Where can I get a GC-approved TLS certificate?"
msgstr "Where can I get a GC-approved TLS certificate?"
@@ -4358,11 +4371,11 @@ msgstr "Where can I get a GC-approved TLS certificate?"
#~ msgid "Where necessary adjust IT Plans and budget estimates for the FY where work is expected."
#~ msgstr "Where necessary adjust IT Plans and budget estimates for the FY where work is expected."
-#: src/app/ReadGuidancePage.js:183
+#: src/app/ReadGuidancePage.js:173
msgid "Where necessary adjust IT Plans and budget estimates where work is expected."
msgstr "Where necessary adjust IT Plans and budget estimates where work is expected."
-#: src/app/ReadGuidancePage.js:362
+#: src/app/ReadGuidancePage.js:352
msgid "While other tools are useful to work alongside Tracker, they do not specifically adhere to the configuration requirements specified in the <0>Email Management Service Configuration Requirements0> and the <1>Web Site and Service Management Configuration Requirements1>. For a list of allowed protocols, ciphers, and curves review the <2>ITSP.40.062 TLS guidance2>."
msgstr "While other tools are useful to work alongside Tracker, they do not specifically adhere to the configuration requirements specified in the <0>Email Management Service Configuration Requirements0> and the <1>Web Site and Service Management Configuration Requirements1>. For a list of allowed protocols, ciphers, and curves review the <2>ITSP.40.062 TLS guidance2>."
@@ -4370,15 +4383,15 @@ msgstr "While other tools are useful to work alongside Tracker, they do not spec
#~ msgid "Why do other tools (<0>Hardenize0>, <1>SSL Labs1>, etc.) show positive results for a domain while Tracker shows negative results?"
#~ msgstr "Why do other tools (<0>Hardenize0>, <1>SSL Labs1>, etc.) show positive results for a domain while Tracker shows negative results?"
-#: src/app/ReadGuidancePage.js:359
+#: src/app/ReadGuidancePage.js:349
msgid "Why do other tools show positive results for a domain while Tracker shows negative results?"
msgstr "Why do other tools show positive results for a domain while Tracker shows negative results?"
-#: src/app/ReadGuidancePage.js:451
+#: src/app/ReadGuidancePage.js:441
msgid "Why does the guidance page not show the domain’s DKIM selectors even though they exist?"
msgstr "Why does the guidance page not show the domain’s DKIM selectors even though they exist?"
-#: src/app/ReadGuidancePage.js:215
+#: src/app/ReadGuidancePage.js:205
msgid "Wiki"
msgstr "Wiki"
diff --git a/frontend/src/locales/fr.po b/frontend/src/locales/fr.po
index f9c6f48e61..db716c5222 100644
--- a/frontend/src/locales/fr.po
+++ b/frontend/src/locales/fr.po
@@ -224,7 +224,7 @@ msgstr "Profil de l'administrateur"
msgid "Admin accounts must activate a multi-factor authentication option."
msgstr "Les comptes administrateurs doivent activer une option d'authentification multifactorielle."
-#: src/app/ReadGuidancePage.js:342
+#: src/app/ReadGuidancePage.js:332
msgid "Admins of an organization can add domains to their list."
msgstr "Les administrateurs d'une organisation peuvent ajouter des domaines à leur liste."
@@ -261,7 +261,7 @@ msgstr "Une erreur s'est produite."
msgid "An error occurred when fetching this organization's information"
msgstr "Une erreur s'est produite lors de la recherche des informations relatives à cette organisation."
-#: src/domains/DomainsPage.js:41
+#: src/domains/DomainsPage.js:43
msgid "An error occurred when you attempted to download all domain statuses."
msgstr "Une erreur s'est produite lorsque vous avez tenté de télécharger tous les statuts de domaine."
@@ -345,7 +345,7 @@ msgstr "Une erreur s'est produite lors de la mise à jour de votre numéro de t
msgid "An error occurred."
msgstr "Une erreur s'est produite."
-#: src/app/ReadGuidancePage.js:420
+#: src/app/ReadGuidancePage.js:410
msgid "Another possibility is that your domain is not internet facing."
msgstr "Il se peut aussi que votre domaine ne soit pas connecté à Internet."
@@ -415,7 +415,7 @@ msgstr "Authentifier"
msgid "BETA"
msgstr "BETA"
-#: src/domains/DomainsPage.js:203
+#: src/domains/DomainsPage.js:205
#: src/organizationDetails/OrganizationDomains.js:343
msgid "BLOCKED"
msgstr "BLOQUÉ"
@@ -456,7 +456,7 @@ msgstr "Bloqué"
msgid "By accessing, browsing, or using our website or our services, you acknowledge that you have read, understood, and agree to be bound by these Terms and Conditions, and to comply with all applicable laws and regulations. We recommend that you review all Terms and Conditions periodically to understand any updates or changes that may affect you. If you do not agree to these Terms and Conditions, please refrain from using our website, products and services."
msgstr "En accédant, en naviguant ou en utilisant notre site web ou nos services, vous reconnaissez avoir lu, compris et accepté d'être lié par les présentes conditions générales, et de vous conformer à toutes les lois et réglementations applicables. Nous vous recommandons de consulter périodiquement les Conditions générales afin de comprendre les mises à jour ou les modifications qui pourraient vous concerner. Si vous n'acceptez pas les présentes conditions générales, veuillez vous abstenir d'utiliser notre site Web, nos produits et nos services."
-#: src/app/ReadGuidancePage.js:410
+#: src/app/ReadGuidancePage.js:400
msgid "By default our scanners check domains ending in “.gc.ca” and “.canada.ca”. If your domain is outside that set, you need to contact us to let us know. Send an email to <0>TBS Cyber Security0> to confirm your ownership of that domain."
msgstr "Par défaut, nos scanners vérifient les domaines se terminant par \".gc.ca\" et \".canada.ca\". Si votre domaine ne fait pas partie de cette liste, vous devez nous contacter pour nous en informer. Envoyez un courriel à l’<0>équipe responsable de la cybersécurité du SCT0> pour confirmer que vous êtes propriétaire de ce domaine."
@@ -469,10 +469,13 @@ msgstr "Par défaut, nos scanners vérifient les domaines se terminant par \".gc
#~ msgstr "Vulnérabilité d'injection de CCS:"
#: src/app/SlideMessage.js:55
-#: src/landing/LandingPage.js:28
msgid "Canadians rely on the Government of Canada to provide secure digital services. The Policy on Service and Digital guides government online services to adopt good security practices for practices outlined in the <0>email0> and <1>web1> services. Track how government sites are becoming more secure."
msgstr "Les Canadiens comptent sur le gouvernement du Canada pour fournir des services numériques sécurisés. La Politique sur les services et le numérique guide les services en ligne du gouvernement pour qu'ils adoptent de bonnes pratiques de sécurité pour les pratiques décrites dans les services de <0>courriel0> et les services <1>Web1>. Suivez l'évolution de la sécurisation des sites gouvernementaux."
+#: src/landing/LandingPage.js:29
+msgid "Canadians rely on the Government of Canada to provide secure digital services. The Policy on Service and Digital guides government online services to adopt good security practices for practices outlined in the <0>email<1/>0> and <2>web<3/>2> services. Track how government sites are becoming more secure."
+msgstr "Les Canadiens comptent sur le gouvernement du Canada pour fournir des services numériques sécurisés. La politique sur les services et le numérique guide les services en ligne du gouvernement pour qu'ils adoptent de bonnes pratiques de sécurité pour les services <0>email<1/>0> et <2>web<3/>2>. Suivez l'évolution de la sécurité des sites gouvernementaux."
+
#: src/admin/SuperAdminUserList.js:403
#: src/user/UserPage.js:260
msgid "Cancel"
@@ -487,12 +490,12 @@ msgid "Certificate chain info could not be found during the scan."
msgstr "Les informations sur la chaîne de certificats n'ont pas pu être trouvées pendant l'analyse."
#: src/domains/DomainCard.js:193
-#: src/domains/DomainsPage.js:187
+#: src/domains/DomainsPage.js:189
#: src/organizationDetails/OrganizationDomains.js:316
msgid "Certificates"
msgstr "Certificats"
-#: src/domains/DomainsPage.js:79
+#: src/domains/DomainsPage.js:81
#: src/organizationDetails/OrganizationDomains.js:97
msgid "Certificates Status"
msgstr "Statut des certificats"
@@ -543,13 +546,13 @@ msgid "Check your associated Tracker email for the verification link"
msgstr "Vérifiez le lien de vérification dans votre courriel de suivi associé."
#: src/domains/DomainCard.js:195
-#: src/domains/DomainsPage.js:189
+#: src/domains/DomainsPage.js:191
#: src/guidance/WebTLSResults.js:106
#: src/organizationDetails/OrganizationDomains.js:318
msgid "Ciphers"
msgstr "Ciphers"
-#: src/domains/DomainsPage.js:80
+#: src/domains/DomainsPage.js:82
#: src/organizationDetails/OrganizationDomains.js:98
msgid "Ciphers Status"
msgstr "État du chiffrement"
@@ -654,7 +657,7 @@ msgstr "Confirmer la découverte du sous-domaine pour <0>{domainUrl}0> :"
msgid "Connection Results"
msgstr "Résultats de la connexion"
-#: src/app/ReadGuidancePage.js:180
+#: src/app/ReadGuidancePage.js:170
msgid "Consider prioritizing websites and web services that exchange Protected data."
msgstr "Envisagez de donner la priorité aux sites web et aux services web qui échangent des données protégées."
@@ -748,19 +751,19 @@ msgstr "Mot de passe actuel:"
#~ msgstr "Numéro de téléphone actuel:"
#: src/domains/DomainCard.js:196
-#: src/domains/DomainsPage.js:190
+#: src/domains/DomainsPage.js:192
#: src/guidance/WebTLSResults.js:156
#: src/organizationDetails/OrganizationDomains.js:319
#: src/organizationDetails/OrganizationDomains.js:377
msgid "Curves"
msgstr "Courbes"
-#: src/domains/DomainsPage.js:81
+#: src/domains/DomainsPage.js:83
#: src/organizationDetails/OrganizationDomains.js:99
msgid "Curves Status"
msgstr "État des courbes"
-#: src/domains/DomainsPage.js:194
+#: src/domains/DomainsPage.js:196
#: src/organizationDetails/OrganizationDomains.js:323
msgid "DKIM"
msgstr "DKIM"
@@ -799,7 +802,7 @@ msgstr "Sélecteurs DKIM"
msgid "DKIM Selectors:"
msgstr "Sélecteurs DKIM:"
-#: src/domains/DomainsPage.js:84
+#: src/domains/DomainsPage.js:86
#: src/organizationDetails/OrganizationDomains.js:102
msgid "DKIM Status"
msgstr "Statut DKIM"
@@ -816,7 +819,7 @@ msgstr "L'enregistrement DKIM et les clés sont déployés et valides"
#~ msgid "DKIM record could not be found for this selector."
#~ msgstr "Un enregistrement DKIM n'a pas pu être trouvé pour ce sélecteur."
-#: src/domains/DomainsPage.js:198
+#: src/domains/DomainsPage.js:200
#: src/organizationDetails/OrganizationDomains.js:327
msgid "DMARC"
msgstr "DMARC"
@@ -863,7 +866,7 @@ msgstr "Rapport DMARC "
msgid "DMARC Report for {domainSlug}"
msgstr "Rapport DMARC pour {domainSlug}"
-#: src/domains/DomainsPage.js:85
+#: src/domains/DomainsPage.js:87
#: src/organizationDetails/OrganizationDomains.js:103
msgid "DMARC Status"
msgstr "Statut DMARC"
@@ -971,7 +974,7 @@ msgstr "Les détails d'une balise d'orientation donnée peuvent être trouvés s
#~ msgid "Develop a prioritized schedule to address any failings. Consider prioritizing websites and web services that exchange Protected data."
#~ msgstr "Élaborer un calendrier de priorités pour corriger tout échec. Envisager de donner la priorité aux sites Web et aux services Web qui échangent des données protégées."
-#: src/app/ReadGuidancePage.js:177
+#: src/app/ReadGuidancePage.js:167
msgid "Develop a prioritized schedule to address any failings:"
msgstr "Élaborer un calendrier de mesures prioritaires pour remédier à toute défaillance :"
@@ -1004,8 +1007,8 @@ msgstr "Disposition"
#: src/admin/AuditLogTable.js:67
#: src/dmarc/DmarcByDomainPage.js:106
#: src/dmarc/DmarcByDomainPage.js:272
-#: src/domains/DomainsPage.js:76
-#: src/domains/DomainsPage.js:180
+#: src/domains/DomainsPage.js:78
+#: src/domains/DomainsPage.js:182
#: src/organizationDetails/OrganizationDomains.js:309
#: src/organizationDetails/OrganizationDomains.js:364
msgid "Domain"
@@ -1015,7 +1018,7 @@ msgstr "Domaine"
msgid "Domain List"
msgstr "Liste des domaines"
-#: src/app/ReadGuidancePage.js:481
+#: src/app/ReadGuidancePage.js:471
msgid "Domain Name System (DNS) Services Management Configuration Requirements - Canada.ca"
msgstr "Exigences de configuration pour la gestion des sites Web et des services"
@@ -1065,8 +1068,8 @@ msgstr "Domaine:"
#: src/app/App.js:136
#: src/app/App.js:247
#: src/app/FloatingMenu.js:116
-#: src/domains/DomainsPage.js:90
-#: src/domains/DomainsPage.js:140
+#: src/domains/DomainsPage.js:92
+#: src/domains/DomainsPage.js:142
#: src/organizationDetails/OrganizationDetails.js:132
#: src/organizationDetails/OrganizationDomains.js:124
#: src/summaries/Doughnut.js:49
@@ -1075,7 +1078,7 @@ msgstr "Domaine:"
msgid "Domains"
msgstr "Domaines"
-#: src/app/ReadGuidancePage.js:121
+#: src/app/ReadGuidancePage.js:111
msgid "Domains are only to be removed from your list when 1) they no longer exist, meaning they are deleted from the DNS returning an error code of NX DOMAIN (domain name does not exist); or 2) if you have identified that they do not belong to your organization."
msgstr "Les domaines ne peuvent être supprimés de votre liste que 1) s'ils n'existent plus, c'est-à-dire s'ils sont supprimés du DNS et renvoient un code d'erreur NX DOMAIN (le nom de domaine n'existe pas) ; ou 2) si vous avez constaté qu'ils n'appartiennent pas à votre organisation."
@@ -1134,6 +1137,7 @@ msgstr "Modifier l'utilisateur"
#: src/admin/SuperAdminUserList.js:148
#: src/components/fields/EmailField.js:15
#: src/domains/DomainCard.js:201
+#: src/organizationDetails/OrganizationAffiliations.js:45
#: src/user/EditableUserTFAMethod.js:166
msgid "Email"
msgstr "Courriel"
@@ -1143,7 +1147,7 @@ msgstr "Courriel"
msgid "Email Guidance"
msgstr "Conseils par courriel"
-#: src/app/ReadGuidancePage.js:493
+#: src/app/ReadGuidancePage.js:483
msgid "Email Management Services Configuration Requirements - Canada.ca"
msgstr "Exigences en matière de configuration des services de gestion des courriels"
@@ -1151,7 +1155,7 @@ msgstr "Exigences en matière de configuration des services de gestion des courr
msgid "Email Scan Results"
msgstr "Résultats de l'analyse des courriels"
-#: src/app/ReadGuidancePage.js:270
+#: src/app/ReadGuidancePage.js:260
msgid "Email Security:"
msgstr "Sécurité du courrier électronique :"
@@ -1362,7 +1366,7 @@ msgstr "Filtres :"
#~ msgid "For any questions or concerns related to the ITPIN and related implementation guidance, contact TBS Cybersecurity."
#~ msgstr "Si vous avez des questions ou des préoccupations, n’hésitez pas à communiquer avec l’équipe responsable de la cybersécurité du SCT."
-#: src/app/ReadGuidancePage.js:526
+#: src/app/ReadGuidancePage.js:516
msgid "For any questions or concerns, please contact <0>TBS Cyber Security0> ."
msgstr "Si vous avez des questions ou des préoccupations, n’hésitez pas à communiquer avec l’<0>équipe responsable de la cybersécurité du SCT0>."
@@ -1403,7 +1407,7 @@ msgstr "Oublié votre mot de passe?"
msgid "French"
msgstr "Français"
-#: src/app/ReadGuidancePage.js:317
+#: src/app/ReadGuidancePage.js:307
msgid "Frequently Asked Questions"
msgstr "Foire aux questions"
@@ -1447,7 +1451,7 @@ msgstr "Pour commencer"
msgid "Getting an Account:"
msgstr "Ouverture d'un compte :"
-#: src/domains/DomainsPage.js:151
+#: src/domains/DomainsPage.js:153
msgid "Getting domain statuses"
msgstr "Obtenir les statuts des domaines"
@@ -1497,7 +1501,7 @@ msgid "HIDDEN"
msgstr "CACHÉ"
#: src/domains/DomainCard.js:192
-#: src/domains/DomainsPage.js:186
+#: src/domains/DomainsPage.js:188
#: src/organizationDetails/OrganizationDomains.js:315
msgid "HSTS"
msgstr "HSTS"
@@ -1522,7 +1526,7 @@ msgstr "HSTS analysé"
msgid "HSTS Preloaded"
msgstr "HSTS préchargé"
-#: src/domains/DomainsPage.js:78
+#: src/domains/DomainsPage.js:80
#: src/organizationDetails/OrganizationDomains.js:96
msgid "HSTS Status"
msgstr "Statut HSTS"
@@ -1544,7 +1548,7 @@ msgid "HTTP Upgrades"
msgstr "Mises à jour HTTP"
#: src/domains/DomainCard.js:191
-#: src/domains/DomainsPage.js:183
+#: src/domains/DomainsPage.js:185
#: src/organizationDetails/OrganizationDomains.js:312
msgid "HTTPS"
msgstr "HTTPS"
@@ -1574,7 +1578,7 @@ msgstr "HTTPS Live"
msgid "HTTPS Scan Complete"
msgstr "Scan HTTPS terminé"
-#: src/domains/DomainsPage.js:77
+#: src/domains/DomainsPage.js:79
#: src/organizationDetails/OrganizationDomains.js:95
msgid "HTTPS Status"
msgstr "Statut HTTPS"
@@ -1650,7 +1654,7 @@ msgstr "Le nom d'hôte correspond : {0}"
#~ msgid "Hostname Validated"
#~ msgstr "Nom d'hôte validé"
-#: src/app/ReadGuidancePage.js:339
+#: src/app/ReadGuidancePage.js:329
msgid "How can I edit my domain list?"
msgstr "Comment puis-je modifier ma liste de domaines?"
@@ -1701,7 +1705,7 @@ msgstr "Identifiez les utilisateurs affiliés à Suivi au sein de votre organisa
#~ msgid "Identify resources required to act as central point(s) of contact with Treasury Board of Canada Secretariat (TBS). Share the contact list with <0>TBS Cyber Security0>, as required."
#~ msgstr "Déterminer les ressources nécessaires qui agiront en tant que point de contact central auprès du Secrétariat du Conseil du Trésor du Canada (SCT). Communiquer la liste de personnes-ressources à l’<0>équipe responsable de la cybersécurité du SCT0> et la mettre à jour, au besoin."
-#: src/app/ReadGuidancePage.js:130
+#: src/app/ReadGuidancePage.js:120
msgid "If a domain is no longer in use but still exists on the DNS, it is still vulnerable to email spoofing attacks, where an attacker can send an email that appears to be coming from your domain."
msgstr "Si un domaine n'est plus utilisé mais existe toujours dans le DNS, il reste vulnérable aux attaques par usurpation d'adresse électronique, c'est-à-dire qu'un pirate peut envoyer un courrier électronique semblant provenir de votre domaine."
@@ -1742,7 +1746,7 @@ msgstr "Immédiatement"
#~ msgid "Implementation"
#~ msgstr "Mise en œuvre"
-#: src/app/ReadGuidancePage.js:505
+#: src/app/ReadGuidancePage.js:495
msgid "Implementation guidance: email domain protection (ITSP.40.065 v1.1) - Canadian Centre for Cyber Security"
msgstr "Directives de mise en œuvre – protection du domaine de courrier (ITSP.40.065 v1.1) – Centre canadien pour la cybersécurité"
@@ -1750,11 +1754,11 @@ msgstr "Directives de mise en œuvre – protection du domaine de courrier (ITSP
#~ msgid "Implementation:"
#~ msgstr "Mise en œuvre:"
-#: src/app/ReadGuidancePage.js:250
+#: src/app/ReadGuidancePage.js:240
msgid "Implementation: <0>Guidance on securely configuring network protocols (ITSP.40.062)0>"
msgstr "Mise en œuvre : <0>Conseils sur la configuration sécurisée des protocoles réseau (ITSP.40.062)0>"
-#: src/app/ReadGuidancePage.js:293
+#: src/app/ReadGuidancePage.js:283
msgid "Implementation: <0>Implementation guidance: email domain protection (ITSP.40.065 v1.1)0>"
msgstr "Mise en œuvre : <0>Conseils de mise en œuvre : protection du domaine de messagerie (ITSP.40.065 v1.1)0>"
@@ -1970,7 +1974,7 @@ msgstr "Courriel non valide"
msgid "Invite Requested"
msgstr "Invitation demandée"
-#: src/admin/UserList.js:154
+#: src/admin/UserList.js:159
msgid "Invite User"
msgstr "Inviter l'utilisateur"
@@ -1986,7 +1990,7 @@ msgstr "Est aligné sur le SPF. Peut être vrai ou faux."
msgid "Issuer:"
msgstr "Émetteur :"
-#: src/app/ReadGuidancePage.js:324
+#: src/app/ReadGuidancePage.js:314
msgid "It is not clear to me why a domain has failed?"
msgstr "Je ne comprends pas pourquoi un domaine a échoué."
@@ -1994,7 +1998,7 @@ msgstr "Je ne comprends pas pourquoi un domaine a échoué."
#~ msgid "It is recommended that SSC partners contact their SSC Service Delivery Manager to discuss the departmental action plan and required steps to submit a request for change."
#~ msgstr "Il est recommandé aux partenaires du SSC de contacter leur gestionnaire de prestation de services du SSC afin de discuter du plan d'action ministériel et des étapes nécessaires pour soumettre une demande de changement."
-#: src/app/ReadGuidancePage.js:186
+#: src/app/ReadGuidancePage.js:176
msgid "It is recommended that Shared Service Canada (SSC) partners contact their SSC Service Delivery Manager to discuss action plans and required steps to submit a request for change."
msgstr "On recommande aux partenaires de Services partagés Canada (SPC) de communiquer avec leur gestionnaire de prestation de services de SPC pour discuter des plans d’action et des étapes requises afin de soumettre une demande de changement."
@@ -2072,11 +2076,11 @@ msgstr "Nous allons vous configurer pour que vous puissiez vérifier les informa
msgid "Limitation of Liability"
msgstr "Limitation de la responsabilité"
-#: src/app/ReadGuidancePage.js:207
+#: src/app/ReadGuidancePage.js:197
msgid "Links to Review:"
msgstr "Liens à revoir :"
-#: src/app/ReadGuidancePage.js:220
+#: src/app/ReadGuidancePage.js:210
msgid "List of guidance tags"
msgstr "Liste des balises d'orientation"
@@ -2145,7 +2149,7 @@ msgstr "Surveiller les rapports DMARC."
msgid "More details"
msgstr "Plus de détails"
-#: src/app/ReadGuidancePage.js:513
+#: src/app/ReadGuidancePage.js:503
msgid "Mozilla SSL Configuration Generator"
msgstr "Générateur de configuration SSL de Mozilla"
@@ -2163,12 +2167,13 @@ msgstr "Agrafe obligatoire"
msgid "NEW"
msgstr "NOUVEAU"
-#: src/domains/DomainsPage.js:202
+#: src/domains/DomainsPage.js:204
msgid "NXDOMAIN"
msgstr "NXDOMAIN"
#: src/createOrganization/CreateOrganizationPage.js:173
#: src/createOrganization/CreateOrganizationPage.js:178
+#: src/organizationDetails/OrganizationAffiliations.js:46
#: src/organizations/Organizations.js:61
msgid "Name"
msgstr "Nom"
@@ -2281,7 +2286,7 @@ msgstr "Non"
#~ msgstr "Aucune information sur la phase DMARC n'est disponible pour cette organisation."
#: src/admin/AdminDomains.js:256
-#: src/domains/DomainsPage.js:97
+#: src/domains/DomainsPage.js:99
#: src/organizationDetails/OrganizationDomains.js:249
msgid "No Domains"
msgstr "Aucun domaine"
@@ -2294,7 +2299,7 @@ msgstr "Aucun domaine"
msgid "No Organizations"
msgstr "Aucune organisation"
-#: src/organizationDetails/OrganizationAffiliations.js:43
+#: src/organizationDetails/OrganizationAffiliations.js:59
msgid "No Users"
msgstr "Pas d'utilisateurs"
@@ -2326,12 +2331,12 @@ msgstr "Pas de données pour le tableau Entièrement aligné par adresse IP"
msgid "No data for the SPF Failures by IP Address table"
msgstr "Aucune donnée pour le tableau des défaillances du SPF par adresse IP"
-#: src/domains/DomainsPage.js:161
-#: src/domains/DomainsPage.js:169
+#: src/domains/DomainsPage.js:163
+#: src/domains/DomainsPage.js:171
msgid "No data found"
msgstr "Aucune donnée trouvée"
-#: src/domains/DomainsPage.js:162
+#: src/domains/DomainsPage.js:164
msgid "No data found when retrieving all domain statuses."
msgstr "Aucune donnée n'a été trouvée lors de la récupération de tous les statuts de domaine."
@@ -2360,7 +2365,7 @@ msgid "No scan data is currently available for this service. You may request a s
msgstr "Aucune donnée de balayage n'est actuellement disponible pour ce service. Vous pouvez demander un scan en utilisant le bouton d'actualisation, ou attendre jusqu'à 24 heures pour que les données soient actualisées."
#: src/admin/SuperAdminUserList.js:161
-#: src/admin/UserList.js:68
+#: src/admin/UserList.js:73
msgid "No users"
msgstr "Aucun utilisateur"
@@ -2435,7 +2440,7 @@ msgstr "PROPRIÉTAIRE"
#~ msgid "Obtain certificates from a GC-approved certificate source as outlined in the Recommendations for TLS Server Certificates for GC Public Facing Web Services"
#~ msgstr "Obtenez des certificats auprès d'une source de certificats approuvée par le GC, comme indiqué dans les Recommandations relatives aux certificats de serveur TLS pour les services Web publics du GC."
-#: src/app/ReadGuidancePage.js:192
+#: src/app/ReadGuidancePage.js:182
msgid "Obtain certificates from a GC-approved certificate source as outlined in the Recommendations for TLS Server Certificates for GC public facing web services"
msgstr "Obtenir des certificats d’une source de certificats approuvée par le GC, comme l’indiquent les Recommandations pour les certificats de serveur TLS pour les services Web publics du GC."
@@ -2443,7 +2448,7 @@ msgstr "Obtenir des certificats d’une source de certificats approuvée par le
#~ msgid "Obtain the configuration guidance for the appropriate endpoints (e.g. web server, network/security appliances, etc.) and implement recommended configurations to support HTTPS."
#~ msgstr "Obtenez les conseils de configuration pour les points d'extrémité appropriés (par exemple, serveur Web, appareils de réseau/sécurité, etc.) et mettez en œuvre les configurations recommandées pour prendre en charge HTTPS."
-#: src/app/ReadGuidancePage.js:198
+#: src/app/ReadGuidancePage.js:188
msgid "Obtain the configuration guidance for the appropriate endpoints (e.g., web server, network/security appliances, etc.) and implement recommended configurations."
msgstr "Obtenir une orientation en matière de configuration pour les points terminaux appropriés (p. ex., serveur Web, dispositifs de réseau ou de sécurité) et mettre en œuvre les configurations recommandées."
@@ -2460,11 +2465,11 @@ msgstr "Ancienne valeur :"
msgid "Once access is given to your department by the TBS Cyber team, they will be able to invite and manage other users within the organization and manage the domain list."
msgstr "Une fois que l’équipe responsable de la cybersécurité du SCT a donné l'accès à votre département, celui-ci pourra inviter et gérer d'autres utilisateurs au sein de l'organisation et gérer la liste du domaine."
-#: src/app/ReadGuidancePage.js:345
+#: src/app/ReadGuidancePage.js:335
msgid "Only <0>TBS Cyber Security0> can remove domains from your organization. Domains are only to be removed from your list when 1) they no longer exist, meaning they are deleted from the DNS returning an error code of NX DOMAIN (domain name does not exist); or 2) if you have identified that they do not belong to your organization."
msgstr "Seul l’<0>équipe responsable de la cybersécurité du SCT0> peut supprimer des domaines de votre organisation. Les domaines ne peuvent être supprimés de votre liste que 1) s'ils n'existent plus, c'est-à-dire s'ils sont supprimés du DNS et renvoient un code d'erreur NX DOMAIN (le nom de domaine n'existe pas) ; ou 2) si vous avez constaté qu'ils n'appartiennent pas à votre organisation."
-#: src/app/ReadGuidancePage.js:429
+#: src/app/ReadGuidancePage.js:419
msgid "Options include contacting the <0>SSC WebSSL services team0> and/or using <1>Let's Encrypt1>. For more information, please refer to the guidance on <2>Recommendations for TLS Server Certificates2>."
msgstr "Vous pouvez notamment communiquer avec l’<0>équipe responsable des services WebSSL de SPC0> ou utiliser <1>Let’sEncrypt1>. Pour en apprendre davantage, veuillez vous reporter aux <2>Recommandations pour les certificats de serveur TLS2>."
@@ -2658,7 +2663,7 @@ msgstr "Veuillez prévoir jusqu'à 24 heures pour que les résumés reflètent l
msgid "Please choose your preferred language"
msgstr "Veuillez choisir votre langue préférée"
-#: src/app/ReadGuidancePage.js:327
+#: src/app/ReadGuidancePage.js:317
msgid "Please contact <0>TBS Cyber Security0> for help."
msgstr "Veuillez communiquer avec l’<0>équipe responsable de la cybersécurité du SCT0> pour obtenir de l’aide."
@@ -2745,19 +2750,19 @@ msgstr "Déclaration de confidentialité"
msgid "Prod"
msgstr "Prod"
-#: src/app/ReadGuidancePage.js:518
+#: src/app/ReadGuidancePage.js:508
msgid "Protect domains that do not send email - GOV.UK (www.gov.uk)"
msgstr "Protéger les domaines qui n'envoient pas de courrier électronique - GOV.UK (www.gov.uk)"
#: src/domains/DomainCard.js:194
-#: src/domains/DomainsPage.js:188
+#: src/domains/DomainsPage.js:190
#: src/guidance/WebTLSResults.js:53
#: src/organizationDetails/OrganizationDomains.js:317
#: src/organizationDetails/OrganizationDomains.js:378
msgid "Protocols"
msgstr "Protocoles"
-#: src/domains/DomainsPage.js:82
+#: src/domains/DomainsPage.js:84
#: src/organizationDetails/OrganizationDomains.js:100
msgid "Protocols Status"
msgstr "Statut des protocoles"
@@ -2819,7 +2824,7 @@ msgstr "La chaîne reçue a un ordre valide"
msgid "Record:"
msgstr "Record :"
-#: src/app/ReadGuidancePage.js:470
+#: src/app/ReadGuidancePage.js:460
msgid "References:"
msgstr "Références :"
@@ -2873,7 +2878,7 @@ msgstr "Demande d'invitation"
msgid "Request a domain to be scanned:"
msgstr "Demander qu'un domaine soit scanné:"
-#: src/domains/DomainsPage.js:152
+#: src/domains/DomainsPage.js:154
msgid "Request successfully sent to get all domain statuses - this may take a minute."
msgstr "La requête a été envoyée avec succès pour obtenir les statuts de tous les domaines - cela peut prendre une minute."
@@ -2889,11 +2894,11 @@ msgstr "Analyse du sous-domaine demandé"
#~ msgid "Requests for updates can be sent directly to <0>TBS Cyber Security0>."
#~ msgstr "Les demandes de mise à jour peuvent être envoyées directement à l’<0>équipe responsable de la cybersécurité du SCT0>."
-#: src/app/ReadGuidancePage.js:275
+#: src/app/ReadGuidancePage.js:265
msgid "Requirements: <0>Email Management Services Configuration Requirements0>"
msgstr "Exigences : <0>Configuration requise pour les services de gestion du courrier électronique0>"
-#: src/app/ReadGuidancePage.js:232
+#: src/app/ReadGuidancePage.js:222
msgid "Requirements: <0>Web Sites and Services Management Configuration Requirements0>"
msgstr "Exigences : <0>Exigences de configuration de la gestion des sites et services web0>"
@@ -2940,6 +2945,10 @@ msgstr "Résultats pour les analyses des technologies web (TLS, HTTPS)."
msgid "Revoked:"
msgstr "Révoqué :"
+#: src/organizationDetails/OrganizationAffiliations.js:47
+msgid "Role"
+msgstr "Rôle"
+
#: src/admin/UserListModal.js:106
msgid "Role updated"
msgstr "Rôle mis à jour"
@@ -2957,12 +2966,12 @@ msgstr "Effectuer la rotation des clés DKIM annuellement."
msgid "SAN List:"
msgstr "Liste des SAN :"
-#: src/domains/DomainsPage.js:208
+#: src/domains/DomainsPage.js:210
#: src/organizationDetails/OrganizationDomains.js:348
msgid "SCAN PENDING"
msgstr "SCAN EN ATTENTE"
-#: src/domains/DomainsPage.js:192
+#: src/domains/DomainsPage.js:194
#: src/organizationDetails/OrganizationDomains.js:321
msgid "SPF"
msgstr "SPF"
@@ -2989,7 +2998,7 @@ msgstr "Défaillances du SPF par adresse IP"
msgid "SPF Results"
msgstr "Résultats du SPF"
-#: src/domains/DomainsPage.js:83
+#: src/domains/DomainsPage.js:85
#: src/organizationDetails/OrganizationDomains.js:101
msgid "SPF Status"
msgstr "Statut SPF"
@@ -3087,7 +3096,7 @@ msgstr "Recherche par initié par, nom de la ressource"
#: src/dmarc/DmarcByDomainPage.js:195
#: src/dmarc/DmarcByDomainPage.js:245
-#: src/domains/DomainsPage.js:226
+#: src/domains/DomainsPage.js:228
#: src/organizationDetails/OrganizationDomains.js:365
msgid "Search for a domain"
msgstr "Rechercher un domaine"
@@ -3096,6 +3105,10 @@ msgstr "Rechercher un domaine"
msgid "Search for a user (email)"
msgstr "Recherche d'un utilisateur (email)"
+#: src/organizationDetails/OrganizationAffiliations.js:90
+msgid "Search for a user by email"
+msgstr "Recherche d'un utilisateur par courriel"
+
#: src/admin/AuditLogTable.js:188
#~ msgid "Search for an activity"
#~ msgstr "Recherche d'une activité"
@@ -3105,7 +3118,7 @@ msgid "Search for an organization"
msgstr "Rechercher une organisation"
#: src/admin/AdminDomains.js:349
-#: src/admin/UserList.js:139
+#: src/admin/UserList.js:144
#: src/components/ReactTableGlobalFilter.js:36
#: src/components/SearchBox.js:44
msgid "Search:"
@@ -3223,7 +3236,7 @@ msgstr "Indique si le point de terminaison HTTPS passe en HTTP non sécurisé im
msgid "Shows if the certificate bundle provided from the server included the root certificate."
msgstr "Indique si le paquet de certificats fourni par le serveur comprend le certificat racine."
-#: src/domains/DomainsPage.js:187
+#: src/domains/DomainsPage.js:189
#: src/organizationDetails/OrganizationDomains.js:316
msgid "Shows if the domain has a valid SSL certificate."
msgstr "Indique si le domaine dispose d'un certificat SSL valide."
@@ -3243,17 +3256,17 @@ msgstr "Indique si le domaine dispose d'un certificat SSL valide."
#~ msgid "Shows if the domain is policy compliant."
#~ msgstr "Indique si le domaine est conforme à la politique."
-#: src/domains/DomainsPage.js:195
+#: src/domains/DomainsPage.js:197
#: src/organizationDetails/OrganizationDomains.js:324
msgid "Shows if the domain meets the DomainKeys Identified Mail (DKIM) requirements."
msgstr "Indique si le domaine répond aux exigences de DomainKeys Identified Mail (DKIM)."
-#: src/domains/DomainsPage.js:186
+#: src/domains/DomainsPage.js:188
#: src/organizationDetails/OrganizationDomains.js:315
msgid "Shows if the domain meets the HSTS requirements."
msgstr "Indique si le domaine répond aux exigences du HSTS."
-#: src/domains/DomainsPage.js:184
+#: src/domains/DomainsPage.js:186
#: src/organizationDetails/OrganizationDomains.js:313
msgid "Shows if the domain meets the Hypertext Transfer Protocol Secure (HTTPS) requirements."
msgstr "Indique si le domaine répond aux exigences du protocole de transfert hypertexte sécurisé (HTTPS)."
@@ -3264,27 +3277,27 @@ msgstr "Indique si le domaine répond aux exigences du protocole de transfert hy
#~ msgid "Shows if the domain meets the Hypertext Transfer ol Secure (HTTPS) requirements."
#~ msgstr "Indique si le domaine répond aux exigences de Hypertext Transfer ol Secure (HTTPS)."
-#: src/domains/DomainsPage.js:199
+#: src/domains/DomainsPage.js:201
#: src/organizationDetails/OrganizationDomains.js:328
msgid "Shows if the domain meets the Message Authentication, Reporting, and Conformance (DMARC) requirements."
msgstr "Indique si le domaine répond aux exigences de Message Authentication, Reporting, and Conformance (DMARC)."
-#: src/domains/DomainsPage.js:192
+#: src/domains/DomainsPage.js:194
#: src/organizationDetails/OrganizationDomains.js:321
msgid "Shows if the domain meets the Sender Policy Framework (SPF) requirements."
msgstr "Indique si le domaine répond aux exigences du Sender Policy Framework (SPF)."
-#: src/domains/DomainsPage.js:188
+#: src/domains/DomainsPage.js:190
#: src/organizationDetails/OrganizationDomains.js:317
msgid "Shows if the domain uses acceptable protocols."
msgstr "Indique si le domaine utilise des protocoles acceptables."
-#: src/domains/DomainsPage.js:189
+#: src/domains/DomainsPage.js:191
#: src/organizationDetails/OrganizationDomains.js:318
msgid "Shows if the domain uses only ciphers that are strong or acceptable."
msgstr "Indique si le domaine utilise uniquement des ciphers forts ou acceptables."
-#: src/domains/DomainsPage.js:190
+#: src/domains/DomainsPage.js:192
#: src/organizationDetails/OrganizationDomains.js:319
msgid "Shows if the domain uses only curves that are strong or acceptable."
msgstr "Indique si le domaine utilise uniquement des courbes fortes ou acceptables"
@@ -3563,22 +3576,22 @@ msgstr "Balise utilisée pour afficher les domaines qui ne sont pas actifs."
msgid "Tag used to show domains that are out of the organization's scope."
msgstr "Balise utilisée pour indiquer les domaines qui sont hors de la portée de l'organisation."
-#: src/domains/DomainsPage.js:203
+#: src/domains/DomainsPage.js:205
#: src/organizationDetails/OrganizationDomains.js:343
msgid "Tag used to show domains that are possibly blocked by a firewall."
msgstr "Balise utilisée pour afficher les domaines susceptibles d'être bloqués par un pare-feu."
-#: src/domains/DomainsPage.js:208
+#: src/domains/DomainsPage.js:210
#: src/organizationDetails/OrganizationDomains.js:348
msgid "Tag used to show domains that have a pending web scan."
msgstr "Balise utilisée pour afficher les domaines dont l'analyse web est en cours."
-#: src/domains/DomainsPage.js:202
+#: src/domains/DomainsPage.js:204
#: src/organizationDetails/OrganizationDomains.js:342
msgid "Tag used to show domains that have an rcode status of NXDOMAIN"
msgstr "Balise utilisée pour afficher les domaines dont le code rcode est NXDOMAIN"
-#: src/domains/DomainsPage.js:206
+#: src/domains/DomainsPage.js:208
#: src/organizationDetails/OrganizationDomains.js:346
msgid "Tag used to show domains which may be from a wildcard subdomain (a wildcard resolver exists as a sibling)."
msgstr "Balise utilisée pour afficher les domaines qui peuvent provenir d'un sous-domaine générique (un résolveur générique existe en tant que frère ou sœur)."
@@ -3647,7 +3660,7 @@ msgid "The advice, guidance or services provided to you by TBS will be provided
msgstr "Les avis, conseils ou services qui vous sont fournis par TBS le sont “en l'état“, sans garantie ni déclaration d'aucune sorte, et TBS n'est pas responsable des pertes, responsabilités, dommages ou coûts, y compris les pertes de données ou les interruptions d'activité résultant de la fourniture de tels avis, conseils ou services par Tracker. Par conséquent, TBS recommande aux utilisateurs d'utiliser les conseils, les orientations et les services fournis par Tracker en faisant preuve de compétence et de prudence."
#: src/dmarc/DmarcByDomainPage.js:272
-#: src/domains/DomainsPage.js:180
+#: src/domains/DomainsPage.js:182
#: src/organizationDetails/OrganizationDomains.js:309
msgid "The domain address."
msgstr "L'adresse du domaine."
@@ -3672,15 +3685,15 @@ msgstr "Le matériel disponible sur ce site web est soumis à l'approbation de l
msgid "The page you are looking for has moved or does not exist."
msgstr "La page que vous recherchez a été déplacée ou n'existe pas."
-#: src/app/ReadGuidancePage.js:156
+#: src/app/ReadGuidancePage.js:146
msgid "The percentage of internet-facing services that have a DMARC policy of at least p=”none”"
msgstr "Le pourcentage de services en contact avec l'internet qui ont une politique DMARC d'au moins p=”none”."
-#: src/app/ReadGuidancePage.js:153
+#: src/app/ReadGuidancePage.js:143
msgid "The percentage of web-hosting services that strongly enforce HTTPS"
msgstr "Le pourcentage de services d'hébergement web qui appliquent fortement le protocole HTTPS"
-#: src/app/ReadGuidancePage.js:461
+#: src/app/ReadGuidancePage.js:451
msgid "The process of detecting DKIM selectors is not immediate. It may take more than 24 hours for the selectors to appear in Tracker after the conditions are met."
msgstr "Le processus de détection des sélecteurs DKIM n'est pas immédiat. Il peut s'écouler plus de 24 heures avant que les sélecteurs n'apparaissent dans Tracker lorsque les conditions sont remplies."
@@ -3696,7 +3709,7 @@ msgstr "Résultats de la vérification DKIM du message. Il peut s'agir d'un succ
msgid "The results of DKIM verification of the message. Can be pass, fail, neutral, temp-error, or perm-error."
msgstr "Résultats de la vérification DKIM du message. Il peut s'agir d'un succès, d'un échec, d'un résultat neutre, d'une erreur temporaire ou d'une erreur permanente."
-#: src/app/ReadGuidancePage.js:149
+#: src/app/ReadGuidancePage.js:139
msgid "The summary cards show two metrics that Tracker scans:"
msgstr "Les cartes récapitulatives présentent deux mesures que Suivi analyse :"
@@ -3704,7 +3717,7 @@ msgstr "Les cartes récapitulatives présentent deux mesures que Suivi analyse :
msgid "The user's role has been successfully updated"
msgstr "Le rôle de l'utilisateur a été mis à jour avec succès"
-#: src/app/ReadGuidancePage.js:164
+#: src/app/ReadGuidancePage.js:154
msgid "These metrics are an important first step in securing your services and should be treated as minimum requirements. Further metrics are available in your organization's domain list."
msgstr "Ces paramètres constituent une première étape importante dans la sécurisation de vos services et doivent être considérés comme des exigences minimales. D'autres paramètres sont disponibles dans la liste des domaines de votre organisation."
@@ -3790,8 +3803,8 @@ msgid "To maximize your account's security, <0>please activate a multi-factor au
msgstr "Pour maximiser la sécurité de votre compte, <0>vous devez activer une option d'authentification multifactorielle0>."
#: src/app/ReadGuidancePage.js:111
-msgid "To receive DKIM scan results and guidance, you must add the DKIM selectors used for each domain. Organization administrators can add selectors in the “Admin Profile” by clicking the edit button of the domain for which they wish to add the selector. Common selectors to keep an for are “selector1”, and “selector2”."
-msgstr "Pour recevoir les résultats de l'analyse DKIM et des conseils, vous devez ajouter les sélecteurs DKIM utilisés pour chaque domaine. Les administrateurs de l'organisation peuvent ajouter des sélecteurs dans le \"profil administrateur\" en cliquant sur le bouton d'édition du domaine pour lequel ils souhaitent ajouter le sélecteur. Les sélecteurs les plus courants sont “selector1“ et “selector2“."
+#~ msgid "To receive DKIM scan results and guidance, you must add the DKIM selectors used for each domain. Organization administrators can add selectors in the “Admin Profile” by clicking the edit button of the domain for which they wish to add the selector. Common selectors to keep an for are “selector1”, and “selector2”."
+#~ msgstr "Pour recevoir les résultats de l'analyse DKIM et des conseils, vous devez ajouter les sélecteurs DKIM utilisés pour chaque domaine. Les administrateurs de l'organisation peuvent ajouter des sélecteurs dans le \"profil administrateur\" en cliquant sur le bouton d'édition du domaine pour lequel ils souhaitent ajouter le sélecteur. Les sélecteurs les plus courants sont “selector1“ et “selector2“."
#: src/app/App.js:87
msgid "To view detailed scan results and other functionality, <0>please affiliate with an organization0>."
@@ -3809,7 +3822,7 @@ msgstr "Total des messages"
#~ msgstr "total des utilisateurs"
#: src/app/SlideMessage.js:51
-#: src/landing/LandingPage.js:24
+#: src/landing/LandingPage.js:25
msgid "Track Digital Security"
msgstr "Suivre la sécurité numérique"
@@ -3822,7 +3835,7 @@ msgstr "Les résultats de suivi des domaines HSTS et HTTPS s’affichent incorre
msgid "Tracker account has been successfully closed."
msgstr "Le compte du traqueur a été fermé avec succès."
-#: src/app/ReadGuidancePage.js:454
+#: src/app/ReadGuidancePage.js:444
msgid "Tracker automatically adds DKIM selectors using DMARC reports. Selectors will be added to Tracker when 1) the domain has a DMARC RUA record which includes \"mailto:dmarc@cyber.gc.ca\"; and 2) the selector has been used to sign an email and passed DKIM validation."
msgstr "Tracker ajoute automatiquement des sélecteurs DKIM à l'aide des rapports DMARC. Les sélecteurs seront ajoutés à Tracker lorsque 1) le domaine possède un enregistrement DMARC RUA qui inclut \"mailto:dmarc@cyber.gc.ca\" ; et 2) le sélecteur a été utilisé pour signer un courriel et a passé la validation DKIM."
@@ -3846,11 +3859,11 @@ msgstr "Contour du logo Suivi"
msgid "Tracker logo text"
msgstr "Texte du logo du Suivi"
-#: src/app/ReadGuidancePage.js:171
+#: src/app/ReadGuidancePage.js:161
msgid "Tracker results refresh every 24 hours."
msgstr "Les résultats de Suivi sont actualisés toutes les 24 heures."
-#: src/app/ReadGuidancePage.js:211
+#: src/app/ReadGuidancePage.js:201
msgid "Tracker:"
msgstr "Suivi :"
@@ -4009,7 +4022,7 @@ msgstr "Impossible de mettre à jour votre numéro de téléphone, veuillez rée
msgid "Unable to verify your phone number, please try again."
msgstr "Impossible de vérifier votre numéro de téléphone, veuillez réessayer."
-#: src/app/ReadGuidancePage.js:144
+#: src/app/ReadGuidancePage.js:134
msgid "Understanding Scan Metrics:"
msgstr "Comprendre les métriques d'analyse :"
@@ -4071,8 +4084,8 @@ msgid "User"
msgstr "Utilisateur"
#: src/organizationDetails/OrganizationAffiliations.js:32
-msgid "User Affiliations"
-msgstr "Affiliations des utilisateurs"
+#~ msgid "User Affiliations"
+#~ msgstr "Affiliations des utilisateurs"
#: src/admin/SuperAdminUserList.js:392
#: src/user/UserPage.js:255
@@ -4080,11 +4093,11 @@ msgid "User Email"
msgstr "Courriel de l'utilisateur"
#: src/admin/SuperAdminUserList.js:157
-#: src/admin/UserList.js:64
+#: src/admin/UserList.js:69
msgid "User List"
msgstr "Liste des utilisateurs"
-#: src/admin/UserList.js:148
+#: src/admin/UserList.js:153
msgid "User email"
msgstr "Courriel de l'utilisateur"
@@ -4170,7 +4183,7 @@ msgstr "Volume de messages usurpant domaine (rejet + quarantaine + aucun) :"
msgid "WEB"
msgstr "WEB"
-#: src/domains/DomainsPage.js:205
+#: src/domains/DomainsPage.js:207
#: src/organizationDetails/OrganizationDomains.js:345
msgid "WILDCARD"
msgstr "WILDCARD"
@@ -4239,7 +4252,7 @@ msgstr "Conseils sur le Web"
msgid "Web Scan Results"
msgstr "Résultats de l'analyse du Web"
-#: src/app/ReadGuidancePage.js:227
+#: src/app/ReadGuidancePage.js:217
msgid "Web Security:"
msgstr "Sécurité du Web :"
@@ -4272,11 +4285,11 @@ msgstr "Bienvenue dans votre vision personnelle de Suivi. Modérez la posture de
msgid "Welcome, you are successfully signed in!"
msgstr "Bienvenue, vous êtes connecté avec succès!"
-#: src/app/ReadGuidancePage.js:406
+#: src/app/ReadGuidancePage.js:396
msgid "What does it mean if a domain is “unreachable”?"
msgstr "Que veut dire le message « inaccessible » en parlant d’un domaine?"
-#: src/app/ReadGuidancePage.js:426
+#: src/app/ReadGuidancePage.js:416
msgid "Where can I get a GC-approved TLS certificate?"
msgstr "Où puis-je obtenir un certificat TLS approuvé par le GC?"
@@ -4284,11 +4297,11 @@ msgstr "Où puis-je obtenir un certificat TLS approuvé par le GC?"
#~ msgid "Where necessary adjust IT Plans and budget estimates for the FY where work is expected."
#~ msgstr "Si nécessaire, ajustez les plans informatiques et les estimations budgétaires pour l'exercice financier où des travaux sont prévus."
-#: src/app/ReadGuidancePage.js:183
+#: src/app/ReadGuidancePage.js:173
msgid "Where necessary adjust IT Plans and budget estimates where work is expected."
msgstr "Au besoin, adapter les plans de la TI et les estimations budgétaires là où des travaux sont attendus."
-#: src/app/ReadGuidancePage.js:362
+#: src/app/ReadGuidancePage.js:352
msgid "While other tools are useful to work alongside Tracker, they do not specifically adhere to the configuration requirements specified in the <0>Email Management Service Configuration Requirements0> and the <1>Web Site and Service Management Configuration Requirements1>. For a list of allowed protocols, ciphers, and curves review the <2>ITSP.40.062 TLS guidance2>."
msgstr "Même si d’autres outils sont utiles en complément de Suivi, ils ne respectent pas précisément les exigences de configuration indiquées dans les <0>Exigences en matière de configuration des services de gestion des courriels0> et les <1>Exigences de configuration de la gestion des sites Web et des services1>. Pour une liste des protocoles, chiffrements et courbes autorisés, veuillez consulter les <2>Directives du protocole TLS ITSP.40.0622>."
@@ -4296,15 +4309,15 @@ msgstr "Même si d’autres outils sont utiles en complément de Suivi, ils ne r
#~ msgid "Why do other tools (<0>Hardenize0>, <1>SSL Labs1>, etc.) show positive results for a domain while Tracker shows negative results?"
#~ msgstr "Pourquoi d’autres outils (<0>Hardenize0>, <1>Laboratoires SSL1>, etc.) affichent-ils des résultats positifs pour un domaine alors que Tracker affiche des résultats négatifs?"
-#: src/app/ReadGuidancePage.js:359
+#: src/app/ReadGuidancePage.js:349
msgid "Why do other tools show positive results for a domain while Tracker shows negative results?"
msgstr "Pourquoi d'autres outils affichent-ils des résultats positifs pour un domaine alors que Suivi affiche des résultats négatifs ?"
-#: src/app/ReadGuidancePage.js:451
+#: src/app/ReadGuidancePage.js:441
msgid "Why does the guidance page not show the domain’s DKIM selectors even though they exist?"
msgstr "Pourquoi la page d'orientation n'affiche-t-elle pas les sélecteurs DKIM du domaine alors qu'ils existent ?"
-#: src/app/ReadGuidancePage.js:215
+#: src/app/ReadGuidancePage.js:205
msgid "Wiki"
msgstr "Wiki"
diff --git a/frontend/src/organizationDetails/OrganizationAffiliations.js b/frontend/src/organizationDetails/OrganizationAffiliations.js
index a90c8bc526..1917b94bec 100644
--- a/frontend/src/organizationDetails/OrganizationAffiliations.js
+++ b/frontend/src/organizationDetails/OrganizationAffiliations.js
@@ -1,8 +1,8 @@
-import React from 'react'
-import { Trans } from '@lingui/macro'
+import React, { useCallback, useState } from 'react'
+import { Trans, t } from '@lingui/macro'
import { Box, Divider, Text } from '@chakra-ui/react'
import { ErrorBoundary } from 'react-error-boundary'
-import { number, string } from 'prop-types'
+import { string } from 'prop-types'
import { ListOf } from '../components/ListOf'
import { UserCard } from '../components/UserCard'
@@ -11,49 +11,91 @@ import { ErrorFallbackMessage } from '../components/ErrorFallbackMessage'
import { RelayPaginationControls } from '../components/RelayPaginationControls'
import { usePaginatedCollection } from '../utilities/usePaginatedCollection'
import { PAGINATED_ORG_AFFILIATIONS as FORWARD } from '../graphql/queries'
+import { SearchBox } from '../components/SearchBox'
+import { useDebouncedFunction } from '../utilities/useDebouncedFunction'
-export function OrganizationAffiliations({ usersPerPage = 10, orgSlug }) {
- const { loading, isLoadingMore, error, nodes, next, previous, hasNextPage, hasPreviousPage } = usePaginatedCollection(
- {
+export function OrganizationAffiliations({ orgSlug }) {
+ const [usersPerPage, setUsersPerPage] = useState(10)
+ const [orderDirection, setOrderDirection] = useState('ASC')
+ const [orderField, setOrderField] = useState('PERMISSION')
+ const [searchTerm, setSearchTerm] = useState('')
+ const [debouncedSearchTerm, setDebouncedSearchTerm] = useState('')
+
+ const memoizedSetDebouncedSearchTermCallback = useCallback(() => {
+ setDebouncedSearchTerm(searchTerm)
+ }, [searchTerm])
+
+ useDebouncedFunction(memoizedSetDebouncedSearchTermCallback, 500)
+
+ const { loading, isLoadingMore, error, nodes, next, previous, hasNextPage, hasPreviousPage, resetToFirstPage } =
+ usePaginatedCollection({
fetchForward: FORWARD,
- variables: { slug: orgSlug },
+ variables: {
+ slug: orgSlug,
+ orderBy: { direction: orderDirection, field: orderField },
+ search: debouncedSearchTerm,
+ },
recordsPerPage: usersPerPage,
relayRoot: 'findOrganizationBySlug.affiliations',
fetchPolicy: 'network-only',
nextFetchPolicy: 'cache-first',
- },
- )
+ })
+
+ const orderByOptions = [
+ { value: 'USERNAME', text: t`Email` },
+ { value: 'DISPLAY_NAME', text: t`Name` },
+ { value: 'PERMISSION', text: t`Role` },
+ ]
if (error) return
- if (loading)
- return (
-
- User Affiliations
-
- )
+ let userlist = loading ? (
+
+ ) : (
+ (
+
+ No Users
+
+ )}
+ mb="4"
+ >
+ {({ permission, user }, index) => (
+
+
+
+
+ )}
+
+ )
return (
- (
-
- No Users
-
- )}
- mb="4"
- >
- {({ permission, user }, index) => (
-
-
-
-
- )}
-
+
+ {userlist}
', () => {
window.resizeTo(1024, 768)
const orgSlug = 'tbs-sct-gc-ca'
-
const mocks = [
{
request: {
query: PAGINATED_ORG_AFFILIATIONS,
- variables: { slug: 'tbs-sct-gc-ca', first: 10 },
+ variables: {
+ first: 10,
+ slug: orgSlug,
+ orderBy: { direction: 'ASC', field: 'PERMISSION' },
+ search: '',
+ },
},
result: {
data: {
@@ -132,10 +136,7 @@ describe('', () => {
userName: null,
})}
>
-
+