refactor: consolidate permission hooks and gate role filter behind read permission in UsersTable
This commit is contained in:
parent
3479c1943a
commit
f76bbc6f65
@ -30,7 +30,10 @@ import { useAppTheme } from "@/hooks/useAppTheme";
|
|||||||
import { usePermissions } from "@/hooks/usePermissions";
|
import { usePermissions } from "@/hooks/usePermissions";
|
||||||
|
|
||||||
// Helper function to get user initials
|
// Helper function to get user initials
|
||||||
const getUserInitials = (firstName: string | null | undefined, lastName: string | null | undefined): string => {
|
const getUserInitials = (
|
||||||
|
firstName: string | null | undefined,
|
||||||
|
lastName: string | null | undefined,
|
||||||
|
): string => {
|
||||||
const first = (firstName || "").trim().slice(0, 1);
|
const first = (firstName || "").trim().slice(0, 1);
|
||||||
const last = (lastName || "").trim().slice(0, 1);
|
const last = (lastName || "").trim().slice(0, 1);
|
||||||
return `${first}${last}`.toUpperCase() || "?";
|
return `${first}${last}`.toUpperCase() || "?";
|
||||||
@ -69,9 +72,9 @@ interface UsersTableProps {
|
|||||||
|
|
||||||
export const UsersTable = forwardRef<UsersTableRef, UsersTableProps>(
|
export const UsersTable = forwardRef<UsersTableRef, UsersTableProps>(
|
||||||
({ tenantId, showHeader = true, compact = false }, ref): ReactElement => {
|
({ tenantId, showHeader = true, compact = false }, ref): ReactElement => {
|
||||||
const { canUpdate } = usePermissions();
|
const { canUpdate, canRead, canCreate } = usePermissions();
|
||||||
const { primaryColor } = useAppTheme();
|
const { primaryColor } = useAppTheme();
|
||||||
const { canCreate } = usePermissions();
|
// const { canCreate } = usePermissions();
|
||||||
const [users, setUsers] = useState<User[]>([]);
|
const [users, setUsers] = useState<User[]>([]);
|
||||||
const [isLoading, setIsLoading] = useState<boolean>(true);
|
const [isLoading, setIsLoading] = useState<boolean>(true);
|
||||||
const [error, setError] = useState<string | null>(null);
|
const [error, setError] = useState<string | null>(null);
|
||||||
@ -579,6 +582,7 @@ export const UsersTable = forwardRef<UsersTableRef, UsersTableProps>(
|
|||||||
}}
|
}}
|
||||||
placeholder="All"
|
placeholder="All"
|
||||||
/>
|
/>
|
||||||
|
{canRead("roles") && (
|
||||||
<FilterDropdown
|
<FilterDropdown
|
||||||
label="Role"
|
label="Role"
|
||||||
options={[
|
options={[
|
||||||
@ -590,11 +594,14 @@ export const UsersTable = forwardRef<UsersTableRef, UsersTableProps>(
|
|||||||
]}
|
]}
|
||||||
value={roleFilter || ""}
|
value={roleFilter || ""}
|
||||||
onChange={(value) => {
|
onChange={(value) => {
|
||||||
setRoleFilter(Array.isArray(value) ? null : value || null);
|
setRoleFilter(
|
||||||
|
Array.isArray(value) ? null : value || null,
|
||||||
|
);
|
||||||
setCurrentPage(1);
|
setCurrentPage(1);
|
||||||
}}
|
}}
|
||||||
placeholder="All"
|
placeholder="All"
|
||||||
/>
|
/>
|
||||||
|
)}
|
||||||
{canCreate("users") && (
|
{canCreate("users") && (
|
||||||
<PrimaryButton
|
<PrimaryButton
|
||||||
size="default"
|
size="default"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user