Authorisatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Unieke PHP Laravel kans in een heel nieuw team!

Bedrijfsomschrijving Dit bedrijf is een grote speler in Nederland wat betreft duurzaamheid en ook binnen Europa timmeren ze stevig aan de weg. Het is een mooie organisatie die een ongekende groei heeft doorgemaakt in de afgelopen jaren. Ze hebben een geavanceerde online portal die intensief in gebruik is. Recent is besloten dit helemaal in eigen beheer te nemen en alle nieuwe PHP ontwikkelingen zelf te gaan doen. Hierdoor ontstaat er een unieke kans voor ervaren PHP ontwikkelaars. Je kunt namelijk instromen in een heel nieuw team en samen met je nieuwe teamgenoten de toekomstige PHP applicaties voor het bedrijf gaan

Bekijk vacature »

Starters functie Fullstack Java Developer @ Randst

2021-06-10 iSense Starters functie Fullstack Java Developer Ben je onlangs afgestudeerd van een IT-opleiding of heb je nog maar weinig ervaring opgedaan? En wil je toch graag aan de slag als Java Fullstack Developer? Lees dan snel verder, want op 9 augustus 2021 starten wij weer met een graduate programma waarin jij jezelf kunt ontwikkelen tot een volwaardige Fullstack Java Developer! ISLE50164 Nieuw Locatie Regio Randstad Wat kan jij van ons verwachten? • Een goed salaris gedurende het gehele programma; dus ook tijdens je cursusperiode! • De mogelijkheid om belangrijke certificeringen te behalen op het gebied van JAVA • Loopbaancoaching

Bekijk vacature »

Medior PHP Developer

As a PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible. How do I become a Medior PHP Developer at Coolblue? As a PHP Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little C# or JavaScript. Would you also like to become a PHP Developer at Coolblue? Read below if the job suits you.” You enjoy doing this Writing PHP code, but can also find your way in

Bekijk vacature »

Business Intelligence Developer

Wat kan je? Big Data, BI WO denkniveau Medior, Senior werkniveau 2-5, 5+ jaar werkervaring Nederlands, Engels sprekend Wat krijg je? Consultancy € 3000 - € 7000 bruto per maand Flexibele werktijden Lease auto Tankpas Laptop Pensioen Sporten Wat doe je? Minimaal een 32-urige werkweek Samenwerken met 10-20 collega's Je werkt samen met Sales, IT Focus op B2B Je werkt voornamelijk met Overheidsbeleid, Farmacie, Logistiek en distributieketen, Verzekeringen, Gezondheid De vacature Als BI-consultant help je onze klanten complexe vraagstukken en business requirements te vertalen naar oplossingen. Je levert hoogwaardige diensten en zoekt naar duurzame oplossingen voor specifieke uitdagingen van de

Bekijk vacature »

Front-end Developer

As a Front-End Developer at Coolblue you improve the user-friendliness of our webshop for millions of customers. How do I become a 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 Front-End Developer at Coolblue? Read below if the job suits you.

Bekijk vacature »

Python Developer / Data Engineer / data pipelines

2021-04-26 iSense Python Developer / Data Engineer / data pipelines Ben jij een junior / medior Python Developer die enthousiast wordt van Big Data en Microservices? Werk jij graag met grote hoeveelheden data vanuit verschillende bronnen? Dan is dit de vacature voor jou! ISMO49727 Organisatie Bij dit grote, innovatieve technische bedrijf wil men graag flink groeien dit jaar, namelijk van zo'n 100 naar 120 mensen. In de afgelopen jaren is er hard gewerkt om een nieuw software product op de markt te zetten ter ondersteuning van hun fysieke producten en omdat dit een groot succes is, wordt het nu uitgerold

Bekijk vacature »

Java / Hippo developer

Functieomschrijving Ben jij een ervaren Java/Hippo ontwikkelaar en op zoek naar een internationale, creatieve en innovatieve omgeving? Wil jij werken in een divers applicatielandschap waar alle aspecten van het vakgebied van een developer aan bod komen, zodat je je volledig kan ontplooien? Bij Randstad Groep Nederland (HQ) zijn we op zoek naar jou! Wij zijn op zoek naar een Java/Hippo ontwikkelaar die per direct ons interne team komt versterken. Java/Hippo development bij Randstad Groep Nederland (HQ) Je komt te werken in het Online Search Experience team. Dit team werkt samen met de product owner aan onze web omgevingen van Randstad

Bekijk vacature »

Fullstack ontwikkelaar @ Delft

2020-12-23 iSense Fullstack ontwikkelaar Ben jij een ervaren Fullstack ontwikkelaar? Heb je daarbij ervaring op het gebied van Javascript en .Net Core? Lees dan verder! ISAC48652 Nieuw Organisatie Bij het accepteren van dit aanbod kom je terecht binnen een veelzijdige organisatie waar een goede sfeer hangt. Zij zijn gewend dagelijks met elkaar te lunchen en ruimte is voor een potje Mario. Als Fullstack ontwikkelaar ga je je op projectbasis bezighouden met het ontwikkelen van content voor diverse opdrachtgevers. De projecten waar je aan gaat werken zullen verschillende qua omvang. Hierbij kan je rekening houden met een gemiddelde doorlooptijd van een

