Date: 2008-11-02 11:52:02 Created: null
All in- och utloggning görs via login.php. Vid inloggning kontrolleras angivet användarnamn och lösenord mot tabellen users i databasen. Finns dessa skapas sessionsvariabeln "access" och fylls med värden ur databasen. "access" är en array med variablerna "level", "userid", "username", "category_access", "accesslevel" och "special" i. De tre sistnämnda är även de arrayer. "category_access" lagrar vad en given behörighet kan göra i olika kategorier och "accesslevel" all övrig information om behörigheten. "special" lagrar slutligen de sidor användaren har särskild behörighet till utöver sin behörighetsnivå. Anledningen till denna någon massiva sessionsvariabel är önskan att undvika en mängd extra databasanrop vid varje funktion som enbart behöriga användare ska ges tillgång till.
Level utgörs av siffran för användarens behörighetsnivå, exempelvis 0 för rotanvändaren.
Userid är användarens id ur tabellen users.
Användarens användarnamn från users.
Innehåller en array för varje rad behörighetsnivån har i tabellen category_access. Dessa "underarrayer" namnges efter kategorin de beskriver (content_id-fältet i tabellen), och värdena i varje array har samma namn som i tabellen i databasen. $access['category_access'][1] är alltså den array som avgör vad behörighetsnivån får göra med dagboksanteckningar (kategori 1).
Innehåller all data utom description, image och access_level ur tabellen accesslevel för användarens behörighetsnivå. Alla värden i arrayen har samma namn som kolumnerna i tabellen.
En array som innehåller ett värde för varje sida som användaren har speciellt tillstånd att redigera. Varje värde är namngivet efter sidans id-nummer och innehåller ett "yes". Sidorna hämtas från tabellen sar. För att kontrollera om en användare har särskild behörighet för en sida x räcker det alltså med att kontrollera om variabeln $access['special'][x] finns.
Vissa funktioner på webbplatsen kan enbart en användare med rotbehörighet komma åt, exempelvis redigering av sidkategorierna och hantering/skapande av användare och behörighetsnivåer. För dessa funktioner kontrolleras att användarens accesslevel är 0, och därmed går det inte att ge icke-rotanvändare tillträde till funktionerna.