Authorisatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Test Automation Engineer

Werk jij graag mee aan het verbeteren van de kwaliteit binnen de Pensioenwereld? Heb jij ervaring met het automatiseren van testen en help je zo mee met de uitdagingen bij onze pensioenklanten? Dan zijn we op zoek naar jou! Wat ga je doen? Digitalisering en meer directe communicatie met de deelnemers zijn thema’s in de Pensioenwereld. Dit vereist kwaliteit en betrouwbaarheid. Als Test Automation Engineer zet je jouw kennis en ervaring van techniek en testen in om onze klanten hiermee te helpen. Je automatiseert systeem- en integratietesten, je voert performance en security testen uit en kan onze klanten helpen om

Bekijk vacature »

Lead Full Stack Developer / Mobile Apps / C# / Rea

Bedrijfsomschrijving Als Full Stack developer kom je te werken bij een organisatie in regio Ede die gespecialiseerd is in het ontwikkelen en implementeren van software. Zo hebben ze een eigen ontwikkelde applicaties in de markt gezet voor de agrarische sector die internationaal zeer succesvol is en waar grote vraag naar is. Door deze software worden klanten op een slimme manier ondersteund bij voorraden, administratie, het maken van planningen en nog veel meer. De laatste tijd neemt de vraag naar mobile applicaties toe die klanten real time van de correcte informatie voorzien en het mogelijk maken om onder andere data registraties

Bekijk vacature »

OutSystems developer

Bedrijfsomschrijving Onze opdrachtgever, gevestigd in regio Amsterdam, is een innovatieve dienstverlener die zich richt op grote corporates in verschillende sectoren. Doordat je bij veel verschillende klanten aan de slag zal gaan is geen enkel project hetzelfde. De organisatie kenmerkt zich door hoge mate van professionaliteit en innovatieve oplossingen. In de rol van OutSystems developer zal jij verschillende grote klanten helpen om efficiënte OutSystems oplossingen te ontwikkelen en implementeren. Jij zal hierbij vanuit jouw expertise de klant adviseren over hoe OutSystems als lowcode platform een toegevoegde waarde kan zijn en op welke manier deze gebruikt kan worden. Hierin neem jij uiteraard

Bekijk vacature »

Senior Node.js Developer (NL)

Senior Node.js Developer (NL) Den Haag HBO/WO IT Professional "Als Senior Node.js Developer impact maken op de groeiende E-commerce markt met onze logistieke software. Je doet dit door complexe bedrijfskritische logistieke business processen te vertalen naar de ontwikkeling en uitbreiding van onze Cloud IT-platformen en software oplossingen in JavaScript en AWS" Wat ga je doen? PostNL is becoming a postal tech company. Als Senior Node.js Developer ben je onderdeel van een multidisciplinair Business-IT-team bestaande uit onder andere een Lead Engineer, JavaScript Developers en Solution Consultants. Samen zijn jullie verantwoordelijk voor het bouwen aan het Event Management Platform (EMP). Dit platform

Bekijk vacature »

Ervaren developer (front-end/back-end)

Functie: Senior Developer Werklocatie: Zoetermeer Wij hebben met het door ons zelf ontwikkelde Financiële Advies software “Finix-Advies”, een vooraanstaande positie in de financiële branche. Echter hebben wij nu als doel onze visie om te zetten in software die consumenten, adviseurs en aanbieders ondersteunt. Vooral adviseurs, vermogens- beheerder als banken en verzekeraars maken gebruik van Finix om haar klanten snel en vakkundig te voorzien van (financieel) advies. Met behulp van Finix kunnen gebruikers op snelle, efficiënte en vakkundige wijze haar klanten helpen bij het geven van het juiste financiële advies en het realiseren van haar dromen. Bijvoorbeeld bij het adviseren van

Bekijk vacature »

C# ontwikkelaar gezocht, academisch niveau, goed s

Ben je als .NET ontwikkelaar op zoek naar een (nieuwe) analytische uitdagende baan? Een baan waar je te maken krijgt geavanceerde wiskundige modellen? Dan zou deze organisatie je dit kunnen bieden. Voor een organisatie in Delft zijn we momenteel op zoek naar .NET ontwikkelaar met een academisch niveau en kennis of affiniteit met het bouwen van modellen, dataprocessen en applicaties in .NET C#. De organisatie houdt zich bezig met het leveren van zeer specifieke diensten voor de financiële sector en doet veel zaken met grote financiële instellingen. Het gaat hier om een kleinere organisatie van circa 15 mensen waarvan 5

Bekijk vacature »

Dynamics 365 Business Central Developer

