From a5f6ecb992f032abd215d3f10f6823ddbff35fc0 Mon Sep 17 00:00:00 2001 From: Piyush Gupta <56182734+gupta-piyush19@users.noreply.github.com> Date: Fri, 31 May 2024 13:39:19 +0530 Subject: [PATCH] docs: adds documentation table for team roles (#2709) Co-authored-by: Matthias Nannt --- ...u.webp => organization-settings-menu.webp} | Bin apps/docs/app/global/access-roles/page.mdx | 111 +++++++++++++----- .../app/introduction/why-open-source/page.mdx | 33 +++--- .../components/MainNavigation.tsx | 2 +- .../[environmentId]/surveys/page.tsx | 2 +- 5 files changed, 96 insertions(+), 52 deletions(-) rename apps/docs/app/global/access-roles/images/{team-settings-menu.webp => organization-settings-menu.webp} (100%) diff --git a/apps/docs/app/global/access-roles/images/team-settings-menu.webp b/apps/docs/app/global/access-roles/images/organization-settings-menu.webp similarity index 100% rename from apps/docs/app/global/access-roles/images/team-settings-menu.webp rename to apps/docs/app/global/access-roles/images/organization-settings-menu.webp diff --git a/apps/docs/app/global/access-roles/page.mdx b/apps/docs/app/global/access-roles/page.mdx index ea6b69e340..834959ff21 100644 --- a/apps/docs/app/global/access-roles/page.mdx +++ b/apps/docs/app/global/access-roles/page.mdx @@ -1,41 +1,89 @@ import { MdxImage } from "@/components/MdxImage"; + import AddMember from "./images/add-member.webp"; import BulkInvite from "./images/bulk-invite.webp"; import IndvInvite from "./images/individual-invite.webp"; -import MenuItem from "./images/team-settings-menu.webp"; +import MenuItem from "./images/organization-settings-menu.webp"; export const metadata = { - title: "Team Access Roles", + title: "Organization Access Roles", description: - "Assign different roles to team members to grant them specific rights like creating surveys, viewing responses, or managing team members.", + "Assign different roles to organization members to grant them specific rights like creating surveys, viewing responses, or managing organization members.", }; -# Team Access Roles +# Organization Access Roles -Assign different roles to team members to grant them specific rights like creating surveys, viewing responses, or managing team members. +Assign different roles to organization members to grant them specific rights like creating surveys, viewing responses, or managing organization members. -Access Roles is a feature of the **Enterprise Edition**. In the **Community Edition** and on the **Free** and **Startup** plan in the Cloud you can invite unlimited team members as `Admins`. + + Access Roles is a feature of the **Enterprise Edition**. In the **Community Edition** and on the **Free** + and **Startup** plan in the Cloud you can invite unlimited organization members as `Admins`. + +Here are the different access permissions, ranked from highest to lowest access -| Role | Rights | -| --- | --- | -| Owner | Full rights; there can only one owner per team. Ownership can be transferred. | -| Admin | Full access rights incl. managing team members | -| Developer | Full product access to setup and run surveys incl. global styling, actions and attribute management, etc | -| Editor | Create and edit surveys. No access to features related to setting up or maintaining Formbricks. | -| Viewer | View survey results only. | +1. Owner +2. Admin +3. Developer +4. Editor +5. Viewer -## Inviting team members +For more information on user roles & permissions, see below: -There are two ways to invite team members: One by one or in bulk. +| | Owner | Admin | Editor | Developer | Viewer | +| -------------------------------- | ----- | ----- | ------ | --------- | ------ | +| **Organization** | | | | | | +| Update organization | ✅ | ✅ | ❌ | ❌ | ❌ | +| Delete organization | ✅ | ❌ | ❌ | ❌ | ❌ | +| Add new Member | ✅ | ✅ | ❌ | ❌ | ❌ | +| Delete Member | ✅ | ✅ | ❌ | ❌ | ❌ | +| Update Member Access | ✅ | ✅ | ❌ | ❌ | ❌ | +| Update Billing | ✅ | ✅ | ❌ | ❌ | ❌ | +| **Product** | | | | | | +| Create Product | ✅ | ✅ | ✅ | ✅ | ❌ | +| Update Product Name | ✅ | ✅ | ✅ | ❌ | ❌ | +| Update Product Name | ✅ | ✅ | ✅ | ❌ | ❌ | +| Update Product Recontact Options | ✅ | ✅ | ✅ | ✅ | ❌ | +| Update Look & Feel | ✅ | ✅ | ✅ | ✅ | ❌ | +| Update Survey Languages | ✅ | ✅ | ✅ | ✅ | ❌ | +| Delete Product | ✅ | ✅ | ✅ | ✅ | ❌ | +| **Surveys** | | | | | | +| Create New Survey | ✅ | ✅ | ✅ | ✅ | ❌ | +| Edit Survey | ✅ | ✅ | ✅ | ✅ | ❌ | +| Delete Survey | ✅ | ✅ | ✅ | ✅ | ❌ | +| View survey results | ✅ | ✅ | ✅ | ✅ | ✅ | +| **Response** | | | | | | +| Delete response | ✅ | ✅ | ✅ | ✅ | ❌ | +| Add tags on response | ✅ | ✅ | ✅ | ✅ | ❌ | +| Edit tags on response | ✅ | ✅ | ✅ | ✅ | ❌ | +| **Actions** | | | | | | +| Create Action | ✅ | ✅ | ✅ | ✅ | ❌ | +| Update Action | ✅ | ✅ | ✅ | ✅ | ❌ | +| Delete Action | ✅ | ✅ | ✅ | ✅ | ❌ | +| **API Keys** | | | | | | +| Create API key | ✅ | ✅ | ✅ | ✅ | ❌ | +| Update API key | ✅ | ✅ | ✅ | ✅ | ❌ | +| Delete API key | ✅ | ✅ | ✅ | ✅ | ❌ | +| **Tags** | | | | | | +| Create tags | ✅ | ✅ | ✅ | ✅ | ❌ | +| Update tags | ✅ | ✅ | ✅ | ✅ | ❌ | +| Delete tags | ✅ | ✅ | ✅ | ✅ | ❌ | +| **People** | | | | | | +| Delete Person | ✅ | ✅ | ✅ | ✅ | ❌ | +| **Integrations** | | | | | | +| Manage Integrations | ✅ | ✅ | ✅ | ✅ | ❌ | -### Invite team members one by one +## Inviting organization members -1. Go to the `Team Settings` page via the menu in the lower right corner: +There are two ways to invite organization members: One by one or in bulk. - @@ -49,7 +97,7 @@ src={MenuItem} className="max-w-full rounded-lg sm:max-w-3xl " /> -3. In the modal, add the Name, Email and Role of the team member you want to invite: +3. In the modal, add the Name, Email and Role of the organization member you want to invite: -Access Roles is a feature of the **Enterprise Edition**. In the **Community Edition** and on the **Free** and **Startup** plan in the Cloud you can invite unlimited team members as `Admins`. + + Access Roles is a feature of the **Enterprise Edition**. In the **Community Edition** and on the **Free** + and **Startup** plan in the Cloud you can invite unlimited organization members as `Admins`. + +Formbricks sends an email to the organization member with an invitation link. The organization member can accept the invitation or create a new account by clicking on the link. -Formbricks sends an email to the team member with an invitation link. The team member can accept the invitation or create a new account by clicking on the link. +### Invite organization members in bulk - -### Invite team members in bulk - -1. Go to the `Team Settings` page via the menu in the lower right corner: +1. Go to the `Organization Settings` page via the menu in the lower right corner: @@ -84,7 +133,7 @@ Formbricks sends an email to the team member with an invitation link. The team m className="max-w-full rounded-lg sm:max-w-3xl " /> -3. In the modal, switch to `Bulk Invite`. You can download an example .CSV file to fill in the Name, Email and Role of the team members you want to invite: +3. In the modal, switch to `Bulk Invite`. You can download an example .CSV file to fill in the Name, Email and Role of the organization members you want to invite: -4. Upload the filled .CSV file and invite the team members in bulk ✅ +4. Upload the filled .CSV file and invite the organization members in bulk ✅ -Formbricks sends an email to each team member in the CSV. The member can accept the invitation or create a new account by clicking on the link. +Formbricks sends an email to each organization member in the CSV. The member can accept the invitation or create a new account by clicking on the link. --- diff --git a/apps/docs/app/introduction/why-open-source/page.mdx b/apps/docs/app/introduction/why-open-source/page.mdx index bad69cb219..fbf25bbcc8 100644 --- a/apps/docs/app/introduction/why-open-source/page.mdx +++ b/apps/docs/app/introduction/why-open-source/page.mdx @@ -4,27 +4,22 @@ export const metadata = { "Open source software beats proprietary software in every aspect - except for value capture. We're investing in growing the value creation of our open source platform because it directly translates into business with large organisations.", }; -#### Introduction +#### Introduction # Why is Formbricks open source? A lot has been written on why open source software beats proprietary software in all aspects - except for value capture for the company investing into its development. While this definitely poses a challenge for a profit-oriented organisation, it's also an interesting opportunity: Due to the open nature of our platform, it's usage is significantly higher. Capturing a small part of the value our platform generates translates into a decently-sized business. - -| Advantage | Open Source Software | Proprietary Software | -|----------------------|----------------------------------------------------|----------------------------------------------------------| -| **Data Privacy** | Self-host for maximum control over data | Dependent on thrid party data processor. | -| **Cost** | Often free or significantly lower cost. | Typically requires a purchase or subscription. | -| **Customizability** | Code can be modified to meet specific needs. | Limited customization, restricted to developer's features.| -| **Security**| Frequent community reviews identify vulnerabilities quickly. | Security updates depend on vendor's schedule and interest.| -| **Flexibility**| Supports a wide range of applications and integrations. | Designed for specific environments and integrations. | -| **Community Support**| Large, active communities offer free support and resources. | Paid customer support with limited community help. | -| **Innovation** | Fosters rapid innovation through community contributions. | Innovations depend on vendor's vision and development team.| -| **Licensing** | Permissive licenses allow broad usage and modification. | Strict licensing with limited redistribution rights. | -| **Independence** | Not dependent on a single vendor or developer. | Vendor lock-in can limit future choices. | -| **Transparency** | Full visibility into the code base and development. | Closed-source, code is hidden from users. | -| **Interoperability**| Supports open standards, ensuring interoperability. | Often requires additional software or plugins for compatibility. | - - - - +| Advantage | Open Source Software | Proprietary Software | +| --------------------- | ------------------------------------------------------------ | ---------------------------------------------------------------- | +| **Data Privacy** | Self-host for maximum control over data | Dependent on thrid party data processor. | +| **Cost** | Often free or significantly lower cost. | Typically requires a purchase or subscription. | +| **Customizability** | Code can be modified to meet specific needs. | Limited customization, restricted to developer's features. | +| **Security** | Frequent community reviews identify vulnerabilities quickly. | Security updates depend on vendor's schedule and interest. | +| **Flexibility** | Supports a wide range of applications and integrations. | Designed for specific environments and integrations. | +| **Community Support** | Large, active communities offer free support and resources. | Paid customer support with limited community help. | +| **Innovation** | Fosters rapid innovation through community contributions. | Innovations depend on vendor's vision and development team. | +| **Licensing** | Permissive licenses allow broad usage and modification. | Strict licensing with limited redistribution rights. | +| **Independence** | Not dependent on a single vendor or developer. | Vendor lock-in can limit future choices. | +| **Transparency** | Full visibility into the code base and development. | Closed-source, code is hidden from users. | +| **Interoperability** | Supports open standards, ensuring interoperability. | Often requires additional software or plugins for compatibility. | diff --git a/apps/web/app/(app)/environments/[environmentId]/components/MainNavigation.tsx b/apps/web/app/(app)/environments/[environmentId]/components/MainNavigation.tsx index 3e1ac434cc..2706f9395a 100644 --- a/apps/web/app/(app)/environments/[environmentId]/components/MainNavigation.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/components/MainNavigation.tsx @@ -164,7 +164,7 @@ export const MainNavigation = ({ href: `/environments/${environment.id}/product/general`, icon: Cog, isActive: pathname?.includes("/product"), - isHidden: false, + isHidden: isViewer, }, ], [environment.id, pathname, isViewer] diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/page.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/page.tsx index 465b19c64e..8642f74b1a 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/page.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/page.tsx @@ -63,7 +63,7 @@ const Page = async ({ params }) => { {surveyCount > 0 ? ( <> - + : CreateSurveyButton} />