Implement user-specific data separation
Configure the application to associate each user with a distinct database or data scope, ensuring that users like Rodrigo and Rejane access only their own transactions and data, preventing shared data access.
This commit is contained in:
parent
032f171d7f
commit
416074060d
@ -45,6 +45,10 @@ const Auth = () => {
|
|||||||
// Armazenar informações de sessão (simplificado para este exemplo)
|
// Armazenar informações de sessão (simplificado para este exemplo)
|
||||||
localStorage.setItem('autenticado', 'true');
|
localStorage.setItem('autenticado', 'true');
|
||||||
localStorage.setItem('userId', data);
|
localStorage.setItem('userId', data);
|
||||||
|
|
||||||
|
// Armazenamos também o email para identificação do usuário
|
||||||
|
localStorage.setItem('userEmail', loginEmail);
|
||||||
|
|
||||||
toast({
|
toast({
|
||||||
title: "Login realizado com sucesso",
|
title: "Login realizado com sucesso",
|
||||||
description: "Bem-vindo de volta!"
|
description: "Bem-vindo de volta!"
|
||||||
@ -122,6 +126,7 @@ const Auth = () => {
|
|||||||
if (loginData) {
|
if (loginData) {
|
||||||
localStorage.setItem('autenticado', 'true');
|
localStorage.setItem('autenticado', 'true');
|
||||||
localStorage.setItem('userId', loginData);
|
localStorage.setItem('userId', loginData);
|
||||||
|
localStorage.setItem('userEmail', email);
|
||||||
navigate('/transacoes');
|
navigate('/transacoes');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,11 +5,16 @@ import { Transaction } from "@/types/financialTypes";
|
|||||||
export async function getTransacoes(): Promise<Transaction[]> {
|
export async function getTransacoes(): Promise<Transaction[]> {
|
||||||
console.log("Buscando transações do Supabase...");
|
console.log("Buscando transações do Supabase...");
|
||||||
|
|
||||||
|
// Obter o ID do usuário atual do localStorage
|
||||||
|
const userId = localStorage.getItem('userId') || 'default';
|
||||||
|
console.log("Buscando transações para o usuário:", userId);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// With RLS disabled, we can query the fixed table directly
|
// Buscar transações filtrando pelo usuário atual
|
||||||
const { data, error } = await supabase
|
const { data, error } = await supabase
|
||||||
.from('transacoes')
|
.from('transacoes')
|
||||||
.select('*')
|
.select('*')
|
||||||
|
.eq('user', userId) // Filtrar pelo ID do usuário
|
||||||
.order('quando', { ascending: false });
|
.order('quando', { ascending: false });
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
@ -40,11 +45,15 @@ export async function getTransacoes(): Promise<Transaction[]> {
|
|||||||
export async function getTransactionSummary() {
|
export async function getTransactionSummary() {
|
||||||
console.log("Buscando resumo das transações...");
|
console.log("Buscando resumo das transações...");
|
||||||
|
|
||||||
|
// Obter o ID do usuário atual do localStorage
|
||||||
|
const userId = localStorage.getItem('userId') || 'default';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// With RLS disabled, we can query the fixed table directly
|
// Buscar resumo filtrando pelo usuário atual
|
||||||
const { data, error } = await supabase
|
const { data, error } = await supabase
|
||||||
.from('transacoes')
|
.from('transacoes')
|
||||||
.select('tipo, valor');
|
.select('tipo, valor')
|
||||||
|
.eq('user', userId); // Filtrar pelo ID do usuário
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
console.error('Erro ao buscar resumo das transações:', error);
|
console.error('Erro ao buscar resumo das transações:', error);
|
||||||
@ -78,11 +87,15 @@ export async function getTransactionSummary() {
|
|||||||
export async function getCategorySummary() {
|
export async function getCategorySummary() {
|
||||||
console.log("Buscando resumo de categorias...");
|
console.log("Buscando resumo de categorias...");
|
||||||
|
|
||||||
|
// Obter o ID do usuário atual do localStorage
|
||||||
|
const userId = localStorage.getItem('userId') || 'default';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// With RLS disabled, we can query the fixed table directly
|
// Buscar resumo de categorias filtrando pelo usuário atual
|
||||||
const { data, error } = await supabase
|
const { data, error } = await supabase
|
||||||
.from('transacoes')
|
.from('transacoes')
|
||||||
.select('categoria, valor, tipo');
|
.select('categoria, valor, tipo')
|
||||||
|
.eq('user', userId); // Filtrar pelo ID do usuário
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
console.error('Erro ao buscar resumo de categorias:', error);
|
console.error('Erro ao buscar resumo de categorias:', error);
|
||||||
@ -135,11 +148,15 @@ export async function getCategorySummary() {
|
|||||||
export async function getMonthlyData() {
|
export async function getMonthlyData() {
|
||||||
console.log("Buscando dados mensais...");
|
console.log("Buscando dados mensais...");
|
||||||
|
|
||||||
|
// Obter o ID do usuário atual do localStorage
|
||||||
|
const userId = localStorage.getItem('userId') || 'default';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// With RLS disabled, we can query the fixed table directly
|
// Buscar dados mensais filtrando pelo usuário atual
|
||||||
const { data, error } = await supabase
|
const { data, error } = await supabase
|
||||||
.from('transacoes')
|
.from('transacoes')
|
||||||
.select('quando, valor, tipo');
|
.select('quando, valor, tipo')
|
||||||
|
.eq('user', userId); // Filtrar pelo ID do usuário
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
console.error('Erro ao buscar dados mensais:', error);
|
console.error('Erro ao buscar dados mensais:', error);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user