Utgångsläge och förändringar

Date: 2008-11-02 11:52:02 Created: null

I början av arbetet existerade i princip ingen hantering av inloggade användare. Vid inloggning med ett giltigt användarnamn sattes två sessionsvariabler, login och access, till true. Kontroller av dessa avgjorde sedan vad användaren hade tillgång till, och alla inloggade användare hade tillgång till alla funktioner.

Första delen av arbetet blev att planera vilka ändringar som behövde genomföras i databasen. Jag kom efter hand fram till att tre nya tabeller behövdes och att de existerande tabellerna kunde lämnas i stort sett oförändrade. Enda undantaget var category, som försågs med kolumnen hidden för att kunna gömma kategorier för användare och visa dem beroende på behörighet. De tre nya tabellerna är accesslevel, category_access och sar, vilka tillsammans med den existerande tabellen users gav alla inställningsmöjligheter som behövdes.

Sedan modifierades inloggningsproceduren till att faktiskt tilldela de nya värdena ur databasen. Sessionsvariabeln login togs bort och access byggdes ut till en flerdimensionell array som lagrar all behörighetsinformation för användaren.

Nästa steg blev att ändra alla behörighetskontroller från att bara bekräfta access existens till att kontrollera att rätt värden är satta i araryen.

Slutligen konstruerades sidor för att låta rotanvändaren redigera behörigheter och lägga till användare. Sidan som visas vid framgångsrik inloggning byggdes också ut till att beskriva användarens behörighet och lista de sidor användaren har särskild behörighet till. Allt detta ligger i login.php, vilket mångdubblat denna sidas omfång och betydelse.