mirror of
https://github.com/logto-io/logto.git
synced 2025-01-06 20:40:08 -05:00
refactor(console,phrases): improve org guide introduction diagram
This commit is contained in:
parent
9ed7be3f67
commit
c724bcaecf
20 changed files with 1538 additions and 77 deletions
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,79 @@
|
|||
@use '@/scss/underscore' as _;
|
||||
|
||||
.container,
|
||||
.section {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.container {
|
||||
gap: _.unit(6);
|
||||
}
|
||||
|
||||
.section {
|
||||
gap: _.unit(3);
|
||||
}
|
||||
|
||||
.title {
|
||||
font: var(--font-title-1);
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
font: var(--font-title-2);
|
||||
}
|
||||
|
||||
.description {
|
||||
font: var(--font-body-2);
|
||||
}
|
||||
|
||||
.panel {
|
||||
border: 1px solid var(--color-on-info-container);
|
||||
border-radius: 8px;
|
||||
|
||||
.header {
|
||||
font: var(--font-title-2);
|
||||
color: var(--color-white);
|
||||
background: var(--color-on-info-container);
|
||||
line-height: 36px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.body {
|
||||
display: flex;
|
||||
padding: _.unit(8);
|
||||
gap: _.unit(5);
|
||||
|
||||
.cell {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: _.unit(2.5);
|
||||
font-family: 'Roboto Mono', monospace;
|
||||
min-height: 68px;
|
||||
color: var(--color-text);
|
||||
background: var(--color-surface-variant);
|
||||
border-radius: 4px;
|
||||
padding: _.unit(4) 0;
|
||||
|
||||
.cellTitle {
|
||||
font: var(--font-title-2);
|
||||
}
|
||||
|
||||
.items {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
gap: inherit;
|
||||
font: var(--font-body-2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.diagramText {
|
||||
fill: var(--color-layer-1);
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
import Diagram from './Diagram';
|
||||
import * as styles from './index.module.scss';
|
||||
|
||||
function Introduction() {
|
||||
const { t } = useTranslation(undefined, { keyPrefix: 'admin_console.organizations.guide' });
|
||||
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<div className={styles.section}>
|
||||
<div className={styles.title}>{t('introduction.section_1.title')}</div>
|
||||
<div className={styles.description}>{t('introduction.section_1.description')}</div>
|
||||
</div>
|
||||
<div className={styles.title}>{t('introduction.section_2.title')}</div>
|
||||
<div className={styles.section}>
|
||||
<div className={styles.subtitle}>{t('organization_permissions')}</div>
|
||||
<div className={styles.description}>
|
||||
{t('introduction.section_2.organization_permission_description')}
|
||||
</div>
|
||||
<div className={styles.panel}>
|
||||
<div className={styles.header}>{t('organization_permissions')}</div>
|
||||
<div className={styles.body}>
|
||||
<div className={styles.cell}>
|
||||
<div className={styles.cellTitle}>{t('read_resource')}</div>
|
||||
</div>
|
||||
<div className={styles.cell}>
|
||||
<div className={styles.cellTitle}>{t('edit_resource')}</div>
|
||||
</div>
|
||||
<div className={styles.cell}>
|
||||
<div className={styles.cellTitle}>{t('delete_resource')}</div>
|
||||
</div>
|
||||
<div className={styles.cell}>
|
||||
<div className={styles.cellTitle}>{t('ellipsis')}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className={styles.section}>
|
||||
<div className={styles.subtitle}>{t('organization_roles')}</div>
|
||||
<div className={styles.description}>
|
||||
{t('introduction.section_2.organization_role_description')}
|
||||
</div>
|
||||
<div className={styles.panel}>
|
||||
<div className={styles.header}>{t('organization_roles')}</div>
|
||||
<div className={styles.body}>
|
||||
<div className={styles.cell}>
|
||||
<div className={styles.cellTitle}>{t('admin')}</div>
|
||||
<div className={styles.items}>
|
||||
<div>{t('read_resource')}</div>
|
||||
<div>{t('edit_resource')}</div>
|
||||
<div>{t('delete_resource')}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className={styles.cell}>
|
||||
<div className={styles.cellTitle}>{t('member')}</div>
|
||||
<div className={styles.items}>
|
||||
<div>{t('read_resource')}</div>
|
||||
<div>{t('edit_resource')}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className={styles.cell}>
|
||||
<div className={styles.cellTitle}>{t('guest')}</div>
|
||||
<div className={styles.items}>
|
||||
<div>{t('read_resource')}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className={styles.cell}>
|
||||
<div className={styles.cellTitle}>{t('ellipsis')}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className={styles.section}>
|
||||
<div className={styles.title}>{t('introduction.section_3.title')}</div>
|
||||
<div className={styles.description}>{t('introduction.section_3.description')}</div>
|
||||
<Diagram />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default Introduction;
|
|
@ -9,7 +9,6 @@ import OrganizationFeatureDark from '@/assets/icons/organization-feature-dark.sv
|
|||
import OrganizationFeature from '@/assets/icons/organization-feature.svg';
|
||||
import PermissionFeatureDark from '@/assets/icons/permission-feature-dark.svg';
|
||||
import PermissionFeature from '@/assets/icons/permission-feature.svg';
|
||||
import workflowImage from '@/assets/images/organization-workflow.webp';
|
||||
import ActionBar from '@/components/ActionBar';
|
||||
import Button from '@/ds-components/Button';
|
||||
import Card from '@/ds-components/Card';
|
||||
|
@ -26,6 +25,8 @@ import DynamicFormFields from '../DynamicFormFields';
|
|||
import { steps } from '../const';
|
||||
import * as styles from '../index.module.scss';
|
||||
|
||||
import Introduction from './Introduction';
|
||||
|
||||
const icons = {
|
||||
[Theme.Light]: { OrganizationIcon: OrganizationFeature, PermissionIcon: PermissionFeature },
|
||||
[Theme.Dark]: {
|
||||
|
@ -97,9 +98,7 @@ function CreatePermissions() {
|
|||
<div className={classNames(styles.content)}>
|
||||
<Card className={styles.card}>
|
||||
<OrganizationIcon className={styles.icon} />
|
||||
<div className={styles.title}>{t('brief_title')}</div>
|
||||
<img className={styles.image} src={workflowImage} alt="Organization workflow" />
|
||||
<div className={styles.description}>{t('brief_introduction')}</div>
|
||||
<Introduction />
|
||||
</Card>
|
||||
<Card className={styles.card}>
|
||||
<PermissionIcon className={styles.icon} />
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
flex-direction: column;
|
||||
width: 100%;
|
||||
max-width: dim.$guide-main-content-max-width;
|
||||
min-width: dim.$guide-content-min-width;
|
||||
padding: _.unit(12);
|
||||
gap: _.unit(6);
|
||||
|
||||
|
|
|
@ -52,11 +52,32 @@ const organizations = {
|
|||
title: 'Start with guides',
|
||||
/** UNTRANSLATED */
|
||||
subtitle: 'Jumpstart your app development process with our guides',
|
||||
/** UNTRANSLATED */
|
||||
brief_title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
brief_introduction:
|
||||
"In a multi-tenant app, it's important to set clear authorization rules to keep each tenant's data separate. Think of each tenant of your product as its own Logto organization, and they should naturally share the same access control template by default. <a>Learn more</a>",
|
||||
introduction: {
|
||||
section_1: {
|
||||
/** UNTRANSLATED */
|
||||
title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
'In multi-tenant SaaS apps, we often make several organizations with the same set of permissions and roles, but within the context of an organization it can play an important part in controlling varying levels of access. Think of each tenant is like a Logto organization, and they naturally share the same access control “template”. We call this the "organization template."',
|
||||
},
|
||||
section_2: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Organization template consists of two parts',
|
||||
/** UNTRANSLATED */
|
||||
organization_permission_description:
|
||||
'Organization permission refers to the authorization to access a resource in the context of organization. An organization permission should be represented as a meaningful string, also serving as the name and unique identifier.',
|
||||
/** UNTRANSLATED */
|
||||
organization_role_description:
|
||||
'Organization role is a grouping of permissions that can be assigned to users. The permissions must come from the predefined organization permissions.',
|
||||
},
|
||||
section_3: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Interact the illustration to see how everything connects',
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
"Let's take an example. John, Sarah and Tony are in different organizations with different roles in the context of different organizations. Hover over the different modules and see what happens.",
|
||||
},
|
||||
},
|
||||
/** UNTRANSLATED */
|
||||
step_1: 'Step 1: Define organization permissions',
|
||||
/** UNTRANSLATED */
|
||||
|
@ -91,6 +112,40 @@ const organizations = {
|
|||
role_name: 'Role name',
|
||||
/** UNTRANSLATED */
|
||||
organization_name: 'Organization name',
|
||||
/** UNTRANSLATED */
|
||||
admin: 'Admin',
|
||||
/** UNTRANSLATED */
|
||||
admin_description:
|
||||
'Role "Admin" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
member: 'Member',
|
||||
/** UNTRANSLATED */
|
||||
member_description:
|
||||
'Role "Member" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
guest: 'Guest',
|
||||
/** UNTRANSLATED */
|
||||
guest_description:
|
||||
'Role "Guest" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
create_more_roles:
|
||||
'You can create more roles in the organization template settings. Those organization roles will apply to different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
read_resource: 'read:resource',
|
||||
/** UNTRANSLATED */
|
||||
edit_resource: 'edit:resource',
|
||||
/** UNTRANSLATED */
|
||||
delete_resource: 'delete:resource',
|
||||
/** UNTRANSLATED */
|
||||
ellipsis: '……',
|
||||
/** UNTRANSLATED */
|
||||
johnny:
|
||||
'Johny belongs to two organization with the email "john@email.com" as the single identifier. He is the admin of organization A as well as guest of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
sarah:
|
||||
'Sarah belongs to one organization with the email "sarah@email.com" as the single identifier. She is the admin of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
tony: 'Tony belongs to one organization with the email "tony@email.com" as the single identifier. He is the member of organization C.',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -28,9 +28,25 @@ const organization = {
|
|||
guide: {
|
||||
title: 'Start with guides',
|
||||
subtitle: 'Jumpstart your app development process with our guides',
|
||||
brief_title: "First, let's understand how organizations works in Logto",
|
||||
brief_introduction:
|
||||
"In a multi-tenant app, it's important to set clear authorization rules to keep each tenant's data separate. Think of each tenant of your product as its own Logto organization, and they should naturally share the same access control template by default. <a>Learn more</a>",
|
||||
introduction: {
|
||||
section_1: {
|
||||
title: "First, let's understand how organizations works in Logto",
|
||||
description:
|
||||
'In multi-tenant SaaS apps, we often make several organizations with the same set of permissions and roles, but within the context of an organization it can play an important part in controlling varying levels of access. Think of each tenant is like a Logto organization, and they naturally share the same access control “template”. We call this the "organization template."',
|
||||
},
|
||||
section_2: {
|
||||
title: 'Organization template consists of two parts',
|
||||
organization_permission_description:
|
||||
'Organization permission refers to the authorization to access a resource in the context of organization. An organization permission should be represented as a meaningful string, also serving as the name and unique identifier.',
|
||||
organization_role_description:
|
||||
'Organization role is a grouping of permissions that can be assigned to users. The permissions must come from the predefined organization permissions.',
|
||||
},
|
||||
section_3: {
|
||||
title: 'Interact the illustration to see how everything connects',
|
||||
description:
|
||||
"Let's take an example. John, Sarah and Tony are in different organizations with different roles in the context of different organizations. Hover over the different modules and see what happens.",
|
||||
},
|
||||
},
|
||||
step_1: 'Step 1: Define organization permissions',
|
||||
step_2: 'Step 2: Define organization roles',
|
||||
step_2_description:
|
||||
|
@ -49,6 +65,26 @@ const organization = {
|
|||
organization_roles: 'Organization roles',
|
||||
role_name: 'Role name',
|
||||
organization_name: 'Organization name',
|
||||
admin: 'Admin',
|
||||
admin_description:
|
||||
'Role "Admin" share the same organization template across different organizations.',
|
||||
member: 'Member',
|
||||
member_description:
|
||||
'Role "Member" share the same organization template across different organizations.',
|
||||
guest: 'Guest',
|
||||
guest_description:
|
||||
'Role "Guest" share the same organization template across different organizations.',
|
||||
create_more_roles:
|
||||
'You can create more roles in the organization template settings. Those organization roles will apply to different organizations.',
|
||||
read_resource: 'read:resource',
|
||||
edit_resource: 'edit:resource',
|
||||
delete_resource: 'delete:resource',
|
||||
ellipsis: '……',
|
||||
johnny:
|
||||
'Johny belongs to two organization with the email "john@email.com" as the single identifier. He is the admin of organization A as well as guest of organization B.',
|
||||
sarah:
|
||||
'Sarah belongs to one organization with the email "sarah@email.com" as the single identifier. She is the admin of organization B.',
|
||||
tony: 'Tony belongs to one organization with the email "tony@email.com" as the single identifier. He is the member of organization C.',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -52,11 +52,32 @@ const organizations = {
|
|||
title: 'Start with guides',
|
||||
/** UNTRANSLATED */
|
||||
subtitle: 'Jumpstart your app development process with our guides',
|
||||
/** UNTRANSLATED */
|
||||
brief_title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
brief_introduction:
|
||||
"In a multi-tenant app, it's important to set clear authorization rules to keep each tenant's data separate. Think of each tenant of your product as its own Logto organization, and they should naturally share the same access control template by default. <a>Learn more</a>",
|
||||
introduction: {
|
||||
section_1: {
|
||||
/** UNTRANSLATED */
|
||||
title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
'In multi-tenant SaaS apps, we often make several organizations with the same set of permissions and roles, but within the context of an organization it can play an important part in controlling varying levels of access. Think of each tenant is like a Logto organization, and they naturally share the same access control “template”. We call this the "organization template."',
|
||||
},
|
||||
section_2: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Organization template consists of two parts',
|
||||
/** UNTRANSLATED */
|
||||
organization_permission_description:
|
||||
'Organization permission refers to the authorization to access a resource in the context of organization. An organization permission should be represented as a meaningful string, also serving as the name and unique identifier.',
|
||||
/** UNTRANSLATED */
|
||||
organization_role_description:
|
||||
'Organization role is a grouping of permissions that can be assigned to users. The permissions must come from the predefined organization permissions.',
|
||||
},
|
||||
section_3: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Interact the illustration to see how everything connects',
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
"Let's take an example. John, Sarah and Tony are in different organizations with different roles in the context of different organizations. Hover over the different modules and see what happens.",
|
||||
},
|
||||
},
|
||||
/** UNTRANSLATED */
|
||||
step_1: 'Step 1: Define organization permissions',
|
||||
/** UNTRANSLATED */
|
||||
|
@ -91,6 +112,40 @@ const organizations = {
|
|||
role_name: 'Role name',
|
||||
/** UNTRANSLATED */
|
||||
organization_name: 'Organization name',
|
||||
/** UNTRANSLATED */
|
||||
admin: 'Admin',
|
||||
/** UNTRANSLATED */
|
||||
admin_description:
|
||||
'Role "Admin" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
member: 'Member',
|
||||
/** UNTRANSLATED */
|
||||
member_description:
|
||||
'Role "Member" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
guest: 'Guest',
|
||||
/** UNTRANSLATED */
|
||||
guest_description:
|
||||
'Role "Guest" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
create_more_roles:
|
||||
'You can create more roles in the organization template settings. Those organization roles will apply to different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
read_resource: 'read:resource',
|
||||
/** UNTRANSLATED */
|
||||
edit_resource: 'edit:resource',
|
||||
/** UNTRANSLATED */
|
||||
delete_resource: 'delete:resource',
|
||||
/** UNTRANSLATED */
|
||||
ellipsis: '……',
|
||||
/** UNTRANSLATED */
|
||||
johnny:
|
||||
'Johny belongs to two organization with the email "john@email.com" as the single identifier. He is the admin of organization A as well as guest of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
sarah:
|
||||
'Sarah belongs to one organization with the email "sarah@email.com" as the single identifier. She is the admin of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
tony: 'Tony belongs to one organization with the email "tony@email.com" as the single identifier. He is the member of organization C.',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -52,11 +52,32 @@ const organizations = {
|
|||
title: 'Start with guides',
|
||||
/** UNTRANSLATED */
|
||||
subtitle: 'Jumpstart your app development process with our guides',
|
||||
/** UNTRANSLATED */
|
||||
brief_title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
brief_introduction:
|
||||
"In a multi-tenant app, it's important to set clear authorization rules to keep each tenant's data separate. Think of each tenant of your product as its own Logto organization, and they should naturally share the same access control template by default. <a>Learn more</a>",
|
||||
introduction: {
|
||||
section_1: {
|
||||
/** UNTRANSLATED */
|
||||
title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
'In multi-tenant SaaS apps, we often make several organizations with the same set of permissions and roles, but within the context of an organization it can play an important part in controlling varying levels of access. Think of each tenant is like a Logto organization, and they naturally share the same access control “template”. We call this the "organization template."',
|
||||
},
|
||||
section_2: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Organization template consists of two parts',
|
||||
/** UNTRANSLATED */
|
||||
organization_permission_description:
|
||||
'Organization permission refers to the authorization to access a resource in the context of organization. An organization permission should be represented as a meaningful string, also serving as the name and unique identifier.',
|
||||
/** UNTRANSLATED */
|
||||
organization_role_description:
|
||||
'Organization role is a grouping of permissions that can be assigned to users. The permissions must come from the predefined organization permissions.',
|
||||
},
|
||||
section_3: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Interact the illustration to see how everything connects',
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
"Let's take an example. John, Sarah and Tony are in different organizations with different roles in the context of different organizations. Hover over the different modules and see what happens.",
|
||||
},
|
||||
},
|
||||
/** UNTRANSLATED */
|
||||
step_1: 'Step 1: Define organization permissions',
|
||||
/** UNTRANSLATED */
|
||||
|
@ -91,6 +112,40 @@ const organizations = {
|
|||
role_name: 'Role name',
|
||||
/** UNTRANSLATED */
|
||||
organization_name: 'Organization name',
|
||||
/** UNTRANSLATED */
|
||||
admin: 'Admin',
|
||||
/** UNTRANSLATED */
|
||||
admin_description:
|
||||
'Role "Admin" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
member: 'Member',
|
||||
/** UNTRANSLATED */
|
||||
member_description:
|
||||
'Role "Member" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
guest: 'Guest',
|
||||
/** UNTRANSLATED */
|
||||
guest_description:
|
||||
'Role "Guest" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
create_more_roles:
|
||||
'You can create more roles in the organization template settings. Those organization roles will apply to different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
read_resource: 'read:resource',
|
||||
/** UNTRANSLATED */
|
||||
edit_resource: 'edit:resource',
|
||||
/** UNTRANSLATED */
|
||||
delete_resource: 'delete:resource',
|
||||
/** UNTRANSLATED */
|
||||
ellipsis: '……',
|
||||
/** UNTRANSLATED */
|
||||
johnny:
|
||||
'Johny belongs to two organization with the email "john@email.com" as the single identifier. He is the admin of organization A as well as guest of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
sarah:
|
||||
'Sarah belongs to one organization with the email "sarah@email.com" as the single identifier. She is the admin of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
tony: 'Tony belongs to one organization with the email "tony@email.com" as the single identifier. He is the member of organization C.',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -52,11 +52,32 @@ const organizations = {
|
|||
title: 'Start with guides',
|
||||
/** UNTRANSLATED */
|
||||
subtitle: 'Jumpstart your app development process with our guides',
|
||||
/** UNTRANSLATED */
|
||||
brief_title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
brief_introduction:
|
||||
"In a multi-tenant app, it's important to set clear authorization rules to keep each tenant's data separate. Think of each tenant of your product as its own Logto organization, and they should naturally share the same access control template by default. <a>Learn more</a>",
|
||||
introduction: {
|
||||
section_1: {
|
||||
/** UNTRANSLATED */
|
||||
title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
'In multi-tenant SaaS apps, we often make several organizations with the same set of permissions and roles, but within the context of an organization it can play an important part in controlling varying levels of access. Think of each tenant is like a Logto organization, and they naturally share the same access control “template”. We call this the "organization template."',
|
||||
},
|
||||
section_2: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Organization template consists of two parts',
|
||||
/** UNTRANSLATED */
|
||||
organization_permission_description:
|
||||
'Organization permission refers to the authorization to access a resource in the context of organization. An organization permission should be represented as a meaningful string, also serving as the name and unique identifier.',
|
||||
/** UNTRANSLATED */
|
||||
organization_role_description:
|
||||
'Organization role is a grouping of permissions that can be assigned to users. The permissions must come from the predefined organization permissions.',
|
||||
},
|
||||
section_3: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Interact the illustration to see how everything connects',
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
"Let's take an example. John, Sarah and Tony are in different organizations with different roles in the context of different organizations. Hover over the different modules and see what happens.",
|
||||
},
|
||||
},
|
||||
/** UNTRANSLATED */
|
||||
step_1: 'Step 1: Define organization permissions',
|
||||
/** UNTRANSLATED */
|
||||
|
@ -91,6 +112,40 @@ const organizations = {
|
|||
role_name: 'Role name',
|
||||
/** UNTRANSLATED */
|
||||
organization_name: 'Organization name',
|
||||
/** UNTRANSLATED */
|
||||
admin: 'Admin',
|
||||
/** UNTRANSLATED */
|
||||
admin_description:
|
||||
'Role "Admin" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
member: 'Member',
|
||||
/** UNTRANSLATED */
|
||||
member_description:
|
||||
'Role "Member" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
guest: 'Guest',
|
||||
/** UNTRANSLATED */
|
||||
guest_description:
|
||||
'Role "Guest" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
create_more_roles:
|
||||
'You can create more roles in the organization template settings. Those organization roles will apply to different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
read_resource: 'read:resource',
|
||||
/** UNTRANSLATED */
|
||||
edit_resource: 'edit:resource',
|
||||
/** UNTRANSLATED */
|
||||
delete_resource: 'delete:resource',
|
||||
/** UNTRANSLATED */
|
||||
ellipsis: '……',
|
||||
/** UNTRANSLATED */
|
||||
johnny:
|
||||
'Johny belongs to two organization with the email "john@email.com" as the single identifier. He is the admin of organization A as well as guest of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
sarah:
|
||||
'Sarah belongs to one organization with the email "sarah@email.com" as the single identifier. She is the admin of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
tony: 'Tony belongs to one organization with the email "tony@email.com" as the single identifier. He is the member of organization C.',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -52,11 +52,32 @@ const organizations = {
|
|||
title: 'Start with guides',
|
||||
/** UNTRANSLATED */
|
||||
subtitle: 'Jumpstart your app development process with our guides',
|
||||
/** UNTRANSLATED */
|
||||
brief_title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
brief_introduction:
|
||||
"In a multi-tenant app, it's important to set clear authorization rules to keep each tenant's data separate. Think of each tenant of your product as its own Logto organization, and they should naturally share the same access control template by default. <a>Learn more</a>",
|
||||
introduction: {
|
||||
section_1: {
|
||||
/** UNTRANSLATED */
|
||||
title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
'In multi-tenant SaaS apps, we often make several organizations with the same set of permissions and roles, but within the context of an organization it can play an important part in controlling varying levels of access. Think of each tenant is like a Logto organization, and they naturally share the same access control “template”. We call this the "organization template."',
|
||||
},
|
||||
section_2: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Organization template consists of two parts',
|
||||
/** UNTRANSLATED */
|
||||
organization_permission_description:
|
||||
'Organization permission refers to the authorization to access a resource in the context of organization. An organization permission should be represented as a meaningful string, also serving as the name and unique identifier.',
|
||||
/** UNTRANSLATED */
|
||||
organization_role_description:
|
||||
'Organization role is a grouping of permissions that can be assigned to users. The permissions must come from the predefined organization permissions.',
|
||||
},
|
||||
section_3: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Interact the illustration to see how everything connects',
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
"Let's take an example. John, Sarah and Tony are in different organizations with different roles in the context of different organizations. Hover over the different modules and see what happens.",
|
||||
},
|
||||
},
|
||||
/** UNTRANSLATED */
|
||||
step_1: 'Step 1: Define organization permissions',
|
||||
/** UNTRANSLATED */
|
||||
|
@ -91,6 +112,40 @@ const organizations = {
|
|||
role_name: 'Role name',
|
||||
/** UNTRANSLATED */
|
||||
organization_name: 'Organization name',
|
||||
/** UNTRANSLATED */
|
||||
admin: 'Admin',
|
||||
/** UNTRANSLATED */
|
||||
admin_description:
|
||||
'Role "Admin" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
member: 'Member',
|
||||
/** UNTRANSLATED */
|
||||
member_description:
|
||||
'Role "Member" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
guest: 'Guest',
|
||||
/** UNTRANSLATED */
|
||||
guest_description:
|
||||
'Role "Guest" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
create_more_roles:
|
||||
'You can create more roles in the organization template settings. Those organization roles will apply to different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
read_resource: 'read:resource',
|
||||
/** UNTRANSLATED */
|
||||
edit_resource: 'edit:resource',
|
||||
/** UNTRANSLATED */
|
||||
delete_resource: 'delete:resource',
|
||||
/** UNTRANSLATED */
|
||||
ellipsis: '……',
|
||||
/** UNTRANSLATED */
|
||||
johnny:
|
||||
'Johny belongs to two organization with the email "john@email.com" as the single identifier. He is the admin of organization A as well as guest of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
sarah:
|
||||
'Sarah belongs to one organization with the email "sarah@email.com" as the single identifier. She is the admin of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
tony: 'Tony belongs to one organization with the email "tony@email.com" as the single identifier. He is the member of organization C.',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -52,11 +52,32 @@ const organizations = {
|
|||
title: 'Start with guides',
|
||||
/** UNTRANSLATED */
|
||||
subtitle: 'Jumpstart your app development process with our guides',
|
||||
/** UNTRANSLATED */
|
||||
brief_title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
brief_introduction:
|
||||
"In a multi-tenant app, it's important to set clear authorization rules to keep each tenant's data separate. Think of each tenant of your product as its own Logto organization, and they should naturally share the same access control template by default. <a>Learn more</a>",
|
||||
introduction: {
|
||||
section_1: {
|
||||
/** UNTRANSLATED */
|
||||
title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
'In multi-tenant SaaS apps, we often make several organizations with the same set of permissions and roles, but within the context of an organization it can play an important part in controlling varying levels of access. Think of each tenant is like a Logto organization, and they naturally share the same access control “template”. We call this the "organization template."',
|
||||
},
|
||||
section_2: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Organization template consists of two parts',
|
||||
/** UNTRANSLATED */
|
||||
organization_permission_description:
|
||||
'Organization permission refers to the authorization to access a resource in the context of organization. An organization permission should be represented as a meaningful string, also serving as the name and unique identifier.',
|
||||
/** UNTRANSLATED */
|
||||
organization_role_description:
|
||||
'Organization role is a grouping of permissions that can be assigned to users. The permissions must come from the predefined organization permissions.',
|
||||
},
|
||||
section_3: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Interact the illustration to see how everything connects',
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
"Let's take an example. John, Sarah and Tony are in different organizations with different roles in the context of different organizations. Hover over the different modules and see what happens.",
|
||||
},
|
||||
},
|
||||
/** UNTRANSLATED */
|
||||
step_1: 'Step 1: Define organization permissions',
|
||||
/** UNTRANSLATED */
|
||||
|
@ -91,6 +112,40 @@ const organizations = {
|
|||
role_name: 'Role name',
|
||||
/** UNTRANSLATED */
|
||||
organization_name: 'Organization name',
|
||||
/** UNTRANSLATED */
|
||||
admin: 'Admin',
|
||||
/** UNTRANSLATED */
|
||||
admin_description:
|
||||
'Role "Admin" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
member: 'Member',
|
||||
/** UNTRANSLATED */
|
||||
member_description:
|
||||
'Role "Member" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
guest: 'Guest',
|
||||
/** UNTRANSLATED */
|
||||
guest_description:
|
||||
'Role "Guest" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
create_more_roles:
|
||||
'You can create more roles in the organization template settings. Those organization roles will apply to different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
read_resource: 'read:resource',
|
||||
/** UNTRANSLATED */
|
||||
edit_resource: 'edit:resource',
|
||||
/** UNTRANSLATED */
|
||||
delete_resource: 'delete:resource',
|
||||
/** UNTRANSLATED */
|
||||
ellipsis: '……',
|
||||
/** UNTRANSLATED */
|
||||
johnny:
|
||||
'Johny belongs to two organization with the email "john@email.com" as the single identifier. He is the admin of organization A as well as guest of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
sarah:
|
||||
'Sarah belongs to one organization with the email "sarah@email.com" as the single identifier. She is the admin of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
tony: 'Tony belongs to one organization with the email "tony@email.com" as the single identifier. He is the member of organization C.',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -52,11 +52,32 @@ const organizations = {
|
|||
title: 'Start with guides',
|
||||
/** UNTRANSLATED */
|
||||
subtitle: 'Jumpstart your app development process with our guides',
|
||||
/** UNTRANSLATED */
|
||||
brief_title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
brief_introduction:
|
||||
"In a multi-tenant app, it's important to set clear authorization rules to keep each tenant's data separate. Think of each tenant of your product as its own Logto organization, and they should naturally share the same access control template by default. <a>Learn more</a>",
|
||||
introduction: {
|
||||
section_1: {
|
||||
/** UNTRANSLATED */
|
||||
title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
'In multi-tenant SaaS apps, we often make several organizations with the same set of permissions and roles, but within the context of an organization it can play an important part in controlling varying levels of access. Think of each tenant is like a Logto organization, and they naturally share the same access control “template”. We call this the "organization template."',
|
||||
},
|
||||
section_2: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Organization template consists of two parts',
|
||||
/** UNTRANSLATED */
|
||||
organization_permission_description:
|
||||
'Organization permission refers to the authorization to access a resource in the context of organization. An organization permission should be represented as a meaningful string, also serving as the name and unique identifier.',
|
||||
/** UNTRANSLATED */
|
||||
organization_role_description:
|
||||
'Organization role is a grouping of permissions that can be assigned to users. The permissions must come from the predefined organization permissions.',
|
||||
},
|
||||
section_3: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Interact the illustration to see how everything connects',
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
"Let's take an example. John, Sarah and Tony are in different organizations with different roles in the context of different organizations. Hover over the different modules and see what happens.",
|
||||
},
|
||||
},
|
||||
/** UNTRANSLATED */
|
||||
step_1: 'Step 1: Define organization permissions',
|
||||
/** UNTRANSLATED */
|
||||
|
@ -91,6 +112,40 @@ const organizations = {
|
|||
role_name: 'Role name',
|
||||
/** UNTRANSLATED */
|
||||
organization_name: 'Organization name',
|
||||
/** UNTRANSLATED */
|
||||
admin: 'Admin',
|
||||
/** UNTRANSLATED */
|
||||
admin_description:
|
||||
'Role "Admin" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
member: 'Member',
|
||||
/** UNTRANSLATED */
|
||||
member_description:
|
||||
'Role "Member" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
guest: 'Guest',
|
||||
/** UNTRANSLATED */
|
||||
guest_description:
|
||||
'Role "Guest" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
create_more_roles:
|
||||
'You can create more roles in the organization template settings. Those organization roles will apply to different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
read_resource: 'read:resource',
|
||||
/** UNTRANSLATED */
|
||||
edit_resource: 'edit:resource',
|
||||
/** UNTRANSLATED */
|
||||
delete_resource: 'delete:resource',
|
||||
/** UNTRANSLATED */
|
||||
ellipsis: '……',
|
||||
/** UNTRANSLATED */
|
||||
johnny:
|
||||
'Johny belongs to two organization with the email "john@email.com" as the single identifier. He is the admin of organization A as well as guest of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
sarah:
|
||||
'Sarah belongs to one organization with the email "sarah@email.com" as the single identifier. She is the admin of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
tony: 'Tony belongs to one organization with the email "tony@email.com" as the single identifier. He is the member of organization C.',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -52,11 +52,32 @@ const organizations = {
|
|||
title: 'Start with guides',
|
||||
/** UNTRANSLATED */
|
||||
subtitle: 'Jumpstart your app development process with our guides',
|
||||
/** UNTRANSLATED */
|
||||
brief_title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
brief_introduction:
|
||||
"In a multi-tenant app, it's important to set clear authorization rules to keep each tenant's data separate. Think of each tenant of your product as its own Logto organization, and they should naturally share the same access control template by default. <a>Learn more</a>",
|
||||
introduction: {
|
||||
section_1: {
|
||||
/** UNTRANSLATED */
|
||||
title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
'In multi-tenant SaaS apps, we often make several organizations with the same set of permissions and roles, but within the context of an organization it can play an important part in controlling varying levels of access. Think of each tenant is like a Logto organization, and they naturally share the same access control “template”. We call this the "organization template."',
|
||||
},
|
||||
section_2: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Organization template consists of two parts',
|
||||
/** UNTRANSLATED */
|
||||
organization_permission_description:
|
||||
'Organization permission refers to the authorization to access a resource in the context of organization. An organization permission should be represented as a meaningful string, also serving as the name and unique identifier.',
|
||||
/** UNTRANSLATED */
|
||||
organization_role_description:
|
||||
'Organization role is a grouping of permissions that can be assigned to users. The permissions must come from the predefined organization permissions.',
|
||||
},
|
||||
section_3: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Interact the illustration to see how everything connects',
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
"Let's take an example. John, Sarah and Tony are in different organizations with different roles in the context of different organizations. Hover over the different modules and see what happens.",
|
||||
},
|
||||
},
|
||||
/** UNTRANSLATED */
|
||||
step_1: 'Step 1: Define organization permissions',
|
||||
/** UNTRANSLATED */
|
||||
|
@ -91,6 +112,40 @@ const organizations = {
|
|||
role_name: 'Role name',
|
||||
/** UNTRANSLATED */
|
||||
organization_name: 'Organization name',
|
||||
/** UNTRANSLATED */
|
||||
admin: 'Admin',
|
||||
/** UNTRANSLATED */
|
||||
admin_description:
|
||||
'Role "Admin" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
member: 'Member',
|
||||
/** UNTRANSLATED */
|
||||
member_description:
|
||||
'Role "Member" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
guest: 'Guest',
|
||||
/** UNTRANSLATED */
|
||||
guest_description:
|
||||
'Role "Guest" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
create_more_roles:
|
||||
'You can create more roles in the organization template settings. Those organization roles will apply to different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
read_resource: 'read:resource',
|
||||
/** UNTRANSLATED */
|
||||
edit_resource: 'edit:resource',
|
||||
/** UNTRANSLATED */
|
||||
delete_resource: 'delete:resource',
|
||||
/** UNTRANSLATED */
|
||||
ellipsis: '……',
|
||||
/** UNTRANSLATED */
|
||||
johnny:
|
||||
'Johny belongs to two organization with the email "john@email.com" as the single identifier. He is the admin of organization A as well as guest of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
sarah:
|
||||
'Sarah belongs to one organization with the email "sarah@email.com" as the single identifier. She is the admin of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
tony: 'Tony belongs to one organization with the email "tony@email.com" as the single identifier. He is the member of organization C.',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -52,11 +52,32 @@ const organizations = {
|
|||
title: 'Start with guides',
|
||||
/** UNTRANSLATED */
|
||||
subtitle: 'Jumpstart your app development process with our guides',
|
||||
/** UNTRANSLATED */
|
||||
brief_title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
brief_introduction:
|
||||
"In a multi-tenant app, it's important to set clear authorization rules to keep each tenant's data separate. Think of each tenant of your product as its own Logto organization, and they should naturally share the same access control template by default. <a>Learn more</a>",
|
||||
introduction: {
|
||||
section_1: {
|
||||
/** UNTRANSLATED */
|
||||
title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
'In multi-tenant SaaS apps, we often make several organizations with the same set of permissions and roles, but within the context of an organization it can play an important part in controlling varying levels of access. Think of each tenant is like a Logto organization, and they naturally share the same access control “template”. We call this the "organization template."',
|
||||
},
|
||||
section_2: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Organization template consists of two parts',
|
||||
/** UNTRANSLATED */
|
||||
organization_permission_description:
|
||||
'Organization permission refers to the authorization to access a resource in the context of organization. An organization permission should be represented as a meaningful string, also serving as the name and unique identifier.',
|
||||
/** UNTRANSLATED */
|
||||
organization_role_description:
|
||||
'Organization role is a grouping of permissions that can be assigned to users. The permissions must come from the predefined organization permissions.',
|
||||
},
|
||||
section_3: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Interact the illustration to see how everything connects',
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
"Let's take an example. John, Sarah and Tony are in different organizations with different roles in the context of different organizations. Hover over the different modules and see what happens.",
|
||||
},
|
||||
},
|
||||
/** UNTRANSLATED */
|
||||
step_1: 'Step 1: Define organization permissions',
|
||||
/** UNTRANSLATED */
|
||||
|
@ -91,6 +112,40 @@ const organizations = {
|
|||
role_name: 'Role name',
|
||||
/** UNTRANSLATED */
|
||||
organization_name: 'Organization name',
|
||||
/** UNTRANSLATED */
|
||||
admin: 'Admin',
|
||||
/** UNTRANSLATED */
|
||||
admin_description:
|
||||
'Role "Admin" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
member: 'Member',
|
||||
/** UNTRANSLATED */
|
||||
member_description:
|
||||
'Role "Member" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
guest: 'Guest',
|
||||
/** UNTRANSLATED */
|
||||
guest_description:
|
||||
'Role "Guest" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
create_more_roles:
|
||||
'You can create more roles in the organization template settings. Those organization roles will apply to different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
read_resource: 'read:resource',
|
||||
/** UNTRANSLATED */
|
||||
edit_resource: 'edit:resource',
|
||||
/** UNTRANSLATED */
|
||||
delete_resource: 'delete:resource',
|
||||
/** UNTRANSLATED */
|
||||
ellipsis: '……',
|
||||
/** UNTRANSLATED */
|
||||
johnny:
|
||||
'Johny belongs to two organization with the email "john@email.com" as the single identifier. He is the admin of organization A as well as guest of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
sarah:
|
||||
'Sarah belongs to one organization with the email "sarah@email.com" as the single identifier. She is the admin of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
tony: 'Tony belongs to one organization with the email "tony@email.com" as the single identifier. He is the member of organization C.',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -52,11 +52,32 @@ const organizations = {
|
|||
title: 'Start with guides',
|
||||
/** UNTRANSLATED */
|
||||
subtitle: 'Jumpstart your app development process with our guides',
|
||||
/** UNTRANSLATED */
|
||||
brief_title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
brief_introduction:
|
||||
"In a multi-tenant app, it's important to set clear authorization rules to keep each tenant's data separate. Think of each tenant of your product as its own Logto organization, and they should naturally share the same access control template by default. <a>Learn more</a>",
|
||||
introduction: {
|
||||
section_1: {
|
||||
/** UNTRANSLATED */
|
||||
title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
'In multi-tenant SaaS apps, we often make several organizations with the same set of permissions and roles, but within the context of an organization it can play an important part in controlling varying levels of access. Think of each tenant is like a Logto organization, and they naturally share the same access control “template”. We call this the "organization template."',
|
||||
},
|
||||
section_2: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Organization template consists of two parts',
|
||||
/** UNTRANSLATED */
|
||||
organization_permission_description:
|
||||
'Organization permission refers to the authorization to access a resource in the context of organization. An organization permission should be represented as a meaningful string, also serving as the name and unique identifier.',
|
||||
/** UNTRANSLATED */
|
||||
organization_role_description:
|
||||
'Organization role is a grouping of permissions that can be assigned to users. The permissions must come from the predefined organization permissions.',
|
||||
},
|
||||
section_3: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Interact the illustration to see how everything connects',
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
"Let's take an example. John, Sarah and Tony are in different organizations with different roles in the context of different organizations. Hover over the different modules and see what happens.",
|
||||
},
|
||||
},
|
||||
/** UNTRANSLATED */
|
||||
step_1: 'Step 1: Define organization permissions',
|
||||
/** UNTRANSLATED */
|
||||
|
@ -91,6 +112,40 @@ const organizations = {
|
|||
role_name: 'Role name',
|
||||
/** UNTRANSLATED */
|
||||
organization_name: 'Organization name',
|
||||
/** UNTRANSLATED */
|
||||
admin: 'Admin',
|
||||
/** UNTRANSLATED */
|
||||
admin_description:
|
||||
'Role "Admin" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
member: 'Member',
|
||||
/** UNTRANSLATED */
|
||||
member_description:
|
||||
'Role "Member" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
guest: 'Guest',
|
||||
/** UNTRANSLATED */
|
||||
guest_description:
|
||||
'Role "Guest" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
create_more_roles:
|
||||
'You can create more roles in the organization template settings. Those organization roles will apply to different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
read_resource: 'read:resource',
|
||||
/** UNTRANSLATED */
|
||||
edit_resource: 'edit:resource',
|
||||
/** UNTRANSLATED */
|
||||
delete_resource: 'delete:resource',
|
||||
/** UNTRANSLATED */
|
||||
ellipsis: '……',
|
||||
/** UNTRANSLATED */
|
||||
johnny:
|
||||
'Johny belongs to two organization with the email "john@email.com" as the single identifier. He is the admin of organization A as well as guest of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
sarah:
|
||||
'Sarah belongs to one organization with the email "sarah@email.com" as the single identifier. She is the admin of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
tony: 'Tony belongs to one organization with the email "tony@email.com" as the single identifier. He is the member of organization C.',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -52,11 +52,32 @@ const organizations = {
|
|||
title: 'Start with guides',
|
||||
/** UNTRANSLATED */
|
||||
subtitle: 'Jumpstart your app development process with our guides',
|
||||
/** UNTRANSLATED */
|
||||
brief_title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
brief_introduction:
|
||||
"In a multi-tenant app, it's important to set clear authorization rules to keep each tenant's data separate. Think of each tenant of your product as its own Logto organization, and they should naturally share the same access control template by default. <a>Learn more</a>",
|
||||
introduction: {
|
||||
section_1: {
|
||||
/** UNTRANSLATED */
|
||||
title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
'In multi-tenant SaaS apps, we often make several organizations with the same set of permissions and roles, but within the context of an organization it can play an important part in controlling varying levels of access. Think of each tenant is like a Logto organization, and they naturally share the same access control “template”. We call this the "organization template."',
|
||||
},
|
||||
section_2: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Organization template consists of two parts',
|
||||
/** UNTRANSLATED */
|
||||
organization_permission_description:
|
||||
'Organization permission refers to the authorization to access a resource in the context of organization. An organization permission should be represented as a meaningful string, also serving as the name and unique identifier.',
|
||||
/** UNTRANSLATED */
|
||||
organization_role_description:
|
||||
'Organization role is a grouping of permissions that can be assigned to users. The permissions must come from the predefined organization permissions.',
|
||||
},
|
||||
section_3: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Interact the illustration to see how everything connects',
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
"Let's take an example. John, Sarah and Tony are in different organizations with different roles in the context of different organizations. Hover over the different modules and see what happens.",
|
||||
},
|
||||
},
|
||||
/** UNTRANSLATED */
|
||||
step_1: 'Step 1: Define organization permissions',
|
||||
/** UNTRANSLATED */
|
||||
|
@ -91,6 +112,40 @@ const organizations = {
|
|||
role_name: 'Role name',
|
||||
/** UNTRANSLATED */
|
||||
organization_name: 'Organization name',
|
||||
/** UNTRANSLATED */
|
||||
admin: 'Admin',
|
||||
/** UNTRANSLATED */
|
||||
admin_description:
|
||||
'Role "Admin" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
member: 'Member',
|
||||
/** UNTRANSLATED */
|
||||
member_description:
|
||||
'Role "Member" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
guest: 'Guest',
|
||||
/** UNTRANSLATED */
|
||||
guest_description:
|
||||
'Role "Guest" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
create_more_roles:
|
||||
'You can create more roles in the organization template settings. Those organization roles will apply to different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
read_resource: 'read:resource',
|
||||
/** UNTRANSLATED */
|
||||
edit_resource: 'edit:resource',
|
||||
/** UNTRANSLATED */
|
||||
delete_resource: 'delete:resource',
|
||||
/** UNTRANSLATED */
|
||||
ellipsis: '……',
|
||||
/** UNTRANSLATED */
|
||||
johnny:
|
||||
'Johny belongs to two organization with the email "john@email.com" as the single identifier. He is the admin of organization A as well as guest of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
sarah:
|
||||
'Sarah belongs to one organization with the email "sarah@email.com" as the single identifier. She is the admin of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
tony: 'Tony belongs to one organization with the email "tony@email.com" as the single identifier. He is the member of organization C.',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -52,11 +52,32 @@ const organizations = {
|
|||
title: 'Start with guides',
|
||||
/** UNTRANSLATED */
|
||||
subtitle: 'Jumpstart your app development process with our guides',
|
||||
/** UNTRANSLATED */
|
||||
brief_title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
brief_introduction:
|
||||
"In a multi-tenant app, it's important to set clear authorization rules to keep each tenant's data separate. Think of each tenant of your product as its own Logto organization, and they should naturally share the same access control template by default. <a>Learn more</a>",
|
||||
introduction: {
|
||||
section_1: {
|
||||
/** UNTRANSLATED */
|
||||
title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
'In multi-tenant SaaS apps, we often make several organizations with the same set of permissions and roles, but within the context of an organization it can play an important part in controlling varying levels of access. Think of each tenant is like a Logto organization, and they naturally share the same access control “template”. We call this the "organization template."',
|
||||
},
|
||||
section_2: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Organization template consists of two parts',
|
||||
/** UNTRANSLATED */
|
||||
organization_permission_description:
|
||||
'Organization permission refers to the authorization to access a resource in the context of organization. An organization permission should be represented as a meaningful string, also serving as the name and unique identifier.',
|
||||
/** UNTRANSLATED */
|
||||
organization_role_description:
|
||||
'Organization role is a grouping of permissions that can be assigned to users. The permissions must come from the predefined organization permissions.',
|
||||
},
|
||||
section_3: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Interact the illustration to see how everything connects',
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
"Let's take an example. John, Sarah and Tony are in different organizations with different roles in the context of different organizations. Hover over the different modules and see what happens.",
|
||||
},
|
||||
},
|
||||
/** UNTRANSLATED */
|
||||
step_1: 'Step 1: Define organization permissions',
|
||||
/** UNTRANSLATED */
|
||||
|
@ -91,6 +112,40 @@ const organizations = {
|
|||
role_name: 'Role name',
|
||||
/** UNTRANSLATED */
|
||||
organization_name: 'Organization name',
|
||||
/** UNTRANSLATED */
|
||||
admin: 'Admin',
|
||||
/** UNTRANSLATED */
|
||||
admin_description:
|
||||
'Role "Admin" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
member: 'Member',
|
||||
/** UNTRANSLATED */
|
||||
member_description:
|
||||
'Role "Member" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
guest: 'Guest',
|
||||
/** UNTRANSLATED */
|
||||
guest_description:
|
||||
'Role "Guest" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
create_more_roles:
|
||||
'You can create more roles in the organization template settings. Those organization roles will apply to different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
read_resource: 'read:resource',
|
||||
/** UNTRANSLATED */
|
||||
edit_resource: 'edit:resource',
|
||||
/** UNTRANSLATED */
|
||||
delete_resource: 'delete:resource',
|
||||
/** UNTRANSLATED */
|
||||
ellipsis: '……',
|
||||
/** UNTRANSLATED */
|
||||
johnny:
|
||||
'Johny belongs to two organization with the email "john@email.com" as the single identifier. He is the admin of organization A as well as guest of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
sarah:
|
||||
'Sarah belongs to one organization with the email "sarah@email.com" as the single identifier. She is the admin of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
tony: 'Tony belongs to one organization with the email "tony@email.com" as the single identifier. He is the member of organization C.',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -52,11 +52,32 @@ const organizations = {
|
|||
title: 'Start with guides',
|
||||
/** UNTRANSLATED */
|
||||
subtitle: 'Jumpstart your app development process with our guides',
|
||||
/** UNTRANSLATED */
|
||||
brief_title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
brief_introduction:
|
||||
"In a multi-tenant app, it's important to set clear authorization rules to keep each tenant's data separate. Think of each tenant of your product as its own Logto organization, and they should naturally share the same access control template by default. <a>Learn more</a>",
|
||||
introduction: {
|
||||
section_1: {
|
||||
/** UNTRANSLATED */
|
||||
title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
'In multi-tenant SaaS apps, we often make several organizations with the same set of permissions and roles, but within the context of an organization it can play an important part in controlling varying levels of access. Think of each tenant is like a Logto organization, and they naturally share the same access control “template”. We call this the "organization template."',
|
||||
},
|
||||
section_2: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Organization template consists of two parts',
|
||||
/** UNTRANSLATED */
|
||||
organization_permission_description:
|
||||
'Organization permission refers to the authorization to access a resource in the context of organization. An organization permission should be represented as a meaningful string, also serving as the name and unique identifier.',
|
||||
/** UNTRANSLATED */
|
||||
organization_role_description:
|
||||
'Organization role is a grouping of permissions that can be assigned to users. The permissions must come from the predefined organization permissions.',
|
||||
},
|
||||
section_3: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Interact the illustration to see how everything connects',
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
"Let's take an example. John, Sarah and Tony are in different organizations with different roles in the context of different organizations. Hover over the different modules and see what happens.",
|
||||
},
|
||||
},
|
||||
/** UNTRANSLATED */
|
||||
step_1: 'Step 1: Define organization permissions',
|
||||
/** UNTRANSLATED */
|
||||
|
@ -91,6 +112,40 @@ const organizations = {
|
|||
role_name: 'Role name',
|
||||
/** UNTRANSLATED */
|
||||
organization_name: 'Organization name',
|
||||
/** UNTRANSLATED */
|
||||
admin: 'Admin',
|
||||
/** UNTRANSLATED */
|
||||
admin_description:
|
||||
'Role "Admin" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
member: 'Member',
|
||||
/** UNTRANSLATED */
|
||||
member_description:
|
||||
'Role "Member" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
guest: 'Guest',
|
||||
/** UNTRANSLATED */
|
||||
guest_description:
|
||||
'Role "Guest" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
create_more_roles:
|
||||
'You can create more roles in the organization template settings. Those organization roles will apply to different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
read_resource: 'read:resource',
|
||||
/** UNTRANSLATED */
|
||||
edit_resource: 'edit:resource',
|
||||
/** UNTRANSLATED */
|
||||
delete_resource: 'delete:resource',
|
||||
/** UNTRANSLATED */
|
||||
ellipsis: '……',
|
||||
/** UNTRANSLATED */
|
||||
johnny:
|
||||
'Johny belongs to two organization with the email "john@email.com" as the single identifier. He is the admin of organization A as well as guest of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
sarah:
|
||||
'Sarah belongs to one organization with the email "sarah@email.com" as the single identifier. She is the admin of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
tony: 'Tony belongs to one organization with the email "tony@email.com" as the single identifier. He is the member of organization C.',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -52,11 +52,32 @@ const organizations = {
|
|||
title: 'Start with guides',
|
||||
/** UNTRANSLATED */
|
||||
subtitle: 'Jumpstart your app development process with our guides',
|
||||
/** UNTRANSLATED */
|
||||
brief_title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
brief_introduction:
|
||||
"In a multi-tenant app, it's important to set clear authorization rules to keep each tenant's data separate. Think of each tenant of your product as its own Logto organization, and they should naturally share the same access control template by default. <a>Learn more</a>",
|
||||
introduction: {
|
||||
section_1: {
|
||||
/** UNTRANSLATED */
|
||||
title: "First, let's understand how organizations works in Logto",
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
'In multi-tenant SaaS apps, we often make several organizations with the same set of permissions and roles, but within the context of an organization it can play an important part in controlling varying levels of access. Think of each tenant is like a Logto organization, and they naturally share the same access control “template”. We call this the "organization template."',
|
||||
},
|
||||
section_2: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Organization template consists of two parts',
|
||||
/** UNTRANSLATED */
|
||||
organization_permission_description:
|
||||
'Organization permission refers to the authorization to access a resource in the context of organization. An organization permission should be represented as a meaningful string, also serving as the name and unique identifier.',
|
||||
/** UNTRANSLATED */
|
||||
organization_role_description:
|
||||
'Organization role is a grouping of permissions that can be assigned to users. The permissions must come from the predefined organization permissions.',
|
||||
},
|
||||
section_3: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Interact the illustration to see how everything connects',
|
||||
/** UNTRANSLATED */
|
||||
description:
|
||||
"Let's take an example. John, Sarah and Tony are in different organizations with different roles in the context of different organizations. Hover over the different modules and see what happens.",
|
||||
},
|
||||
},
|
||||
/** UNTRANSLATED */
|
||||
step_1: 'Step 1: Define organization permissions',
|
||||
/** UNTRANSLATED */
|
||||
|
@ -91,6 +112,40 @@ const organizations = {
|
|||
role_name: 'Role name',
|
||||
/** UNTRANSLATED */
|
||||
organization_name: 'Organization name',
|
||||
/** UNTRANSLATED */
|
||||
admin: 'Admin',
|
||||
/** UNTRANSLATED */
|
||||
admin_description:
|
||||
'Role "Admin" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
member: 'Member',
|
||||
/** UNTRANSLATED */
|
||||
member_description:
|
||||
'Role "Member" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
guest: 'Guest',
|
||||
/** UNTRANSLATED */
|
||||
guest_description:
|
||||
'Role "Guest" share the same organization template across different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
create_more_roles:
|
||||
'You can create more roles in the organization template settings. Those organization roles will apply to different organizations.',
|
||||
/** UNTRANSLATED */
|
||||
read_resource: 'read:resource',
|
||||
/** UNTRANSLATED */
|
||||
edit_resource: 'edit:resource',
|
||||
/** UNTRANSLATED */
|
||||
delete_resource: 'delete:resource',
|
||||
/** UNTRANSLATED */
|
||||
ellipsis: '……',
|
||||
/** UNTRANSLATED */
|
||||
johnny:
|
||||
'Johny belongs to two organization with the email "john@email.com" as the single identifier. He is the admin of organization A as well as guest of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
sarah:
|
||||
'Sarah belongs to one organization with the email "sarah@email.com" as the single identifier. She is the admin of organization B.',
|
||||
/** UNTRANSLATED */
|
||||
tony: 'Tony belongs to one organization with the email "tony@email.com" as the single identifier. He is the member of organization C.',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue