fix: auto-provisionamiento de perfil en Supabase y eliminacion de auto-redireccion en /login
This commit is contained in:
parent
1bd29d296b
commit
18b93cc6d4
|
|
@ -35,12 +35,6 @@ export default function App() {
|
||||||
|
|
||||||
if (hostname.includes("repairit.cloud")) {
|
if (hostname.includes("repairit.cloud")) {
|
||||||
const token = localStorage.getItem("repairit_token");
|
const token = localStorage.getItem("repairit_token");
|
||||||
if (hostname === "app.repairit.cloud" && pathname === "/login") {
|
|
||||||
if (token) {
|
|
||||||
window.location.href = "/dashboard";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (hostname !== "app.repairit.cloud" && pathname === "/login") {
|
if (hostname !== "app.repairit.cloud" && pathname === "/login") {
|
||||||
window.location.href = "https://app.repairit.cloud/login";
|
window.location.href = "https://app.repairit.cloud/login";
|
||||||
return;
|
return;
|
||||||
|
|
@ -80,27 +74,71 @@ export default function App() {
|
||||||
localUser.token !== session.access_token
|
localUser.token !== session.access_token
|
||||||
) {
|
) {
|
||||||
try {
|
try {
|
||||||
const { data: profile, error: profileErr } = await supabase
|
let { data: profile } = await supabase
|
||||||
.from("profiles")
|
.from("profiles")
|
||||||
.select("id, name, role, organization_id, venue_id")
|
.select("id, name, role, organization_id, venue_id")
|
||||||
.eq("id", session.user.id)
|
.eq("id", session.user.id)
|
||||||
.single();
|
.maybeSingle();
|
||||||
|
|
||||||
if (profileErr) throw profileErr;
|
if (!profile) {
|
||||||
|
// Auto-creación de perfil si no existe en la base de datos
|
||||||
|
try {
|
||||||
|
const { data: newOrg } = await supabase
|
||||||
|
.from("organizations")
|
||||||
|
.insert({ name: "Taller RepairIT", subscription_plan: "Multi-Taller Pro", subscription_status: "activo" })
|
||||||
|
.select()
|
||||||
|
.single();
|
||||||
|
|
||||||
let subPlan = "Sin Plan";
|
const { data: newVenue } = await supabase
|
||||||
let subStatus = "inactivo";
|
.from("venues")
|
||||||
|
.insert({
|
||||||
|
organization_id: newOrg?.id,
|
||||||
|
name: "Sucursal Central",
|
||||||
|
email: session.user.email,
|
||||||
|
phone: "+54 381 4223344",
|
||||||
|
address: "Av. Sarmiento 1234",
|
||||||
|
})
|
||||||
|
.select()
|
||||||
|
.single();
|
||||||
|
|
||||||
if (profile.organization_id) {
|
const { data: newProf } = await supabase
|
||||||
|
.from("profiles")
|
||||||
|
.insert({
|
||||||
|
id: session.user.id,
|
||||||
|
organization_id: newOrg?.id,
|
||||||
|
venue_id: newVenue?.id,
|
||||||
|
name: session.user.email.split("@")[0],
|
||||||
|
role: "admin",
|
||||||
|
})
|
||||||
|
.select()
|
||||||
|
.single();
|
||||||
|
|
||||||
|
profile = newProf;
|
||||||
|
} catch (createErr) {
|
||||||
|
console.error("Error al autogenerar perfil:", createErr);
|
||||||
|
profile = {
|
||||||
|
id: session.user.id,
|
||||||
|
name: session.user.email.split("@")[0],
|
||||||
|
role: "admin",
|
||||||
|
organization_id: null,
|
||||||
|
venue_id: null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let subPlan = "Multi-Taller Pro";
|
||||||
|
let subStatus = "activo";
|
||||||
|
|
||||||
|
if (profile?.organization_id) {
|
||||||
try {
|
try {
|
||||||
const { data: org } = await supabase
|
const { data: org } = await supabase
|
||||||
.from("organizations")
|
.from("organizations")
|
||||||
.select("subscription_plan, subscription_status")
|
.select("subscription_plan, subscription_status")
|
||||||
.eq("id", profile.organization_id)
|
.eq("id", profile.organization_id)
|
||||||
.single();
|
.maybeSingle();
|
||||||
if (org) {
|
if (org) {
|
||||||
subPlan = org.subscription_plan;
|
subPlan = org.subscription_plan || "Multi-Taller Pro";
|
||||||
subStatus = org.subscription_status;
|
subStatus = org.subscription_status || "activo";
|
||||||
}
|
}
|
||||||
} catch (orgErr) {
|
} catch (orgErr) {
|
||||||
console.error("Error al sincronizar organización:", orgErr);
|
console.error("Error al sincronizar organización:", orgErr);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user