Bedrijfsomschrijving Als Dynamics Business Central Developer kom je te werken bij een organisatie in regio Ede die gespecialiseerd is in het ontwikkelen en implementeren van software. Zo hebben ze een eigen ontwikkelde applicatie in de markt gezet voor de agrarische sector die internationaal zeer succesvol is en waar grote vraag naar is. Door deze software worden klanten op een slimme manier ondersteund bij voorraden, administratie, het maken van planningen, het tonen van real time informatie en nog veel meer. Dit platform is ontwikkeld op basis van Dynamics 365 Business Central, waar bovenop applicaties middels .NET Core, React en Azure worden

Bekijk vacature »

Fullstack Developer Angular 6 Java

Bedrijfsomschrijving Het bedrijf, gelegen in hartje Utrecht, werkt nauw samen met alle instanties die gericht zijn op het Nederlandse wegennet. De applicatie waar jij aan gaat werken brengt het volledige wegennet van Nederland in kaart. Aan de hand van deze applicatie kunnen instanties een duidelijk overzicht krijgen over waar en wanneer er veranderingen en verbeteringen plaats moeten vinden. In andere woorden: Jij werkt direct mee aan het verbeteren van de infrastructuur binnen Nederland. Als Fullstack Java Developer kom je terecht in het team wat verantwoordelijk is voor alle innovatie projecten die er binnen de organisatie bedacht worden. Daardoor zal je

Bekijk vacature »

Gezocht: BI Consultant/Developer die wil doorgroei

Bedrijfsomschrijving Heb jij al minimaal 2 jaar ervaring als BI Developer/Consultant en wil jij de overstap maken naar een organisatie die je de mogelijkheden biedt om flink door te groeien/ontwikkelen? Lees dan vooral verder! Voor een grote klant ben ik zoekende naar BI Developers die zich willen aansluiten bij een high tech organisatie. Ze focussen ze zich onder andere op Cloud, Cyber Security, Big Data en nog veel meer thema's van deze tijd. Ze zijn wereldwijd en op meerdere locaties binnen Nederland actief. Dit zorgt ervoor dat er altijd wel een kantoor in de buurt van je woonplaats te vinden

Bekijk vacature »

Software Engineer C++ / Software Developer C++

Software Engineer C++ / Software Developer C++ (Bsc, MSc, Computer Science, Information Technology, Mathematics, C, C++, Linux, Algorithms) General Do you find great joy in software development, which is then used worldwide, and are you familiar with C++ and with algorithms… read on! Organization For our business client, a fast dynamic technical company which gathers and processes huge amounts of data, we are looking for several Software Engineers. You will be part of a team consisting of about 25 software developers working on a suit of advanced software tools. These software tools are then used further on in the company

Bekijk vacature »

Junior New Business Developer

Lijkt het je gaaf om een nieuwe waardestroom op te zetten voor Coolblue? Geeft het je een kick om op een groene en duurzame manier aan het werk te zijn terwijl je ook meer geld voor Coolblue kan verdienen? Dan is dit iets voor jou! Hoe word ik Junior New Business Developer/Owner Televisies Refurbishen bij Coolblue? Bij Coolblue zijn we constant op zoek naar nieuwe, innovatieve waardestromen. Zo zijn we begonnen met het refurbishen en verkopen van afgedankt witgoed. De volgende stap die we hier in willen zetten is televisies. Deze belanden nu op de afvalberg, terwijl er nog heel

Bekijk vacature »

Product Owner Systeembeheer/Operations

Werken bij Bakker&Spees betekent werken in een innovatief IT-bedrijf met zelfsturende teams en in totaal 40 medewerkers. Omdat we flink groeien hebben we bij Systeembeheer behoefte aan verdere verbreding en uitbreiding van het team. Bij Systeembeheer is er geen sprake van één product maar een hele reeks. Juist daarom zoeken we een Product Owner die overzicht kan houden en eigendom kan nemen over die reeks. Deze producten en diensten variëren van basaal werkplekbeheer, kantoorinfrastructuur en softwareonderhoud (van eigen en externe software) tot netwerk-, server- en databasebeheer (Linux en Windows), monitoring, security, hosting en deployment automatisering. Wat ga je doen: Als

Bekijk vacature »

Backend .NET Developer C# Voetbal

Bedrijfsomschrijving Binnen deze organisatie in de regio Den Haag zal je als .NET Developer terecht komen in een multidisciplinair team met 5 andere Programmeurs. In jouw rol ben je verantwoordelijk voor het ontwikkelen en optimaliseren van mobiele applicaties met meer dan 4 miljoen gebruikers wereldwijd. Als Backend Developer zal je dagelijks werken met C#, .NET Core, Kubernetes en een SQL Database. Voor het onderling communiceren van de microservices wordt gebruik gemaakt van RabbitMQ. Je krijgt energie van technische uitdagingen en je werkt graag samen. Verder zul je in vele projecten deelnemen, zorg je voor nieuwe features, los je diverse bugs

Bekijk vacature »

