- Manage your company's events and hackathons
+ {canManageEvents ? "Manage your company's events and hackathons" : "View your company's events"}
-
-
-
+ {canManageEvents && (
+
+
+
+ )}
{/* Stats Cards */}
@@ -239,7 +243,7 @@ export default function CompanyEventsPage() {
All Events ({filteredEvents.length})
- View and manage all your events
+ {canManageEvents ? 'View and manage all your events' : 'View all company events'}
@@ -254,10 +258,10 @@ export default function CompanyEventsPage() {
No events found
- {searchTerm ? 'Try adjusting your search' : 'Get started by creating your first event'}
+ {searchTerm ? 'Try adjusting your search' : canManageEvents ? 'Get started by creating your first event' : 'No events available yet'}
- Manage your subscription plan and view usage details
+ {canManageSubscription
+ ? 'Manage your subscription plan and view usage details'
+ : 'View your company subscription plan and usage details'}
- Manage your team members, roles, and permissions
+ {canManageTeam
+ ? 'Manage your team members, roles, and permissions'
+ : 'View your team members and their roles'}
)
diff --git a/components/dashboard/CompanyDashboard.tsx b/components/dashboard/CompanyDashboard.tsx
index 76f167aa..a7d03833 100644
--- a/components/dashboard/CompanyDashboard.tsx
+++ b/components/dashboard/CompanyDashboard.tsx
@@ -22,6 +22,7 @@ import {
} from 'lucide-react'
import { Company } from '@/types/company'
import { format, formatDistanceToNow } from 'date-fns'
+import { useCompanyContext } from '@/contexts/CompanyContext'
interface CompanyDashboardStats {
totalEvents: number
@@ -63,12 +64,17 @@ interface CompanyDashboardProps {
}
export function CompanyDashboard({ company }: CompanyDashboardProps) {
+ const { userRole } = useCompanyContext()
const [stats, setStats] = useState(null)
const [recentActivity, setRecentActivity] = useState([])
const [upcomingEvents, setUpcomingEvents] = useState([])
const [loading, setLoading] = useState(true)
const [error, setError] = useState(null)
+ // Check permissions based on role
+ const canManageEvents = userRole && ['owner', 'admin', 'editor'].includes(userRole)
+ const canManageTeam = userRole && ['owner', 'admin'].includes(userRole)
+
const fetchDashboardData = useCallback(async () => {
try {
setLoading(true)
@@ -342,18 +348,22 @@ export function CompanyDashboard({ company }: CompanyDashboardProps) {
diff --git a/components/dashboard/TeamManagement.tsx b/components/dashboard/TeamManagement.tsx
index 39912dc3..096fb8d2 100644
--- a/components/dashboard/TeamManagement.tsx
+++ b/components/dashboard/TeamManagement.tsx
@@ -319,7 +319,9 @@ export function TeamManagement({
Team Members
- Manage your team members and their roles
+ {canManageTeam
+ ? 'Manage your team members and their roles'
+ : 'View your team members and their roles'}