Bekijk vacature »

.NET developer C# / ASP.NET / SQL Server / Migrati

Bedrijfsomschrijving Dit bedrijf is een inkooporganisatie dat grote partijen inkoopt waar een grote groep van kleine ondernemers dan weer van profiteren omdat de kosten van inkoop worden gedrukt. Ze bestaan ruim 20 jaar en er zijn al duizenden organisaties aangesloten. Ieder product heeft een aparte klantenkring en voor iedere klantenkring zijn er applicaties gebouwd om de inkoop en afhandeling vlot en secuur te laten verlopen. Er werken nu ruim 70 collega’s verdeeld over de verschillende productgroepen en de IT afdeling van 10 man zorgt voor alle interne procesautomatisering. De sfeer is open en informeel. Er wordt samen geluncht en deze

Bekijk vacature »

Java Ontwikkelaar

Wat kan je? Java WO, Master denkniveau Lead werkniveau 5+ jaar werkervaring Engels sprekend Wat krijg je? Vast € 5800 - € 6600 bruto per maand Flexibele werktijden Lunch Laptop Pensioen Netto onkostenvergoeding Sporten Wat doe je? Minimaal een 40-urige werkweek Samenwerken met 20-50 collega's Je werkt samen met Sales, Management, IT Focus op B2B Je werkt voornamelijk met De vacature Senior Java Software Engineering ervaring en expertise (minimaal 8-10 jaar ervaring) Bij voorkeur een Masters in Informatica (gerelateerde) opleiding Ervaring als Informatie analist en bekend met daarin gebruikte techieken (Agile/Scrum development technieken als Use Cases, user stories). Ervaring, of

Bekijk vacature »

WordPress / E-commerce Developer

Wat kan je? Frontend, PHP Geen denkniveau Junior, Medior, Senior werkniveau 0-2, 2-5, 5+ jaar werkervaring Nederlands sprekend Wat krijg je? Vast € 2500 - € 5000 bruto per maand Lunch Laptop Pensioen Netto onkostenvergoeding Wat doe je? Minimaal een 40-urige werkweek Samenwerken met 10-20 collega's Je werkt samen met Management, IT Focus op B2B & B2C Je werkt voornamelijk met De vacature Door je ervaring (medior/senior) verkrijg je in ons development team een positie waarbij je het niveau naar een volgend level kan brengen. Je hebt aantoonbare ervaring in het uitdenken en ontwikkelen van systemen, waarbij je focus ligt

Bekijk vacature »

Medior Backend Developer

Wat kan je? PHP MBO, HBO, WO, Master denkniveau Medior werkniveau 5+ jaar werkervaring Nederlands, Engels sprekend Wat krijg je? Vast € 2000 - € 4000 bruto per maand Flexibele werktijden Lunch Laptop Pensioen Netto onkostenvergoeding Sporten Wat doe je? Minimaal een 32-urige werkweek Samenwerken met 50+ collega's Je werkt samen met Sales, HR, Marketing, Klantenservice, Management Focus op B2B Je werkt voornamelijk met De vacature Je werkt aan diverse projecten voor nog diversere klanten in alle branches die je kunt bedenken. Je gaat werken met en mee ontwikkelen aan ons in-house ontwikkelde framework welke we als basis gebruiken voor

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 Senior Front-end Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the Interaction 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. You share your knowledge with your team and other front-enders. "Want

Bekijk vacature »

Full Stack Cloud & Java Developer - Utrecht

Wat kan je? Java MBO, HBO, WO, Master denkniveau Medior, Senior werkniveau 2-5, 5+ jaar werkervaring Engels sprekend Wat krijg je? Vast € 3500 - € 4700 bruto per maand Flexibele werktijden Lunch Laptop Pensioen Netto onkostenvergoeding Zorgverzekering Wat doe je? Minimaal een 32-urige werkweek Samenwerken met 0-10 collega's Je werkt samen met IT Focus op B2B Je werkt voornamelijk met De vacature Valtech is looking for a Full Stack Cloud Developer. Someone who loves working with the newest technologies and is on top of what’s next. Do you have a keen eye for performance, stability and traceability? Are you

Bekijk vacature »

Medior Developer

Kom je met ons samenwerken in ons mooi kantoor hartje centrum Breda? Wat ga je doen als developer bij JobBoost.io? Als software developer kom je bij JobBoost.io terecht in een hecht en gespecialiseerd team waar we elke werkdag streven naar een beter systeem. We hebben al grote resultaten behaald met onze kennis, ervaring en tooling die inspeelt op de behoefte van werkgevers die hun vacature advertenties optimaal willen adverteren. Dat doen we voor grote partijen zoals Arcadis, Kruidvat, PostNL en Takeaway. We zoeken een ervaren developer met ervaring die met onze Koen (CTO) kan opschalen in development capaciteit en het

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

17/06/2021 11:09:02
 
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.