Skip to content

Commit 8e88832

Browse files
committed
Revert "chore: rebase with main. share only at ledger level."
This reverts commit 1a58862.
1 parent 1a58862 commit 8e88832

File tree

3 files changed

+40
-48
lines changed

3 files changed

+40
-48
lines changed

dashboard/backend/api.ts

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1777,7 +1777,19 @@ export class FPApiSQL implements FPApiInterface {
17771777
return Result.Err("Cannot share ledger with yourself");
17781778
}
17791779

1780-
// 6. Add user to ledger (no need to add to tenant for sharing)
1780+
// 6. Add user to tenant first
1781+
const rAddUserToTenant = await this.addUserToTenant(this.db, {
1782+
userName: req.email,
1783+
tenantId: ledger.tenantId,
1784+
userId: targetUser.userId,
1785+
role: "member",
1786+
});
1787+
1788+
if (rAddUserToTenant.isErr()) {
1789+
return Result.Err(rAddUserToTenant.Err());
1790+
}
1791+
1792+
// 7. Add user to ledger
17811793
const rAddUser = await this.addUserToLedger(this.db, {
17821794
userName: req.email,
17831795
ledgerId: ledgerId,
@@ -1791,17 +1803,15 @@ export class FPApiSQL implements FPApiInterface {
17911803
return Result.Err(rAddUser.Err());
17921804
}
17931805

1794-
const addedUser = rAddUser.Ok();
1795-
17961806
return Result.Ok({
17971807
type: "resShareWithUser",
17981808
success: true,
17991809
message: `Successfully shared ledger with ${req.email}`,
1800-
ledgerId: addedUser.ledgerId,
1801-
userId: addedUser.userId,
1810+
ledgerId: ledgerId,
1811+
userId: targetUser.userId,
18021812
email: req.email,
1803-
role: addedUser.role,
1804-
right: addedUser.right,
1813+
role: req.role || "member",
1814+
right: req.right || "write",
18051815
});
18061816
}
18071817

dashboard/backend/cf-serve.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ import { drizzle } from "drizzle-orm/d1";
22
import { D1Database, Fetcher, Request as CFRequest, Response as CFResponse } from "@cloudflare/workers-types";
33
import { DefaultHttpHeaders, createHandler } from "./create-handler.js";
44
import { URI } from "@adviser/cement";
5+
import { Request as CFRequest, Response as CFResponse, D1Database, Fetcher } from "@cloudflare/workers-types";
6+
import { drizzle } from "drizzle-orm/d1";
7+
import { CORS, createHandler } from "./create-handler.js";
58
import { resWellKnownJwks } from "./well-known-jwks.js";
69

710
export interface Env {

dashboard/src/pages/cloud/api/token-auto.tsx

Lines changed: 20 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1+
import React, { useContext, useEffect, useState } from "react";
12
import { URI } from "@adviser/cement";
2-
import { TenantLedger } from "@fireproof/core-types-protocols-cloud";
33
import { useMutation, useQuery } from "@tanstack/react-query";
44
import { base64url } from "jose";
5-
import React, { useContext, useEffect, useState } from "react";
65
import { Navigate, useSearchParams } from "react-router-dom";
76
import { AppContext } from "../../../app-context.jsx";
7+
import { TenantLedger } from "@fireproof/core-types-protocols-cloud";
88
import { ListTenantsLedgersByUser } from "../../../cloud-context.jsx";
99

1010
interface TenantLedgerWithName {
@@ -51,12 +51,9 @@ export function ApiTokenAuto() {
5151
);
5252
}
5353

54-
// Get user's tenants and ledgers (includes both owned and shared ledgers)
54+
// Get user's tenants and ledgers
5555
const { data: tenantsData, error: tenantsError } = cloud.getListTenantsLedgersByUser();
5656

57-
// Also get all ledgers user is a member of (including shared ones not in their tenants)
58-
const { data: allUserLedgers, error: allUserLedgersError } = cloud.getListLedgersByUser();
59-
6057
// Create ledger mutation
6158
const createLedgerMutation = useMutation({
6259
mutationFn: async ({ tenantId, name }: { tenantId: string; name: string }) => {
@@ -73,9 +70,9 @@ export function ApiTokenAuto() {
7370
},
7471
});
7572

76-
// Process ledger data when tenants/ledgers are loaded
73+
// Process ledger data when tenants are loaded
7774
useEffect(() => {
78-
if (ledgerInfo) {
75+
if (!tenantsData || tenantsData.length === 0 || ledgerInfo) {
7976
return;
8077
}
8178

@@ -89,45 +86,27 @@ export function ApiTokenAuto() {
8986
return;
9087
}
9188

92-
// Look for existing ledger by name or ID in all user's ledgers (including shared)
89+
// Look for existing ledger by name or ID
9390
let foundLedger: TenantLedgerWithName | null = null;
9491

95-
// First check in allUserLedgers (includes shared ledgers)
96-
if (allUserLedgers?.ledgers) {
97-
const matchingLedger = allUserLedgers.ledgers.find(
98-
(ledger) => ledger.name === ledgerName || (ledgerId && ledger.ledgerId === ledgerId),
99-
);
100-
101-
if (matchingLedger) {
102-
foundLedger = {
103-
tenant: matchingLedger.tenantId,
104-
ledger: matchingLedger.ledgerId,
105-
name: matchingLedger.name,
106-
};
107-
}
108-
}
109-
110-
// Fallback: check in tenantsData if not found
111-
if (!foundLedger && tenantsData && tenantsData.length > 0) {
112-
for (const tenant of tenantsData) {
113-
for (const ledger of tenant.ledgers) {
114-
if (ledger.name === ledgerName || (ledgerId && ledger.ledgerId === ledgerId)) {
115-
foundLedger = {
116-
tenant: tenant.tenant.tenantId,
117-
ledger: ledger.ledgerId,
118-
name: ledger.name,
119-
};
120-
break;
121-
}
92+
for (const tenant of tenantsData) {
93+
for (const ledger of tenant.ledgers) {
94+
if (ledger.name === ledgerName || (ledgerId && ledger.ledgerId === ledgerId)) {
95+
foundLedger = {
96+
tenant: tenant.tenant.tenantId,
97+
ledger: ledger.ledgerId,
98+
name: ledger.name,
99+
};
100+
break;
122101
}
123-
if (foundLedger) break;
124102
}
103+
if (foundLedger) break;
125104
}
126105

127106
if (foundLedger) {
128107
setLedgerInfo(foundLedger);
129-
} else if (tenantsData && tenantsData.length > 0) {
130-
// Only create a new ledger if user has tenants (don't create for shared-only users)
108+
} else {
109+
// Need to create a new ledger
131110
const targetTenant = tenantId
132111
? tenantsData.find((t: ListTenantsLedgersByUser) => t.tenant.tenantId === tenantId)?.tenant
133112
: tenantsData[0]?.tenant;
@@ -139,7 +118,7 @@ export function ApiTokenAuto() {
139118
});
140119
}
141120
}
142-
}, [tenantsData, allUserLedgers, tenantId, ledgerId, ledgerName, ledgerInfo, createLedgerMutation]);
121+
}, [tenantsData, tenantId, ledgerId, ledgerName, ledgerInfo, createLedgerMutation]);
143122

144123
// Handle successful ledger creation
145124
useEffect(() => {
@@ -203,7 +182,7 @@ export function ApiTokenAuto() {
203182
}, [cloudToken, backUrl, countdownSecs]);
204183

205184
// Show errors
206-
const error = tenantsError || allUserLedgersError || createLedgerMutation.error || errorToken;
185+
const error = tenantsError || createLedgerMutation.error || errorToken;
207186
if (error) {
208187
return (
209188
<div style={{ padding: "40px", textAlign: "center" }}>

0 commit comments

Comments
 (0)