Java Developer

Onze opdrachtgever heeft zsm ruimte voor twee java developers. Rotterdam, een jaar contract (ZZP mogelijk) met optie van verlenging van een jaar. Fulltime. Jouw profiel Je beschikt over de volgende competenties: Resultaatgerichtheid Kwaliteitsgericht (clean code) Integriteit Planmatig werken Samenwerken Sociaal Gericht op delen van kennis Beheersing van de Nederlandse taal Eisen Je beschikt over minimaal: Een afgeronde relevante HBO-opleiding (zoals Hogere Informatica Opleiding en/of Technische Informatica) of een afgeronde WO Bèta studie 5 jaar ervaring als Java ontwikkelaar (senior) opgedaan in de afgelopen 6 jaar 4 jaar ervaring met Spring opgedaan in de afgelopen 6 jaar 4 jaar ervaring met

Bekijk vacature »

.NET developer / .NET Core / C# / Azure / Angular

Bedrijfsomschrijving Als .NET developer ga je samen met zes collega's werken in aan state-of-the-art oplossingen voor diverse opdrachtgevers en werk jij hard om de kwaliteit te blijven waarborgen van het geleverde werk. Denk hierbij aan het van scratch af aan bouwen van oplossingen, platformen, apps en andere portalen waar grote hoeveelheden data, AI en loT centraal staan. Zo is de organisatie onder andere bezig met het bouwen van een platform wat gebouwen middels tal van sensoren in kaart brengt en alles wat daarbij komt kijken. Zo kan iedereen in een opslag op een plattegrond zien welke ruimte bezet, gereserveerd of

Bekijk vacature »
Roeltje M

Roeltje M

21/09/2010 21:26:29
Quote Anchor link
Hoi,

Ik heb een authorisatiescript. Deze ziet er als volgt uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?PHP
/* USER LEVELS */

$ulNamen = array(0 => 'Normale gebruiker',
               1 => 'Teameditor',
               2 => 'Nieuwsredacteur',
               4 => 'Contentbeheerder',
               8 => 'Administrator');

define("GEBRUIKER", 0 );
define("TEAMS", 1 );
define("REDACTIE", 2 );
define("CONTENT", 4 );
define("ADMIN", 8);

/* LEVEL AREAS */

define("ADMIN_PANEL", TEAMS + CONTENT + REDACTIE + ADMIN);
define("NEWS", REDACTIE + ADMIN);
define("LINKS", ADMIN);
define("TEAM", TEAMS + ADMIN);
define("PAGE", CONTENT + ADMIN);
define("USER", ADMIN);
define("BANNER", ADMIN);
define("ANNOUNCE", ADMIN);
define("SETTINGS", ADMIN);

// Functie

function isUserAuthorized( $sectionlevel )
{

    // controleer of de sessie gegevens aanwezig zijn
    if( !isset( $_SESSION["USER"]["LEVEL"] ) )
    {

        // de sessie gegevens zijn niet aanwezig
        return false;
    }

 
    // haal het gebruikersniveau op (in integer formaat)
    $userlevel = intval( $_SESSION["USER"]["LEVEL"]  );
 
    // ok, hier gebeurd de werkelijke magic ;-) We gebruiken de bitwise AND operator!
    // controleer of de gebruiker toegang heeft tot de sectie

    return ( $userlevel & $sectionlevel ) > 0 ;
}


// Voorbeeld

if(!isUserAuthorized(NEWS))
{

    header("Location: admin.php");
}

?>


In de database staat dus bij user_level een getal (bijvoorbeeld 8 is admin). Ik zou graag per gebruiker meerdere userlevels toe willen voegen, dus zeg maar 2,4 (is dan content beheren en nieuwsberichten plaatsen). Echter, hoe moet ik dan mijn function opzetten. Ik kreeg het helaas niet voor elkaar.

Ik ging eerst user_levels exploden (zodat je een 2 en een 4 krijgt), maar verder kom ik niet echt.

Ik zit hier vast:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?
function isUserAuthorized( $sectionlevel )
{

    $levels = array();
    // controleer of de sessie gegevens aanwezig zijn
    if( !isset( $_SESSION["USER"]["LEVEL"] ) )
    {

        // de sessie gegevens zijn niet aanwezig
        return false;
    }

 
    // haal het gebruikersniveau op (in integer formaat)
    $userlevels = explode(",",$_SESSION["USER"]["LEVEL"] );
    foreach($userlevels as $id => $level)
    {

        if(( $level & $sectionlevel ) > 0)
        {

            $levels[$level] = true;
        }

        else
        {
            $levels[$level] = false;
        }
    }

    // ok, hier gebeurd de werkelijke magic ;-) We gebruiken de bitwise AND operator!
    // controleer of de gebruiker toegang heeft tot de sectie

    return $levels[$level];
}

