🚀 Initial commit: Versão atual do TrackSteel APP

This commit is contained in:
2026-03-18 21:17:53 +00:00
commit bde410c9ad
633 changed files with 108150 additions and 0 deletions
+84
View File
@@ -0,0 +1,84 @@
import { useQuery } from '@tanstack/react-query';
import { supabase } from '@/integrations/supabase/client';
import { useAuth } from '@/hooks/useAuth';
import type { UserRole, AppRole } from '@/hooks/useUserPermissions/types';
export type AccessLevel = 'Total' | 'Parcial' | 'Restrita';
export const useUserRole = () => {
const { user } = useAuth();
const query = useQuery({
queryKey: ['user-role', user?.id],
queryFn: async () => {
if (!user?.id) {
return {
accessLevel: 'Restrita' as AccessLevel,
isAdmin: false,
isGerencia: false,
isDiretoria: false,
role: 'user' as UserRole
};
}
try {
const { data: profile, error } = await supabase
.from('profiles')
.select('id, full_name')
.eq('id', user.id)
.single();
if (error || !profile) {
return {
accessLevel: 'Restrita' as AccessLevel,
isAdmin: false,
isGerencia: false,
isDiretoria: false,
role: 'user' as UserRole
};
}
// For now, return default permissions until we have proper role system
// This can be enhanced later with actual role checking
const accessLevel = 'Total' as AccessLevel;
const isAdmin = true; // Temporary - should be based on actual roles
return {
accessLevel,
isAdmin: true,
isGerencia: false,
isDiretoria: false,
role: 'admin' as UserRole
};
} catch (error) {
console.error('Erro ao buscar papel do usuário:', error);
return {
accessLevel: 'Restrita' as AccessLevel,
isAdmin: false,
isGerencia: false,
isDiretoria: false,
role: 'user' as UserRole
};
}
},
enabled: !!user?.id,
});
// Extract the data and add loading/error handling
const { data, isLoading, error } = query;
return {
...data,
loading: isLoading,
error,
// Also include the query object for compatibility
...query
};
};
// Helper function to check if user has role using correct AppRole type
export const hasRole = (userId: string | undefined, role: AppRole): boolean => {
// Implementation would check against supabase function
return false; // Placeholder
};