
Ett skickat mejl är inte ditt slutprov. Du behöver se vilket konto som blev medlem i vilken arbetsyta, med vilken roll. Här får du en beställning och prov med påhittade uppgifter; ingen app har testats för artikeln.
Mejl, konto och medlemskap är olika saker
Du ber byggverktyget lägga till ”Bjud in kollega”. Mejlet kommer fram och länken öppnar appen. Ändå återstår frågan: får kollegan se rätt arbetsyta? Dela därför upp beställningen i tre resultat: ett mejl till mottagaren, ett identifierat konto och ett medlemskap i den avsedda arbetsytan. Ett grönt meddelande om utskick visar bara en del av det du ville åstadkomma.
Supabases referens för inviteUserByEmail beskriver att funktionen skickar en inbjudningslänk till en mejladress. Den beskrivningen belägger utskicket, inte att din egen arbetsyta får en medlem med rätt roll. Dokumentationen om mejlmallar har ett inbjudningsexempel för att skapa ett konto. Använd det som bakgrund till kontodelen, inte som ett löfte om ett färdigt medlemsflöde.
I exemplet nedan äger testkonto A arbetsytan ”Testateljén”. Testkonto B ska bjudas in som läsare. Läsare betyder här att kontot får öppna arbetsytans testposter men inte ändra dem eller bjuda in fler. Det är vår valda produktregel. Om din app behöver en annan roll måste du beskriva dess handlingar lika konkret.
Beställ fyra tillstånd och en tydlig giltighet
Låt inbjudan vara väntande tills rätt mottagare accepterar. Därefter ska den vara accepterad. Välj också vad som händer när tiden löper ut och när avsändaren ångrar sig. Med tillstånden utgången och återkallad kan appen visa varför en gammal länk inte längre kan användas, utan att försöka skapa ett nytt medlemskap.
| Tillstånd | Beställt beteende | Synligt facit |
|---|---|---|
| Väntande | Rätt mottagare får acceptera före sluttiden. | Avsändaren ser mottagare, arbetsyta, roll och sista giltighetstid. |
| Accepterad | Ett medlemskap med den beställda rollen finns. | Mottagaren visas en gång i medlemslistan. |
| Utgången | Den gamla inbjudan får inte accepteras. | En begriplig text och väg att be om en ny inbjudan visas. |
| Återkallad | En väntande inbjudan har stoppats av avsändaren. | Den sparade länken ger inget medlemskap. |
Välj exempelvis 24 timmars giltighet från skapandet och visa sluttiden med datum, klockslag och tidszon. Detta är ett exempelkrav, ingen uppgift om Supabases standard. Beställ att gränsen kontrolleras när acceptansen görs. En text i mejlet om att länken har gått ut är inte ditt facit om appen ändå släpper in mottagaren.
Skilj också på att återkalla en väntande inbjudan och att ta bort ett redan accepterat medlemskap. Den första åtgärden ska stoppa en framtida anslutning. Den andra ska avsluta befintlig åtkomst. Lägg dem under olika knappar och beskriv följderna, så att du inte behöver gissa vad ”Återkalla” betyder efter acceptans.
Kopiera beställningen till byggverktyget
Byt arbetsytans namn och rollens handlingar innan du använder mallen. Avsändaren ska vara arbetsytans ägare i detta exempel. Beställ att appen kontrollerar den rätten även när en inbjudan skapas eller stoppas. En dold knapp är inget synligt bevis för att den kontrollen finns.
Bygg ett inbjudningsflöde i vår separata testsajt. Använd testkonto A som ägare av Testateljén och testkonto B som mottagare. Bara ägaren får skapa och återkalla inbjudningar. Spara avsändare, mottagarens mejladress, arbetsyta, roll, skapandetid, sista giltighetstid och tillstånd för varje inbjudan. Exemplet gäller rollen läsare: läsa arbetsytans poster, inte ändra eller bjuda in andra.
Beställ tillstånden väntande, accepterad, utgången och återkallad. Giltigheten är 24 timmar från skapandet. Kontrollera aktuell giltighet, tillstånd och rätt inloggat konto när mottagaren accepterar. Visa arbetsyta och roll före bekräftelsen. Låt bara det konto som motsvarar mottagaren acceptera. Fel konto ska få en tydlig väg att byta konto utan medlemskap eller visning av arbetsytans innehåll.
Acceptans ska skapa högst ett medlemskap för samma konto och arbetsyta. Ett andra klick eller en omladdning ska inte skapa en dubblett eller höja rollen. Om kontot redan är medlem ska befintlig roll behållas och ett begripligt besked visas. En utgången eller återkallad inbjudan får inte skapa medlemskap. En ny inbjudan efter återkallelse ska ha en ny länk; den gamla ska förbli stoppad.
Skilj ”Återkalla inbjudan” före acceptans från ”Ta bort medlem” efter acceptans. Borttagning ska stoppa fortsatt åtkomst till arbetsytans innehåll, även från en tidigare öppen flik. Återanvändning av den accepterade länken får inte återställa medlemskapet. Redovisa vilka kontroller som görs på servern och hur jag provar dem med testdata. Skicka inga riktiga inbjudningar och ändra inga andra funktioner.
Beställningen ger dig också ett språk för återkoppling: ”B fick redigeringsknappar trots läsarroll” är ett tydligare fel än ”behörigheten verkar konstig”. För grundupplägget med privat ägda poster finns Behörigheter i Lovable. Arbetsytans medlemskap behöver egna regler och prov utöver den guidens avgränsning.
Prova med två egna testkonton på en separat testsajt
Förbered A och B med mejladresser du själv kontrollerar och använd bara låtsasposter. Håll kontona i var sin webbläsarprofil så att du kan se vem som är inloggad. Anteckna testsajtens adress och vilken version du provar. Alla prov nedan är förslag till din egen kontroll, inte redovisade mätningar.
Börja med B utloggat. Låt A skapa en läsarinbjudan till Testateljén och kontrollera uppgifterna i listan. Öppna sedan länken som B, logga in och kontrollera arbetsyta och roll före acceptansen. Acceptera, ladda om och kontrollera att B visas en gång i medlemslistan. Öppna en testpost som B och försök ändra den: enligt beställningen ska läsning fungera och ändringen nekas.
Om mejlet saknas behöver du felsöka leveransen separat med Appens mejl kommer inte fram. Om inloggningen tappar målet hjälper Direktlänkar i appen. Återvänd därefter till medlemsprovet. Att hamna på rätt sida säger fortfarande inte vilken åtkomst B fick.
Prova fel konto och återanvändning av länken
Gör felkontoprovet med en ny väntande inbjudan till B. Öppna länken i A:s profil. Facit är att ingen acceptans sker för A och att inbjudan fortsätter vara väntande för B. Appen ska erbjuda kontobyte. Om du sedan loggar in som B ska du kunna slutföra samma giltiga inbjudan, utan att arbetsytan redan har lagts till för A genom länken.
Öppna också den accepterade länken igen som B och prova ett snabbt dubbelklick på acceptans vid nästa försök. Jämför medlemslistan före och efter. Antalet medlemskap för B i Testateljén ska vara ett och rollen ska fortfarande vara läsare. Prova därefter en ny inbjudan till B som redan är medlem: i vår beställning ska rollen behållas, så att en gammal inbjudan inte blir ett oavsiktligt rollbyte.
För utgångsprovet kan du be om en kortare giltighet i testmiljön, exempelvis två minuter, och vänta tills den visade sluttiden har passerat. Kontrollera att länken då nekas och att medlemslistan inte ändras. Återställ sedan produktens avsedda giltighet. Att bara ändra klockan på din dator är inte samma prov som att passera den gräns appen faktiskt kontrollerar.
Kontrollera åtkomst efter återkallelse och borttagning
Skapa en ny väntande inbjudan från A till B och spara länken. Återkalla den som A innan B accepterar. Öppna den sparade länken som B: inget medlemskap ska skapas. Skicka därefter en ny testinbjudan och kontrollera både att den nya går att använda och att den återkallade länken fortfarande nekas.
Avsluta med B som accepterad läsare. Låt B ha en testpost öppen medan A tar bort B ur arbetsytan. Försök sedan öppna en annan post, ladda om den tidigare sidan och använd den gamla accepterade länken. Facit är nekad fortsatt åtkomst och inget återställt medlemskap. Redan visat innehåll kan du inte göra osedd; provet gäller vad appen lämnar ut efter borttagningen.
Spara resultaten som handling, förväntat resultat och faktiskt resultat. Exempel: ”Återkallade väntande inbjudan; B öppnade sparad länk; medlemskap skapades ändå.” Be byggverktyget rätta just den avvikelsen och upprepa berörda prov. De synliga proven visar om beställningen uppfylls i dessa fall. Be också om redovisning av serverkontrollerna; en medlemslista ensam bevisar inte att alla åtkomstvägar är rätt byggda.