?>
Gewijzigd op 21/09/2010 21:41:04 door Roeltje M
 
PHP hulp

PHP hulp

30/11/2020 00:23:44
 
Joren de Wit

Joren de Wit

21/09/2010 21:34:04
Quote Anchor link
Om te beginnen maak je een fout door meerdere levels in 1 veld te zetten. Dan zit er een fout in je datamodel aangezien je hier een aparte tabel voor hoort te gebruiken zodra je meerdere levels aan 1 gebruiker wilt koppelen.

Verder zou je kunnen overwegen om af te stappen van de manier van authorisatie die je nu gebruikt en dit met behulp van de database te gaan doen. Maak een tabel met rollen voor gebruikers (admin, editor, etc) en geef alle gebruiker 1 of meerdere rollen:

users
----
id
name
etc...

roles
----
id
role

user_role
--------
id
user_id
role_id

In deze opzet kun je in de user_role tabel net zoveel rollen aan de gebruiker koppelen als je wilt. Vervolgens zou je nog een extra tabel kunnen aanmaken waarin je de acties opneemt en 1 waarin je de rechten op een bepaalde actie aan een rol koppelt.

Het grote voordeel van deze opzet is dat je veel flexibeler bent dan de manier die je nu gebruikt. Het wordt heel eenvoudig om 1 bepaald recht toe te kennen aan of te ontnemen van 1 of meerdere rollen. En dat vloeit automatisch door naar alle gebruiker die betreffende rol hebben...
 
Niels K

Niels K

21/09/2010 21:36:57
Quote Anchor link
@Blanche

Voor de koppel tabel 'user_role' is het veld id overbodig dacht ik zo..
 
Roeltje M

Roeltje M

21/09/2010 21:42:09
Quote Anchor link
@ Blance,

Bedankt, zal het meenemen!
 
Joren de Wit

Joren de Wit

21/09/2010 21:45:25
Quote Anchor link
@Niels: in principe zou je ook een PK aan kunnen brengen op de combinatie (user_id, role_id), daar heb je helemaal gelijk in :-)
 
Hipska BE

Hipska BE

21/09/2010 21:45:47
Quote Anchor link
Je zal moeten bitwise controleren of je user dan toegang heeft.

stel een gebruiker die TEAMS+CONTENT is heeft (binair) 0101

Deze gebruiker mag dan in het ADMIN_PANEL (want 1111) maar niet NEWS plaatsen (1010) maar wel TEAM (1001)

Dus van zodra een BIT in de user rechten overeenkomt in de vereiste rechten is hij toegelaten.

Je zal even moeten spelen met de operators.

Een snelle kijk op de manual pagina toont dat je & zult moeten gebruiken

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$user
= TEAMS+CONTENT;

var_dump(
    (
$user & TEAMS + CONTENT + REDACTIE + ADMIN) == 0, // admin panel levert true
    ($user & REDACTIE + ADMIN) == 0, // news levert false
    ($user & TEAMS + ADMIN) == 0, // team levert true
);
?>


Je zou dus gewoon return ($user & $sectionlevel) == 0; kunnen doen.
Gewijzigd op 21/09/2010 21:54:26 door Hipska BE
 
Pim -

Pim -

21/09/2010 23:28:28
Quote Anchor link
Blanche PHP op 21/09/2010 21:34:04:
Vervolgens zou je nog een extra tabel kunnen aanmaken waarin je de acties opneemt en 1 waarin je de rechten op een bepaalde actie aan een rol koppelt.


Zou ik niet doen. De acties worden slechts door de code, niet door de content bepaald en zo creëer je een onnodige laag.
Gewijzigd op 21/09/2010 23:32:54 door Pim -
 
Jelmer -

Jelmer -

21/09/2010 23:31:19
Quote Anchor link
Truukje, met printf kan je makkelijk binaire waarden weergeven, soms wel even handig als je wilt uitvogelen of je de machten van 2 of de juiste operators nog wel goed hebt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php printf('%b', 8 & 3); /* 1011 */ ?>


Let trouwens wel even op met + gebruiken bij bijv. 4 + 6. Je wilt niet optellen, je wilt dat de bits voor 4 en voor 6 allebei aanstaan, en daarvoor gebruik je bitwise-or, oftewel de pipe |.
4 (0100) + 6 (0110) = 10 (1010) (zie, bitje voor 4 staat nu uit!, dus 10 & 4 == false!)
4 (0100) | 6 (0110) = 6 (0110)
Gewijzigd op 21/09/2010 23:31:56 door Jelmer -
 
Hipska BE

Hipska BE

23/09/2010 18:18:22
Quote Anchor link
Ik zie deze persoon nergens 4+6 doen hoor Jelmer.

Zolang hij met waardes van 2^n blijft zit hij safe volgens mij..
 



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.