From 48bc9ce0ee801804c61e5f514b7d8e8a5ec0a549 Mon Sep 17 00:00:00 2001 From: Joshua Higgins Date: Mon, 12 Jan 2026 21:26:09 -0500 Subject: [PATCH] fix: incorrect id type --- src/context/AuthContext.tsx | 7 +++++-- src/services/api.ts | 8 ++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/context/AuthContext.tsx b/src/context/AuthContext.tsx index b0f3ee4..52ddeef 100644 --- a/src/context/AuthContext.tsx +++ b/src/context/AuthContext.tsx @@ -21,7 +21,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children const [serverAddress, setServerAddress] = useState(null); const [token, setToken] = useState(null); const [isLoading, setIsLoading] = useState(true); - const [canCreate, setCanCreate] = useState(false); + const [canCreate, setCanCreate] = useState(null); useEffect(() => { loadAuth(); @@ -77,12 +77,15 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children try { await AsyncStorage.removeItem('auth_token'); await AsyncStorage.removeItem('auth_user'); + await AsyncStorage.removeItem('auth_can_create'); api.clearToken(); api.clearAddress(); + api.clearCanCreate(); setToken(null); setUser(null); setServerAddress(null); + setCanCreate(null); } catch (error) { console.error('Failed to logout', error); } @@ -96,7 +99,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children token, isAuthenticated: !!token && !!user, isLoading, - canCreate, + canCreate: canCreate === true, login, logout, }} diff --git a/src/services/api.ts b/src/services/api.ts index 16c67aa..711e9fa 100644 --- a/src/services/api.ts +++ b/src/services/api.ts @@ -100,13 +100,17 @@ class UpSnapAPI { const userID = data.record.id; const userPermissionResponse = await fetch( - `${this.address}/collections/permissions/records/${userID}?expand=user,read,update,delete,power`, + `${this.address}/collections/permissions/records?filter=(user='${userID}')&expand=user,read,update,delete,power`, { headers: this.getHeaders(), } ); + if (!userPermissionResponse.ok) { + const error = await userPermissionResponse.json(); + throw new Error(error.message || 'Authentication failed'); + } - const user: PermissionResponse = await userPermissionResponse.json(); + const user: PermissionResponse = (await userPermissionResponse.json()).items[0]; this.canCreate = user.create; return data;