Hai,
Wij zijn bezig een CMS systeem te bouwen in PHP. Als database maken we gebruik van PostgreSQL 8.0.1. We willen graag dat een zo groot mogelijk deel van het 'rechtenverhaal' wordt geregeld door de database zelf.
Dus als er bijvoorbeeld een element wordt verwijderd, dan zal er (ik noem maar wat) met een trigger 'gekeken' worden of deze gebruiker deze actie mag uitvoeren.
Om deze oplossing uit te voeren moet het user_id van de gebruiker die aan het werk is wel bekend zijn in de database. Als er een delete query wordt uitgevoerd geef je op geen enkele manier een user_id ofzo mee...
Hoe zou ik ervoor kunnen zorgen dat de database 'weet' welke gebruiker er bezig is? Ik heb al zitten denken aan een aparte tabel waar steeds maar 1 rij in zit. En dan voer je aan het begin van je script het user_id daar in en aan het einde gooi je het weer leeg. Het probleem is echter dat PHP scripts parallel kunnen worden uitgevoerd. Meerdere gebruikers kunnen tegelijk hetzelfde PHP script laten draaien. Hierdoor werkt mijn plannetje mooi niet.
Heeft iemand een geniale oplossing?
Wij zijn bezig een CMS systeem te bouwen in PHP. Als database maken we gebruik van PostgreSQL 8.0.1. We willen graag dat een zo groot mogelijk deel van het 'rechtenverhaal' wordt geregeld door de database zelf.
Dus als er bijvoorbeeld een element wordt verwijderd, dan zal er (ik noem maar wat) met een trigger 'gekeken' worden of deze gebruiker deze actie mag uitvoeren.
Om deze oplossing uit te voeren moet het user_id van de gebruiker die aan het werk is wel bekend zijn in de database. Als er een delete query wordt uitgevoerd geef je op geen enkele manier een user_id ofzo mee...
Hoe zou ik ervoor kunnen zorgen dat de database 'weet' welke gebruiker er bezig is? Ik heb al zitten denken aan een aparte tabel waar steeds maar 1 rij in zit. En dan voer je aan het begin van je script het user_id daar in en aan het einde gooi je het weer leeg. Het probleem is echter dat PHP scripts parallel kunnen worden uitgevoerd. Meerdere gebruikers kunnen tegelijk hetzelfde PHP script laten draaien. Hierdoor werkt mijn plannetje mooi niet.
Heeft iemand een geniale oplossing?