Om du bygger någon webbapplikation som involverar att skapa, läsa, uppdatera och ta bort information av något slag, kommer det att vara mycket vanligt att privilegierna för att utföra dessa olika operationer på data måste delas mellan dina användare enligt deras olika roller och behörigheter för din applikation.
Ta en skolledningsapplikation till exempel. Användare av en sådan applikation faller vanligtvis inom kategorierna:studenter, lärare, avdelningschef (HOD) och så vidare. Din ansökan bör INTE tillåta en student att ha privilegiet att lägga till eller uppdatera sina resultat för terminens prov. Det skulle vara en lärares uppgift. Och när en ny kurs eller ämne ska läggas till i läroplanen är det bara prefektens uppgift att lägga till den kursen i systemet.
På ett sådant system kan vi hänvisa till Student, Teacher, HOD (Head of Department) som de olika rollerna i vår ansökan. När det gäller åtgärder som att lägga till och uppdatera elevresultat, lägga till nya kurser, kommer vi att kalla dessa behörigheter.
Från förklaringen hittills kan man redan dra slutsatsen att en användare kommer att ha en roll och en roll kommer att ha flera behörigheter. Till exempel kommer John (en användare) att ha en roll (Student) och flera behörigheter (registrera kurs, visa betyg, skriva ut utskrift, etc).
Detta innebär att i vår MySQL-databas kommer vi att kräva tre huvudsakliga databastabeller:användare, roller och behörigheter. Vi måste ha en många-till-en-relation mellan användare och rolldatabastabeller (en roll tillhör många användare), och en många-till-många-relation mellan roller och behörighetstabeller (många behörigheter kan tilldelas många roller) .
Hur du refererar till dessa roller är upp till dig. I vårt exempel har vi använt Student, Lärare, HOD för att representera rollerna eftersom exemplet handlade om en skolledningsapplikation. Om du arbetade med en applikation för hotelladministration kan rollerna vara något som chef, städare, receptionist och liknande.
I den här handledningen bygger vi ett hanteringssystem för användarkonton för en bloggapplikation. Så vi kommer att hänvisa till dessa roller som författare, redaktör och administratör. Naturligtvis kan du ändra dem som du vill, men dessa tre är nästan en standard för innehållshanteringssystem.
Ett fullständigt administratörs-/användarregistrering och inloggningssystem kommer att implementeras. Alla användare kommer att logga in via samma inloggningsformulär och när de väl är inloggade kommer endast administrativa användare (författare, redaktörer, administratörer) att ha tillgång till administratörspanelen medan normala användare kommer att omdirigeras till den offentliga hemsidan.
Vi kommer att skapa en inläggsdatabastabell i vår databas för att ha något att testa våra behörigheter på. Till exempel kommer en användare med rollen som redigerare att kunna redigera, uppdatera, publicera, avpublicera och ta bort alla inlägg, medan en författare endast kommer att ha behörighet att skapa, läsa, uppdatera och ta bort endast de inlägg som har gjorts skapade av sig själva. Administratören kommer att ha behörighet att skapa, uppdatera, ta bort andra administrativa användare och roller och även att tilldela/ta bort tilldelning av behörigheter till roller och roller till användare.
OBS:Jag har redan gjort en handledning om att skapa en komplett bloggapplikation från grunden. Så vi kommer faktiskt inte att implementera att skapa, ta bort och uppdatera inlägg här. Vi kommer bara att visa hur dessa behörigheter fungerar runt inlägg. Om du vill lära dig hur man skapar en blogg med inlägg, kolla in min andra handledning om hur man bygger en blogg i PHP.
Projektkatalogstruktur.
Skapa en projektmapp som heter användarkonton och skapa sedan tre andra mappar i den:admin, include, assets, som var och en har följande undermappar:
admin:Denna mapp innehåller källkoden för administratörsdelen av programmet. I den här mappen skapar du tre andra mappar, nämligen inlägg, roller, användare.
tillgångar:Detta kommer att hålla offentliga filer som kommer att nås av webbläsaren som bilder, css, js. Så inuti tillgångar, skapa bilder, css- och js-mappar.
inkluderar:Detta kommer att innehålla korrigeringar av källkod för vår applikation som vi kan inkludera på olika platser i vår applikation. Inuti den här mappen skapar du två andra mappar:layouter och logik.
Vid det här laget är vår projektstruktur klar. Vi kan nu börja koda upp systemet. Vi kommer att göra det i nästa del av denna handledning.
Tack för din uppmärksamhet och jag hoppas att vi ses i nästa del.