axonhub / frontend /src /gql /useUsageLogPermissions.ts
llzai's picture
Upload 1793 files
9853396 verified
import { useMemo } from 'react';
import { useAuthStore } from '@/stores/authStore';
import { useMe } from '@/features/auth/data/auth';
export interface UsageLogPermissions {
canViewUsers: boolean;
canViewChannels: boolean;
}
export function useUsageLogPermissions(): UsageLogPermissions {
const { user: authUser } = useAuthStore((state) => state.auth);
const { data: meData } = useMe();
// Use data from me query if available, otherwise fall back to auth store
const user = meData || authUser;
const isOwner = user?.isOwner || false;
const permissions = useMemo(() => {
const userScopes = user?.scopes || [];
// Owner用户拥有所有权限
if (isOwner || userScopes.includes('*')) {
return {
canViewUsers: true,
canViewChannels: true,
};
}
return {
canViewUsers: userScopes.includes('read_users'),
canViewChannels: userScopes.includes('read_channels'),
};
}, [user, isOwner]);
return permissions;
}