mirror of
https://github.com/documenso/documenso.git
synced 2025-11-17 02:01:33 +10:00
## Description Add support for teams which will allow users to collaborate on documents. Teams features allows users to: - Create, manage and transfer teams - Manage team members - Manage team emails - Manage a shared team inbox and documents These changes do NOT include the following, which are planned for a future release: - Team templates - Team API - Search menu integration ## Testing Performed - Added E2E tests for general team management - Added E2E tests to validate document counts ## Checklist - [X] I have tested these changes locally and they work as expected. - [X] I have added/updated tests that prove the effectiveness of these changes. - [ ] I have updated the documentation to reflect these changes, if applicable. - [X] I have followed the project's coding style guidelines.
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import { getPricesByPlan } from '@documenso/ee/server-only/stripe/get-prices-by-plan';
|
|
import { STRIPE_PLAN_TYPE } from '@documenso/lib/constants/billing';
|
|
|
|
import { UsersDataTable } from './data-table-users';
|
|
import { search } from './fetch-users.actions';
|
|
|
|
type AdminManageUsersProps = {
|
|
searchParams?: {
|
|
search?: string;
|
|
page?: number;
|
|
perPage?: number;
|
|
};
|
|
};
|
|
|
|
export default async function AdminManageUsers({ searchParams = {} }: AdminManageUsersProps) {
|
|
const page = Number(searchParams.page) || 1;
|
|
const perPage = Number(searchParams.perPage) || 10;
|
|
const searchString = searchParams.search || '';
|
|
|
|
const [{ users, totalPages }, individualPrices] = await Promise.all([
|
|
search(searchString, page, perPage),
|
|
getPricesByPlan(STRIPE_PLAN_TYPE.COMMUNITY),
|
|
]);
|
|
|
|
const individualPriceIds = individualPrices.map((price) => price.id);
|
|
|
|
return (
|
|
<div>
|
|
<h2 className="text-4xl font-semibold">Manage users</h2>
|
|
<UsersDataTable
|
|
users={users}
|
|
individualPriceIds={individualPriceIds}
|
|
totalPages={totalPages}
|
|
page={page}
|
|
perPage={perPage}
|
|
/>
|
|
</div>
|
|
);
|
|
}
|