2012

Okt

1

Av

Det finns ett bra stöd för olika behörighetsnivåer i FileMaker. Det går att förhindra att användare kommer till vissa layouter, endast kan se eller ändra vissa fält, inte kan radera eller lägga till poster mm. En funktion som erfterfrågas en del är möjligheten att endast ändra “sina egna” poster. 

“Sina egna” poster brukar vara de som man själv skapat. Om det är flera personer som använder samma databas kan var och en skapa poster. Ibland vill man undvika att någon annan än den användare som skapat posten kan ändra i den. Ibland till och med att andra användare inte ens kan se varandras poster.

Det första steget är att märka varje post med den användare som skapat den. I FileMaker finns utmärkta funktioner för att automatiskt i fält sätta in både vem som skapat en post och när den är skapad.

EgnaPoster_konto

Jag väljer att göra ett textfält där jag sätter in kontonamnet på den användare som skapat posten, dvs. skapar ett textfält som jag kallar Skapad_konto och klickar sedan på knappen Tillval för fältet. I dialogrutan (se bild ovan) väljer jag Kontonamn i värdelistan för Skapades under fliken Automatiska data.

Nästa steg är att göra en ny behörighetsuppsättning som användarna ska kopplas till. Det gör jag med kommandotHantera säkerhet i menyn Arkiv. Gå till fliken “Behörighetsuppsättningar” och gör en ny behörighetsuppsättning. Jag kallar den för “Endast ändra egna poster” och ställer in behörighet enligt bilden nedan:

EgnaPoster_Beho1

Jag har satt allt till ändringsbart och tillåtet förutom behörigheten för Poster som är anpassad. Användaren ska inte kunna ändra eller radera andra poster än sina egna, dvs. de som skapats av samma användare. När jag väljer “Anpassad behörighet” för Poster visas dialogrutan enligt nedan:

EgnaPoster_Beho2

I exemplet har jag bara en tabell (EndastEgnaPoster) men det är vanligt att det finns flera tabeller här. Du måste göra inställningar för respektive tabell samt för eventuellt nya tabeller som skapas.

För varje tabell kan du välja mellan att tillåta att visa, redigera, skapa och/eller radera poster. Det finns också ytterligare val, Fältbehörighet, för att ange behörighet per fält i posten. Det ska jag inte gå in på just nu.

I exemplet väljer jag först valet Begränsad för Redigera och fyller i följande formel:

EgnaPoster_Beho3

Funktionen ger resultatet 1 (= sant) när innehållet i fältet Skapad_konto är lika med aktuell användare, som man får reda på med beräkningsfunktionen Get (Kontonamn). Det är bara då något av fälten i posten kan redigeras.

Samma formel skriver jag också in för att begränsa behörigheten för Radera. För de båda övriga, Visa och Skapa, väljer jag “Ja”. Det betyder att användaren kan se alla poster, kan skapa nya poster men det finns en begränsning på att användaren bara får redigera och radera sina egna poster.

Lägg sedan till några nya konton, t.ex. för Kalle och Nisse, och ge dem den nya behörigheten.

EgnaPoster_Beho4

När Kalle loggar in och försöker ändra i en post som är skapad av Nisse får Kalle ett meddelande om att det inte är tillåtet.

EgnaPoster_Beho5

2 kommentarer till ”Endast ändra sina egna poster”

  1. Markus

    Jag har tidigare hört att denna typ av lösningar blir väldigt sega med behörighetskontroll på post och fältnivå då filemaker varje gång måste kolla behörighet. Är detta förbättrat i fmp 12?

    Reply
  2. Rolf

    Alla beräkningar gör såklart att det blir något långsammare. Just denna metod påverkar inte nämnvärt.

    Reply

Skriv en kommentar

  • (will not be published)
  • seven × 5 =

Läs också: