bitwise permissions 'opslaan'

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java developer

Functie Je gaat aan de slag als Tester voor een aantal mooie projecten. Je komt terecht in een DevOps team waar jij aan de slag gaat om de kwaliteit te waarborgen omtrent de maatwerk software voor de klanten. Je draait je hand er niet voor om de adviserende rol te bekleden op het gebied van testautomatisering en het opzetten van testframeworks. Zoals aangegeven ga je daadwerkelijk in het eigen team aan de slag en is het daarnaast ook gebruikelijk bij de klanten op locatie te komen om te werken aan de opdrachten. Je krijgt zodoende echt een mooie kijk in

Bekijk vacature »

Medior Front end developer React

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 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 op de

Bekijk vacature »

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Senior Front end developer Angular

Functie Er zijn momenteel 5 SCRUM-teams waarvan drie gefocust zijn op DevOps en de huidige projecten en twee op innovatie van de platformen. Jij zal onderdeel worden van het innovatie Scrum team. De 2 multidisciplinaire innovatie teams bestaan momenteel uit 14 werknemers. Jij als senior Front end developer wordt onderdeel van onze innovatieteams. De innovatieteams houden zich bezig met het door ontwikkelen van de huidige producten en denken na over nieuwe functionaliteiten. Binnen de rol van Front end developer krijg je veel vrijheid en kan je je dag zelf indelen. Dingen waar jij je dagelijks mee bezig zult houden is

Bekijk vacature »

Java Developer

Functie Wat ga je doen als Java developer? Jij komt terecht binnen een informeel team waarin je verantwoordelijk bent voor de backend systemen voor grote klanten als Ziggo en KPN. Als Medior Java developer werk je in teamverband en soms individueel. Gedurende de werkweek zal je veelvuldig sparren met je collega’s voor een goede implementatie van de software. Ben jij een echte Java developer? Ben je geïnteresseerd in de nieuwste technieken en de laatste ontwikkelingen? Dan ben je hier aan het juiste adres! Eisen Wat wordt er van jou verwacht? • Minimaal HBO/WO denk- en werkniveau; • Analytisch sterk, open

Bekijk vacature »

Junior Front-End Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale oplossingen van Coolblue. Wat doe je als Junior Front-End Developer bij Coolblue? Als Junior Front-End Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen. Op dat moment komt je wil om te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te maken. Je sterk analytisch vermogen komt dan goed van pas! Ook Junior Front-End Developer worden bij Coolblue?

Bekijk vacature »

Junior Outsystems developer

Functie Als junior Outsystems developer wordt jij onderdeel van een multidisciplinair team van 23 software engineers. Ons team werkt agile en termen als Continuous Integration en Continuous Delivery zijn bij ons dagelijkse koek. Wij werken aan uitdagende en afwisselende projecten met als doel onze klanten een totaal oplossing aan te bieden. Als junior Outsystems developer krijg jij bij ons de kans om jezelf te ontwikkelen naar een volwaardige ervaren en gecertificeerde Outsystems developer. Jij een team met ervaren mensen (10+ ervaring) om je heen. Zo heb jij niet het gevoel dat jij meteen in het diepe wordt gegooid en uiteraard

Bekijk vacature »

Ervaren C#.NET developer

Functieomschrijving We zijn op zoek naar een ervaren C#.NET programmeur voor een moderne werkgever in de regio Prinsenbeek. Als programmeur zal je bezig zijn met het ontwikkelen van op maat gemaakte webapplicaties voor verschillende klanten, waarbij je ervoor zorgt dat complexe processen zo goed mogelijk worden ondersteund. Je takenpakket omvat onder andere: Werken met databases en dataopslagoplossingen, implementeren van beveiligingsoplossingen en het waarborgen van de beveiliging van applicaties en gegevens, evenals het schrijven van technische documentatie en gebruikershandleidingen. Het ontwikkelen en onderhouden van C#.NET-applicaties. Bijdragen aan het ontwerp en de architectuur van softwaretoepassingen. Het schrijven van hoogwaardige en herbruikbare codes.

Bekijk vacature »

REMOTE - Front-end Angular developer

Functie Het IT-team bestaat momenteel uit de IT Manager, 2 back-end developers, 1 fullstack developer, 1 designer en een DevOps engineer. Ze zijn momenteel op zoek naar een ervaren Front-end developer die autonoom en gedisciplineerd aan de slag gaat, en bij aanvang als enige developer met hun Front-end applicaties bezig is. Wel hebben ze de ambitie om hier snel een 2e developer bij te vinden die jij dan ook zal kunnen aansturen/begeleiden. Je zult aan de slag gaan met het doorontwikkelen van hun bestaande UI in Angular. Maar ook het ontwikkelen van een mobiele app. Hierbij hechten ze veel waarde

Bekijk vacature »

Java developer - procesoptimalisatie (Inhouse)

Functie Wat ga je doen als Java developer? Jij als back end developer hebt al enige ervaring opgedaan in jouw vakgebied. Voornamelijk het werken met Java en Spring spreekt jou aan. Jij wordt samen met je collega developers in het team verantwoordelijk voor de gehele back end van de applicatie. Hierdoor heb jij veel zelfstandigheid in je rol en zul je ook zelf beslissingen samen met de PO maken. Er wordt gewerkt volgens de SCRUM methodiek, om zo structuur te creëren in de werkzaamheden. Binnen de 2-wekelijkse sprints pak jij je taken op die samen met de PO afgestemd zijn.

Bekijk vacature »

.NET Developer Azure

Dit ga je doen Het ontwerpen en bouwen van diverse applicaties (C#, ASP.NET, MVC); Het ontwikkelen van Webservices (WCF); Het meewerken aan de transitie naar Azure; Het samenwerken met collega's binnen een Scrumteam en meedenken over de User Stories; Het bouwen van unittesten; Meedenken over nieuwe tooling, ontwikkelingen en technologieën in de markt. Hier ga je werken Je komt te werken bij een organisatie die verantwoordelijk is voor de ontwikkeling van verschillende portalen. Deze portalen worden gebruikt door diverse partijen en jouw taak is om ervoor te zorgen dat deze optimaal functioneren. Je wordt onderdeel van een Scrumteam en werkt

Bekijk vacature »

Python (Django) developer - Remote in The Netherla

Functie Together with your team, consisting of a senior, 2 mediors and one junior developer, you will work on their software in an Agile-based approach. You have an eye for quality, risk, and customer interest. Communication with your colleagues and, where necessary, with customers, plays an important role in achieving a successful result. As a person, you are smart, get things done, and are result-oriented. There is a lot of independence within the development team, apart from the stand-up (10:00 am) and occasional pair-programming sessions. Techniques they use include Python, Django, MySQL, Mercurial, Ubuntu Linux, Nginx. In terms of front-end

Bekijk vacature »

SQL Developer

Functie omschrijving We are looking for a dutch native speaker Jij gaat in deze functie aan de slag met uitdagende projecten en het creëren van maatwerk software, vooral middels SQL. Iedere klant/project is weer anders, maar dat maakt dit bedrijf en de functie erg uniek & uitdagend. Verder heb je de volgende taken: Ontwikkelen en ontwerpen van SQL databases. T-SQL wordt hierbij gebruikt als programmeer laag; Optimalisatie van query's, voor een verbeterde efficiency; Begeleiden van junior developers, mits je dit leuk vindt; Heb je meer interesse in een rol als consultant, dan is dit ook mogelijk. Je heb hier meer

Bekijk vacature »

C++ Ontwikkelaar

Functieomschrijving Ben jij toe aan een nieuwe uitdaging en werk je graag en goed in C++ en C#? Dan zijn we op zoek naar jou! Dit bedrijf is dé specialist op het gebied van automatiseringssoftware voor een specifieke branche en ze zijn per direct op zoek naar versterking in hun development team. Wat jij gaat doen binnen jouw rol als C++ ontwikkelaar; Je vertaalt de wensen van gebruikers naar een functioneel ontwerp. Je houdt je bezig met het ontwerpen, programmeren en testen van product aanpassingen. Je gaat nieuwe product releases implementeren in de projectteams. Je gaat de effecten van nieuwe

Bekijk vacature »

Junior PHP ontwikkelaar

Functie Wij hebben onlangs onze eerste collega’s aangenomen, waardoor ons development team momenteel uit 4 personen bestaat. We bouwen onze software op basis van een PHP-framework (wat op zichzelf een Symfony framework is). Qua ontwikkeling focussen wij ons op 3 focus velden; – API-ontwikkeling/ Component Creatie – Implementatie – Framework ontwikkeling; het toevoegen van nieuwe functionaliteit of interne microservices Onze senior software engineer focust zich momenteel op de laatste twee punten, maar wij komen handen te kort op het eerste veld. Daarom zijn wij op zoek naar een enthousiaste junior software engineer die graag de kneepjes van het vak wil

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

27/05/2026 04:55:00
 
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.