bitwise permissions 'opslaan'

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Low Code Ontwikkelaar

In het kort Als Low Code Developer werk je aan projecten bij en voor onze klanten, waarbij je voor het ontwikkelen van de oplossingen een technisch low-code platform gebruikt. Samen met het team streef je naar de beste oplossing en bepalen jullie de juiste aanpak. Je rol is divers en je bent van begin tot eind betrokken bij de ontwikkeling zowel de back-end en de front-end van de applicatie. Naast de ontwikkeling en oplevering, breng je ook advies uit aan de klant waarom bepaalde keuzes worden gemaakt. Je bent dan ook communicatief sterk en kunt je keuzes goed (inhoudelijk) onderbouwen.

Bekijk vacature »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Rotterdam! 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 »

Python developer Consultancy

Functie Als Python developer bij deze organisatie werk je voor verschillende klanten. Doordat de oprichter een groot netwerk heeft kun je zelf voorkeuren uitspreken in het type projecten dat je wilt gaan doen. Zo zijn er bijvoorbeeld langdurige of juist korte projecten, maar is ook het type klant, of project bespreekbaar. Werk jij bijvoorbeeld graag aan een nieuw, state-of-the-art web portaal of ben je liever betrokken bij een migratietraject van een bestaande applicatie? Wij gaan voor jou aan de slag! Eisen • Je bent een gedreven developer met sterke voorkeur voor Python • Je bent meer dan een codeklopper •

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je werkt mee aan de migratie naar .NET 6; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Zij zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

Bekijk vacature »

PHP Developer (junior functie)

Functie omschrijving Ben jij een starter en wil je werken bij een jong en leuk bedrijf? Lees dan verder! Wij zijn op zoek naar een PHP Developer binnen een junior functie. Binnen dit bedrijf gaat het om persoonlijke aandacht en ontwikkeling! Je komt te werken voor een leuk communicatiebureau die alles op het gebied van online en offline communicatie doet. Dit doen zij voor verschillende branches, waardoor je aan diverse soorten projecten mag werken, dit maakt deze baan erg leuk! Daarbij werk je aan een door hun zelf ontwikkeld framework welke goed leesbaar is. Je maakt voor bedrijven op maat

Bekijk vacature »

Senior/Lead Python developer

Functie Samen met je team, bestaande uit een senior, 2 mediors en één junior ontwikkelaar ga je op een Agile-gebaseerde aanpak werken aan hun software. Je hebt oog voor kwaliteit, risico’s en klantbelang. Communicatie met je collega’s en waar nodig ook met klanten speelt een belangrijke rol in het bereiken van een succesvol resultaat. Als persoon ben je slim, krijg je dingen voor elkaar en ga je resultaatgericht te werk. Binnen het development team is er veel zelfstandigheid, los van de stand-up (10:00 uur) en zo nu en dan pair-programming sessies. Technieken die zij gebruiken zijn o.a. Python, Django, MySQL,

Bekijk vacature »

SQL developer

Functieomschrijving Voor een erkende werkgever in de omgeving van Tilburg zijn wij op zoek naar een ervaren SQL ontwikkelaar. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt er als volgt uit te zien: Het ontwerpen en implementeren van databaseschema's: Je bent in staat om een database te ontwerpen en de structuur van tabellen, relaties, indexen en andere objecten te definiëren; Het schrijven van complexe SQL-query's: Je kunt complexe query's schrijven om gegevens uit de database

Bekijk vacature »

Randstad B.V.- Freelance Senior Fullstack Develope

Startdatum: 01.05.2023 Richttarief: € 75,00 - €85,00 Duur van de opdracht: 1 jaar Uren per week: 40 Werkmodel: Hybride, dinsdag en donderdag aanwezig op kantoor in Diemen en meer wanneer dit nodig is. Functieomschrijving: De ideale kandidaat gaat onderdeel uitmaken van een junior team binnen het foundation domein. Vanuit het foundation domein werkt dit team samen met andere foundation teams en teams uit het online domein (professionals B2B en B2C) voor het bouwen en integreren van HRM functionaliteiten (verlof en benefits) in de persoonlijke portal van Interim Professionals. Er is meer backend werk dan frontend, maar kandidaat moet beiden leuk

Bekijk vacature »

Senior Front-End Developer

As a Senior Front-end Developer you maintain the balance between creativity and functionality for our webshop, and you coach your fellow developers. How do I become a Senior Front-End Developer at Coolblue? As a Front-end Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present this within the team. You are also proud of your work and welcome all feedback. Would you also like to become a Senior Front-End Developer at Coolblue?

Bekijk vacature »

Low code Developer

Dit ga je doen Je richt je op het doorontwikkelen van bestaande applicaties en het geheel van scratch af aan opzetten van nieuwe applicaties binnen een low code platform; Je beoordeelt technisch ontwerpen en maakt de vertaalslag naar de technische oplossingen binnen het platform; Je voert testwerkzaamheden uit; Je adviseert de organisatie op jouw vakgebied; Je schakelt met business analisten en de architect om tot mooie oplossingen te komen; Je lost bugs op en denkt mee over een structurele oplossing. Hier ga je werken Het gaat om een bekend internationaal handelsbedrijf met ruim 800 medewerkers, verdeeld over verschillende deelbedrijven. Deze

Bekijk vacature »

Software developer - C Sharp

Functie omschrijving Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Wij zijn voor een leuke opdrachtgever in omgeving Naaldwijk op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Wij zoeken iemand die breed inzetbaar is en die aan veel verschillende applicaties wilt werken. Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind

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 »

Medior/senior front end developer React Sportsoftw

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van onze stack; Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor

Bekijk vacature »

Medior/Senior Python developer (Django)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en werken ze met pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Er is een kwaliteitsfocus en dan biedt ruimte om verbeteringen echt door te voeren binnen de gehele

Bekijk vacature »

Android developer

De functie Schiphol is een plek om te reizen, te verblijven en te werken. Door middel van data en technologie richten we op al deze gebieden het leef- en werkklimaat optimaal in en zorgen we voor een slimmere en efficiëntere operatie. Wij ontwikkelen nieuwe producten en diensten vanuit de wensen en behoeften van onze klanten, voorspellen passagier flows en testen digitale oplossingen om rijen en andere pijnpunten in het proces te verminderen. Met slimme feedback van sensortechnologie maken we zelfs data van toiletten en stoelen inzichtelijk en bruikbaar. Het Commercial Platform bestaat uit multidisciplinaire teams met een end-2-end verantwoordelijkheid voor

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

21/11/2024 16:00:07
 
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.