bitwise permissions 'opslaan'

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Developer Betty Blocks Blauwe Haven Rotterd

Functieomschrijving Voor de Politie zijn wij opzoek naar een Senior Developer Betty Blocks Blauwe Haven Rotterdam. De politieorganisatie heeft jaarlijks te maken met een aanzienlijk aantal politiemedewerkers die vanwege mentale overbelasting niet of beperkt inzetbaar zijn. De Blauwe Haven Rotterdam ondersteunt deze politiemedewerkers in hun herstel en re-integratieproces. De huidige digitale systemen van de Politie bieden onvoldoende ondersteuning in het herstel- en re-integratieproces van politiemedewerkers. Zowel voor de politiemedewerkers als voor de organisatie. Politiemedewerkers worden buitengesloten, waardoor zij eigen regie verliezen. Begeleiders kunnen de voortgang van de medewerkers niet goed monitoren. Management beschikt niet over de mogelijkheid trends te signaleren

Bekijk vacature »

Senior java ontwikkelaar integratie

Functieomschrijving Voor de gemeente Rotterdam zijn wij op zoek naar een senior java ontwikkelaar integratie. Taken Binnen een zelfsturend Scrumteam voer je geheel zelfstanding je opdrachten uit en levert het eindresultaat op aan het Integratieteam. Jij voelt je net als alle teamleden verantwoordelijk voor alle aspecten, vanaf de vraag tot en met de oplevering in productie. Je bent kritisch, je helpt de klant om zijn wensen helder te krijgen, je schrijft zelfstandig clean code die van hoge kwaliteit is, met bijbehorende unit- en integratietesten, je ondersteunt zo nodig bij deployments naar productie. Het Integratieteam bouwt componenten (Endpoints) op de ESB.

Bekijk vacature »

Back end developer Onderwijssoftware

Functie Als back end developer kom jij terecht in een klein, maar hecht team bestaande uit 5 andere developers (waarvan 2 senioren, 2 medior en 1 junior). Met de gezamenlijke missie om “ieder kind te helpen met onze software” wordt er dagelijks gepassioneerd en hard gewerkt aan ons in-house ontwikkeld platform. Deze software is gebaseerd is op AI, machine Learning en wetenschappelijke inzichten. Dagelijks zul jij werken met onze high traffic webapplicatie. We hebben ruim 300.00 gebruikers en meer dan 2 miljard records waar je te maken mee krijgt! Verder zul jij je bezighouden met: – Het ontwikkelen van hoogwaardige

Bekijk vacature »

Embedded Software Developer

Functie omschrijving Voor een mooi softwarebedrijf in omgeving Moordrecht zijn wij op zoek naar een Embedded Software developer. Ben jij enthousiast en een echte team player? Lees dan snel of dit iets voor jou is! Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Laat dan snel wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot

Bekijk vacature »

Back End Developer .NET

Dit ga je doen Ontwikkelen in C# .NET en werken aan nieuwbouw, uitbouw en onderhoud van de software (die communiceren met 68.000 sensoren, waardoor er meerdere miljoenen berichten per uur verwerkt worden); Samenwerken in Scrum Teams; Meewerken aan verschillende, uitdagende projecten; Werken met nieuwe technologieën en vrijheid krijgen om jezelf te ontwikkelen en door te groeien. Hier ga je werken Je komt als Developer te werken bij een organisatie die gespecialiseerd is in software die real-time wordt gebruikt. De software constateert waar werk moet worden uitgevoerd en de chauffeurs worden met een andere applicatie hierop geattendeerd. Ook wordt er direct

Bekijk vacature »

Ontwikkelaar Centrale Monitoring

Ontwikkelaar centrale Monitoring Functieomschrijving Wil jij een bijdrage leveren aan het onderhoud, opzetten en ontwikkelingen van technologieën van SSC-ICT, een van de grootste ICT-dienstverleners van en voor de Rijksoverheid? Je komt als monitorspecialist te werken bij team Operations Management Services. Dit team werkt aan het stabiliseren en waarborgen van een betrouwbare monitoromgeving voor 7 ministeries. Jij begeleidt het implementatieproces van de te monitoren technologieën, onder andere via management packs, connectoren en API's. Je hebt hiervoor veel contact met interne en externe klanten, die hun wensen op het gebied van monitoring aan jou doorgeven. Je beoordeelt deze wensen en komt met

Bekijk vacature »

Senior front-end developer (React)

Functie Momenteel zijn ze op zoek naar een ervaren front-end developer. Als senior werk je nauw samen met 5 collega developers. Een klein scrum team dus, met korte lijnen waardoor jouw ideeën snel tot uitvoering gebracht kunnen worden. De huidige applicaties worden veelal ontwikkeld met o.a. React, Redux, TypeScript. Ze zijn echt op zoek naar een kartrekker in het team. Naast het meedenken over, opzetten en uitvoeren van bijvoorbeeld de architectuur of toepassing van nieuwe technieken krijg je ook veel tijd om de meer junior (front-end) developers te begeleiden. Hierin nemen ze graag de tijd om mensen de ruimte te

