bitwise permissions 'opslaan'

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robot Programmeur

In het kort Drie redenen waarom deze vacature uniek is! Programmeren van zelflerende robots Werken op kantoor en testen in de bedrijfshal Je krijgt verantwoordelijkheid, vrijheid en je mag werken naar eigen inzicht De organisatie Hier ga je aan de slag Een bedrijf dat innovatieve robottoepassingen ontwerpt en bouwt voor onder andere de staal industrie, energie- bouw- en agrarische sector. De robots die vaak in combinatie met diverse randapparatuur geleverd worden vormen een totaaloplossing voor de klant. Dit zijn klanten over de hele wereld, van België en Duitsland tot China, India, maar ook in Nederland. Projecten waar momenteel aan wordt

Bekijk vacature »

PHP Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij op zoek naar een nieuwe uitdaging? Lees dan snel verder! Voor een organisatie in de regio Utrecht die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in

Bekijk vacature »

Ervaren PHP Developer

Functie omschrijving Jelling IT zoekt ervaren PHP developer! Voor een organisatie in de regio Rhenen zijn wij op zoek naar een ervaren PHP developer die gaat functioneren als een verlengstuk van de klant. Jij bent iemand die technisch complexe zaken met enthousiasme aanvliegt. Je bent in staat om aan meerdere projecten te werken en werkt graag met de nieuwste technieken. In deze functie werk je veel samen met front-end developers en stel je alles in het werk om grote verschillen voor de klanten teweeg te brengen. Verder ben jij iemand die graag zichzelf uitdaagt en die altijd de beste wilt

Bekijk vacature »

Back End Developer

Als Back End developer bij KUBUS houd je je bezig met het ontwikkelen van de (web)applicatie en services van BIMcollab. Je hebt een focus op de back end van onze software, daarvoor werken wij hoofdzakelijk met C# en .NET. Wij hanteren een full-stack benadering, wat betekent dat je naast de back-end ook meehelpt bij andere onderdelen van de code. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein

Bekijk vacature »

Developer Full Stack

Functie omschrijving Full Stack Developer gezocht! Wij zijn op zoek naar een Full Stack Developer voor een bedrijf in de regio Nijkerk. Je maakt in deze functie onderdeel uit van een groeiend team met een goede ambitie waarbij eenheid, betrokken en overtreffen de belangrijkste kernwaardes zijn. Het bedrijf werkt volgens de AGILE/SCRUM methode, wat je o.a. terug vindt in de tweewekelijkse sprints, retrospectives en een daily standup. Je takenpakket bestaat uit: Bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van een Saas applicatie; Bijdragen aan de innovatie van het bedrijf en hun klanten; Het ontwikkelen op de laatste technologie van

Bekijk vacature »

PHP developer

Functie omschrijving Voor een klein bedrijf in de buurt van Nieuwegein zijn wij per direct op zoek naar een talentvolle PHP developer. Er wordt veel ruimte geboden voor eigen initiateven, waardoor je een mooie stempel kan drukken op jouw eigen werkzaamheden (zowel operationeel als strategisch). Het bedrijf heeft middels externe programmeurs een multimedia platform ontwikkeld, maar willen geleidelijk de ontwikkeling naar binnen halen. Om die reden zoeken zij een communicatieve interne PHP developer die graag meebouwt aan het succesvolle product. Je gaat de volgende werkzaamheden verrichten: Platform beheren en programmeren (PHP, MySQL, JQuery, Javascript, XML & HTML); Communicatie en aansturing

Bekijk vacature »

TypeScript developer (tot € 6.000, - bruto pe

Functie Om bovenstaande ambities waar te kunnen maken zijn ze op zoek naar een ervaren Typecript developer die niet alleen zichzelf verder ontwikkelt, maar het ook leuk vinden om op termijn meer junior collega’s op pad te helpen. Je zult aan de slag gaan met het migreren van hun bestaande UI in Angular. Maar ook het ontwikkelen van een mobiele app. Hierbij hechten ze veel waarde aan User Experience en kiezen ze duidelijk voor kwaliteit i.p.v. snelheid. Je krijgt dus de ruimte om vanuit gedegen onderzoek te werk te gaan en het borgen van kwaliteit staat hoog in het vaandel.

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Ontwikkelaar Identity & Access Management

Dit ga je doen Als Identity & Access Management Ontwikkelaar zorg jij er voor dat studenten, medewerkers en docenten de juiste benodigdheden op het juiste moment kunnen gebruiken; Het juist opslaan van onderzoeksdata en het openbaar beschikbaar stellen van publicaties (Open Access); Studenten, collega's en wetenschappers ondersteunen; Agile en Scrum werken; Technisch Applicatiebeheer; Ontwikkelen in One Identity Manager en VB.NET. Hier ga je werken Als Ontwikkelaar kom je terecht in een hecht team die zich richt op wetenschappelijke informatie en ICT. Jij bent degene die er voor zorgt dat alle informatie, uit diverse onderzoeken, bij de juiste personen terecht komt.

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in ons development team met twee andere .NET developers. Als team werken jullie in scrum en is er iedere ochtend om 11.00 een standup. Jij krijgt als junior .NET ontwikkelaar een inwerk traject dat echt specifiek wordt ingericht op basis van wat jij nodig hebt. Een van de grootste pluspunten bij ons is dat wij binnen ons bedrijf veel (technische) vrijheid geven en juist eigen initiatieven erg stimuleren. Jouw werkzaamheden gaan er bij ons als volgt uit zien: – Het ontwikkelen van nieuwe software samen met interne en eventueel externe ontwikkelaars; – Het

Bekijk vacature »

Ervaren PHP ontwikkelaar

Functie Jij als PHP ontwikkelaar komt te werken in een team van 4 andere PHP ontwikkelaars. Je zult je voornamelijk bezig houden met: – Het ontwikkelen van nieuwe features – Doorontwikkelen van de API – Nadenken over de technische infrastructuur – Datakwaliteit Samen met het team ben jij verantwoordelijk voor de verdere ontwikkeling van de software en om de positie als marktleider in Europa te behouden. Ze werken volgens SCRUM in 2 wekelijkse sprints, werken met Jira voor alle tickets en communiceren veel via Slack. Eisen • Minimaal 3 jaar ervaring als back end developer • Je hebt affiniteit met

Bekijk vacature »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Barendrecht! Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! Binnen deze rol houdt jij je met het volgende bezig: Onderhouden en ontwikkelen van de IT systemen; Opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werken aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkelen en implementeren van MS PowerApps

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

Bekijk vacature »

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn ze op zoek naar een Technische front end developer. Momenteel hun front end back end team gescheiden aan het werk. Hier willen ze verandering in krijgen. Omdat ook veel interne applicaties ontwikkeld worden zoeken ze iemand die hen kan helpen om de interne applicaties te voorzien van de juiste Vue.js componenten. Zodoende willen ze de interactie tussen front end en back end versoepelen en de volgende stap binnen het platform gaan zetten. Deze componenten die jij ontwikkeld zullen in elk project gebruikt worden. Het back end team bestaat momenteel uit 8 ontwikkelaars

Bekijk vacature »

Full stack developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

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/05/2026 12:22:11
 
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.