diff --git a/app/dashboard/[workspaceId]/analytics/channels/page.tsx b/app/dashboard/[workspaceId]/analytics/channels/page.tsx index 006990d..0fe58c3 100644 --- a/app/dashboard/[workspaceId]/analytics/channels/page.tsx +++ b/app/dashboard/[workspaceId]/analytics/channels/page.tsx @@ -12,6 +12,7 @@ import { ArrowUpDown, ArrowUp, ArrowDown, + Lock, } from "lucide-react"; import { DashboardHeader } from "@/components/layout/dashboard-header"; import { useWorkspace } from "@/components/providers/workspace-provider"; @@ -74,14 +75,41 @@ type SortOrder = "asc" | "desc" | null; export default function ChannelsAnalyticsPage() { const params = useParams(); const workspaceId = params?.workspaceId as string; - const { getProjectFilterId } = useWorkspace(); + const { getProjectFilterId, canViewSubscriptions, hasAnyAnalyticsPermission } = useWorkspace(); const projectFilterId = getProjectFilterId(); + const canViewSubs = canViewSubscriptions; + const hasPermission = hasAnyAnalyticsPermission; const [channels, setChannels] = useState([]); const [loading, setLoading] = useState(true); const [sortField, setSortField] = useState("cost"); const [sortOrder, setSortOrder] = useState("desc"); + if (!hasPermission) { + return ( + <> + +
+ + + +

Доступ ограничен

+

+ У вас нет разрешения на просмотр аналитики. Обратитесь к администратору рабочего пространства. +

+
+
+
+ + ); + } + useEffect(() => { loadData(); }, [workspaceId, projectFilterId]); @@ -250,17 +278,19 @@ export default function ChannelsAnalyticsPage() { {getSortIcon("views")} - - - + {canViewSubs && ( + + + + )}