Bekijk vacature »

Developer

Functie omschrijving Gaat jouw hart sneller kloppen van software developen in C#.NET? Voor een softwarebedrijf in regio Den Bosch zijn wij op zoek naar een C# programmeur. Lees snel verder! Wat ga je doen? Je gaat werken met C# en ASP.NET MVC Framework om onder meer webapplicaties, webshops en websites te ontwikkelen. Je optimaliseert de bestaande software en helpt mee aan het automatiseren van bedrijfsprocessen. Je gaat samen met je collega's de juiste oplossing op basis van de wensen van de klanten uitwerken tot een mooi product. Bedrijfsprofiel Het ontwikkelen van softwareoplossingen en kantoorautomatiseringen is waar dit bedrijf voor staat.

Bekijk vacature »

Junior .NET Developer

Dit ga je doen Als junior .NET Developer lever je met jouw oplossingen direct een bijdrage aan de bedrijfsprocessen van de klanten. Werkzaamheden waar jij je zoal mee bezig houdt zijn; Het ontwikkelen, onderhouden en optimaliseren van de draaiende platforms van de klanten; Softwareontwikkeling middels C#, .NET; Klantcontact om de wensen te bespreken en uit te werken; Optimaliseren van de (huidige) bedrijfsprocessen; De IT-afdeling bestaat uit 30 personen verdeeld over 3 teams. Het team waar je in terecht komt bestaat uit ongeveer tien man. Het is een team wat bestaat uit betrokken collega’s, waar iedereen bereidt is om elkaar te

Bekijk vacature »

Full Stack Developer/ Applicatie Ontwikkelaar

Wat jij doet Als Applicatie Ontwikkelaar ben je onderdeel van het team die de Rimote omgeving ontwikkeld en onderhoud. Hierbij kan je denk aan de cloud, on premise en webapplicaties welke worden gebruikt in bijvoorbeeld industriële bakkerijen, biogasinstallaties en kwekerijen. Deze applicaties verzorgen (remote) de aansturing en monitoring van processen, machines en robots. Van a tot z ben je betrokken bij projecten. Dit betekent vanaf ontwerp tot oplevering. Je moet samen met jouw team een goed product neer zetten. Dit begint met het opzetten van het ontwerp. De basis van de software moet staan als een huis. Daarvoor moet jij

Bekijk vacature »

Junior .NET developer

Functie Wij hebben drie scrumteams. Het eerste team focust zich op het stukje hardware wat wij in huis doen. Zij maken als team o.a. gebruik van C++. De andere twee scrumteams zijn allebei bezig met data verwerking en maken hierbij in de backend gebruik van C# .NET / .NET Core. Het verschil tussen deze teams is dat één team de data verwerking doet voor de mobiele applicatie. Zij werken hierbij dus ook met Xamarin. Het andere team focust zich op de webapplicaties en maakt hierbij ook gebruik van ASP.NET MVC. Op basis van jouw ambities en kwaliteiten kijken wij samen

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Software Developer

Functie omschrijving Psst hé jij daar! Op zoek naar een nieuwe uitdaging als developer? Wacht niet langer en reageer direct. In deze functie ga je bij een familiebedrijf werken als developer. Je gaat maatwerk software ontwikkelen met de Microsoft stack. Je gebruikt technieken als C#, ASP.NET en MVC. Je werkt in een leuk team van andere developers. Je krijgt veel vrijheid in je werk en kan flexibel werken. Dagje thuiswerken? Geen probleem! Daarnaast is er veel ruimte om écht mee te denken met het bedrijf en met de klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Vanaf

Bekijk vacature »

PHP developer (Laravel, Docker, Gitlab-CI)

Functie Het IT-team bestaat momenteel uit 4 ontwikkelaars. Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. Een groot deel van de systemen is gebouwd met behulp van het Laravel framework en PHP (minimaal 7.2), Docker voor lokaab gebruik en Gitlab-CI voor het deployen

Bekijk vacature »

C# Developer

Dit ga je doen De requirements in kaart brengen van de klant; Implementeren van functionele en technische specificaties bij opdrachtgevers; Oplossen van bugs; Meewerken aan maatwerksoftware voor nieuwe opdrachtgevers; Het testen en uitleveren van nieuwe functionaliteiten naar de acceptatie en productieomgeving De database ontwikkelen en onderhouden; Hier ga je werken Onze klant is gevestigd in het westen van Nederland en is gespecialiseerd in het ontwikkelen van software voor de levensmiddelen industrie. De software die het team maakt optimaliseert voornamelijk de administratieve processen, maakt deze meetbaar en zorgt ervoor dat de data zo goed mogelijk gebruikt kan worden. Binnen een van

Bekijk vacature »
Majid Ahddin

Majid Ahddin

16/11/2006 14:22:00
Quote Anchor link
Hoi

ik heb feedback nodig over een permissions systeem dat ik nu gebruik. Het werkt als volgt:
3 data tabellen:
`pd_users`: user_id, user_name
`pd_groups`: group_id, group_name
`pd_zones`: zone_id, zone_name
en 3 koppeltabellen (elke mogelijke combinatie dus):
`pp_user2group`: user_id, group_id
`pp_user2zone`: user_id, zone_id
`pp_zone2group`: zone_id, group_id

Een gebruiker kan dus direct en indirect met een zone in verband worden gebracht, wat betekent dat die gebruiker daar toegang tot heeft. Een zone kan echter ook een not-access zone zijn (bijv "not.forum.start_topic" disallows elke request voor "forum.start_topic")
not-access zones worden nooit aangeroepen!

Een aanroep kan zijn:
$user->getAccess( "forum.start_topic" );

In het huidige model gaat die functie zoeken als volgt:
1. bestaat de zone? Zo ja -> stap 2, zo nee -> stap 4
2. user-zone -> bestaat deze rij? Zo ja -> stap 4, zo nee stap 3
3. user-group-zone -> bestaan rijen? Zo ja -> stap 4, zo nee -> return FALSE;
--
4. not-access: user-zone. Als ie bestaat: return FALSE
5. not-access: user-group-zone. Als ie bestaat: return FALSE;
return TRUE;
--
return FALSE;

Zo ziet het er ongeveer uit. Je ziet hoeveel queries er uitgevoerd _kunnen_ worden! Sowieso minstens 2 (zone bestaat niet, niet-zone wel en user heeft not-access). Dat tikt aan als je op een pagina voor 6 zones wil controleren.
Als een user-zone meer dan eens wordt aangevraagd, wordt het onthouden in de class 'buffer', maar alleen het resultaat van de functie, geen tussenstappen.

Dit systeem bestaat ondertussen ruim een jaar denk ik en werkt gewoon goed :) Maar ik dacht dat wel eens tijd werd om het te optimaliseren. Het lijkt me namelijk niet het meest efficiente model. De database kan niet strakker (6 tabellen met 2 kolommen), maar het php gedeelte vast&zeker wel!

De bitch is dat ik niet weet welke zones er gecontroleerd gaan worden (OF er wel iets gecontroleerd gaat worden) als de user module ($user) wordt geladen en daarin de permissions (::$perm) module.

Ik heb al een aantal ideeen maar een aantal (ongeveer evenveel ;)) zijn niet geweldig:

1. bitwise. Alle zones waar een user recht op heeft in een getal laden (2^zone_id is voor 1 zone en dan de SUM) en daar alle zones vanaftrekken waar een user not-access voor heeft. Dan is in 1 stap alles klar. Met bitwise operators kan je dan makkelijk controleren of de bits van een zone in de bits van een user zitten:
$bAccess = (bool)(USER_ACCESS & PERM_ZONE_FORUM_START_TOPIC)
Deze methode laadt echter alles meteen in, of het nou nodig is of niet.

2. Een permissions bufffer maken, bijvoorbeeld in een session of juist in een tabel, zodat de persoon die permissions AANPAST, de tijd moet wachten, en de gebruiker die de permissions heeft, niet. Klinkt logisch ;)
Een tabel zoals de usertabel (of misschien wel _in_ de usertabel) die in 1 veld bijhoudt voor welke zones een user access heeft. Net zoiets als method 1, maar dan wordt deze methode alleen uitgevoerd als er iets aangepast wordt dat deze user aangaat.
Nadeel is dat degene die permissions aanpast lang moet wachten als ie een zone in een groep aanpast waar veel users inzitten (al die users moeten worden aangepast).
Voordeel is dat de gebruiker (bijna) geen sql queries meer nodig heeft om rechten op te halen.

3. buffertjes opslaan in permission object of user object: per groep, per zone, etc. Dus arrays maken met daarin: 1. user-group connectie, 2. user-zone connectie, 3. group-zone connectie, etc, etc
Dan zijn er 6 ofzo queries nodig en daarna is het php die uitrekent of er wel of geen keys in arrays bestaan die rijen uit tabellen voorstellen.
Heb geen idee of deze methode iets van snelheid oid op levert.

Hoe dan ook. Heb een bericht gemaakt voor feedback :) Dus elk commentaar is zeer welkom. Vooral persoonlijke ervaringen hoor ik graag :) En natuurlijk goede ideeen.
Wat niet veranderd gaat worden, is de basic methode: users, groepen, zones en dat een user op 2 manieren access kan hebben en op 2 manieren not-access.

mvg
rudie
 
PHP hulp

PHP hulp

26/04/2024 23:46:49
 
Majid Ahddin

Majid Ahddin

16/11/2006 14:22:00
Quote Anchor link
Wow dat is een lap tekst... Sorry he :)
 
Majid Ahddin

Majid Ahddin

16/11/2006 14:24:00
Quote Anchor link
Een voorbeeld van de admin is te vinden op http://www.truemafia.nl/phph/permissions.html en alleen succesvol beschikbaar voor Firefox gebruikers (en misschien meer, maar IE6 niet).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.