Authorisatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

SQL Developer / SQL DBA / Financiële instelli

Functieomschrijving Ben jij een ervaren SQL Developer / SQL DBA die houdt van een uitdaging? Heb je ruime ervaring met SQL, SQL Server, SSIS en het bouwen van queries? Lijkt het jou interessant om verantwoordelijk te zijn voor de gehele Nederlandse database omgeving van deze internationale financiële organisatie? Lees dan snel verder! Verantwoordelijk voor operationele werking van de database omgeving voor alle Nederlandse vestigingen; Schrijven van SQL queries; Beantwoorden complexe integratie vraagstukken; Meewerken aan uiteenlopende interne projecten en organisatiebrede migratie trajecten; Requirements opstellen; Fungeren als sparringspartner voor de business. Functie-eisen HBO werk- en denkniveau; Minimaal drie jaar ervaring in een

Bekijk vacature »

Senior PHP Developer Zend

Voor een van mijn businesspartners in de regio Veenendaal ben ik op zoek naar een senior PHP developer. Organisatie Dit bedrijf is 30 jaar geleden ontstaan als speciaal systeem voor campings om kerstkaarten geautomatiseerd naar hun gasten te sturen. Op dit moment zijn ze uitgegroeid tot een organisatie met 50 medewerkers waarvan 10 op de IT afdeling. Hun software verzendt inmiddels ook geen kerstkaarten meer. Tegenwoordig zijn de grotere recreatie en vakantieparken als bijvoorbeeld Duinrell gebruikers van hun software. Zij focussen zich volledig op de recreatiebranch en de software zorgt er voor dat wanneer er een reservering wordt gemaakt dat

Bekijk vacature »

PHP Midlance Developer

Jij hebt al een aantal jaren werkervaring in de PHP wereld en twijfelt over de stap naar freelancer… Want hoe lekker is het als je in overleg met de eindgebruiker je tijden kan bepalen, je veel vrijheid hebt, bij alleen toonaangevende organisaties terecht komt en ook nog eens DIK betaald krijgt? Voor veel ontwikkelaars is dit toch net een stap te ver. Zij willen gewoon lekker code kloppen en zich niet bezig houden met het regelen van opdrachten, administratieve zaken of andere randzaken. Klinkt dit bekend? Wij bieden de middenweg! Wie zijn wij? Wij zijn niet het stereotype organisatie waar

Bekijk vacature »

Lead developer gezocht voor Microsoft Partner

Vrijheid , Korte lijnen , Modern en Hip zonder Hiërarchieën. Dit is een korte beschrijving hoe de bedrijfscultuur er van binnen uit ziet. Voor deze groeiende organisatie in Utrecht ben ik op zoek naar een gezellige en communicatief vaardige Lead software developer met meer dan 5 jaar C# / .Net ervaring, Je gaat werken bij een organisatie dat zich voornamelijk bezig houdt met het ontwikkelen van maatwerk software die zij geheel zelf ontwerpen en aanleveren bij grote klanten. Denk hierbij aan gemeentes, Universiteiten , Ziekenhuizen en tal van andere sectoren. Flexibiliteit is belangrijk omdat de ontwikkelaars gewend zijn om vrijheid

Bekijk vacature »

Front End Developer

Organisatie Al meer dan 30 jaar maakt dit bedrijf complexe applicaties die wereldwijd gebruikt worden. Deze organisatie is uitgegroeid tot een belangrijke niche speler in de markt van kennisintensieve maatwerk oplossingen waarbij ze zowel start-ups als multinationals bedienen in binnen- en buitenland. Multinationals zoals Unilever, Mars maar ook start-ups zoals Mobility Concept waar ze software voor ontwikkelen. Zo hebben ze voor een klant een mobiliteitsplatform gebouwd om CO2-uitstoot en brandstof af te rekenen. Dit wordt voornamelijk gebruikt door lease rijders of bijvoorbeeld Capgemini om mensen proberen te bewegen, zoals auto’s delen of op de fiets te gaan. Functie Deze organisatie

Bekijk vacature »

Information Security Officer

Bedrijfsinformatie Bouw mee met de gemeente Westland. De gemeente Westland is met ruim 100.000 inwoners één van de dertig grootste gemeenten in Nederland. Met haar duurzame en innovatieve glastuinbouwcluster is de gemeente Westland een belangrijke economische motor. Op een inspirerende manier biedt gemeente Westland haar inwoners ruimte, rust, groen en woonomgevingen met aantrekkelijke recreatiemogelijkheden en voorzieningen. Een vitale economie en een bloeiend verenigingsleven zorgen voor een dynamische en actieve gemeente. Slagkracht, ambitie, innovatie en professionaliteit, dat zijn de kernbegrippen waar het in Westland om draait! De organisatie Gemeente Westland is een uitdagende en eigentijdse werkgever, die continu in ontwikkeling is.

Bekijk vacature »

Medior .NET developer / Utrecht /

Organisatie Direct bij binnenkomst loop je de twee StarWars figuren langs op weg naar de tweede verdieping. Aan de linkerkant staat de vers gemaakte koffie al klaar, zodat jij samen met jou team eerst kan genieten van een lekkere kop koffie! Samen met 12 andere ontwikkelaars is dit gezellige, ruime en lichte kantoor jullie plekje. Verdeeld over 2 scrumteams bestaande uit 6 backend developers, 4 front-end developers, een architect en een tester maken jullie er dagelijks weer een gezellige dag van! Samen met jouw team bekijken jullie dagelijks de prioriteiten en schatten jullie het werk in van die dag. Jullie

Bekijk vacature »

Medior PHP ontwikkelaar in Tilburg

Organisatie Deze organisatie is zo’n 15 jaar geleden ontstaan en werken aan enorm gave projecten voor grote opdrachtgevers zoals bijvoorbeeld Bose. De projecten zijn enorm divers en verspreid over meerdere branches. Je kan hierbij denken aan het ontwikkelen van CRM systemen, mobile apps en het ontwikkelen van websites. Bij deze jonge, informele organisatie lopen zo’n 10 ontwikkelaars rond die allen hetzelfde doel hebben: Echt iets bijdragen aan de projecten. Samen iets gaafs neerzetten. Het leuke is de grote invloed die je op de projecten kan uitoefenen en de korte lijnen binnen de organisatie. Hierdoor zou het zomaar kunnen dat door

Bekijk vacature »

Junior .NET Programmeur

Organisatie De organisatie is een dynamisch bedrijf dat zich focust op dienstverlening. De core bussiness is het ontwikkelen en optimaliseren van innovatieve software oplossingen voor de overheid en het bedrijfsleven. Er word met een topteam van 10FTE gewerkt aan de meest innovatieve oplossingen. Zeven van de tien werknemers zijn IT’er en de rest houdt zich bezig met de randzaken: sales en HR. Samen met haar partners kijkt het bedrijf hoe er op een nog innovatievere manier gegevens kunnen worden gevisualiseerd en geïmplementeerd. Ze zijn er bij deze organisatie van overtuigd het integraal ontsluiten van gegevens sneller, goedkoper, veiliger en kwalitatief

Bekijk vacature »

Lead PHP developer

Organisatie Veel bedrijven roepen innovatief te zijn en met de nieuwste technieken te werken, deze organisatie doet dát ook écht. Dankzij continue innovatie bieden zij hun klanten de beste proposities aan en laten ze hun klanten echt excelleren. De producten die ze leveren zijn met name digital marketing software. Als Lead PHP developer zal je de gehele levenscyclus van de software begeleiden, van ontwikkeling tot implementeer, van concept tot strategie. Er heerst een work hard, play hard cultuur binnen dit bedrijf, waarbij iedereen op een informele manier met elkaar om gaat. Omdat er veel verschillende applicaties zijn waar aan gewerkt

Bekijk vacature »

Senior Systeembeheerder

Brandweer Amsterdam-Amstelland zoekt: Senior Systeembeheerder(v/m) 36 uur p/w Locatie: Kazerne Willem (Ringdijk 98) Werken bij Brandweer Amsterdam-Amstelland Ons werk stopt nooit. Dag in, dag uit staan wij klaar om te beschermen wat waardevol is. Wij bestrijden brand, redden levens en verlenen hulp bij ongevallen. Liever nog zijn we problemen een stap voor. Daarom zetten we ons in voor preventie en geven we voorlichting en advies. Ons werk is divers, geen dag is hetzelfde. Net als de mensen die bij ons werken. Zo dragen niet alle brandweermensen een helm en vuurwerende kleding. Van communicatiemedewerker tot monteur, van controller tot P&O-adviseur: wij

Bekijk vacature »

iOS and Android Application Developer

MMT is looking for enthusiastic and dynamic iOS and Android Application Developer for it’s Health Applications, I.e. GluEye. Improve robustness of the applications and add new features In the role as iOS and Android Application Developer you will be a member of the maintenance developer team. You will be responsible for the quality and our internal platform to satisfy our client needs. This position requires 4 days presence in Geneva, but can be filled by a foreign national from European countries. In a fast-growing environment you will be responsible of our platform consistence and evolution to follow the latest technologies

Bekijk vacature »

.NET Developer / C# / miljarden berichten / Zorgse

Functieomschrijving Zit jij aan je plafond als .NET C# Developer? Wil jij de stap maken naar dé .NET software organisatie van Tilburg? Lees dan nu verder! Bedrijfsomschrijving werken bij een organisatie waar je met het volgende in aanraking komt: High-intensity dataverkeer, meer dan 2,7 miljard berichten per jaar; Development aan .NET applicaties die maandelijks miljoenen euro's verwerken; Salaris als developer tot bijna 70.000 euro op jaarbasis; Geen partij in de omgeving van Tilburg die zo'n complex .NET applicatielandschap heeft; Werken aan meer dan 50 diensten, verdeeld over 10 Scrum teams; Focus op o.a.: C# en ASP.NET in een Agile organisatie;

Bekijk vacature »

Medior PHP Developer

Voor een van mijn businesspartners in de regio Woerden ben ik op zoek naar een ervaren medior PHP developer. Organisatie Dit bedrijf is 20 jaar geleden ontstaan om alles omtrent de energie in je woning te automatiseren. Waar voorheen een kaart werd gebruikt om de meterstanden door te geven is dat door dit bedrijf volledig digitaal gemaakt in Nederland. Omdat het zo’n uniek product is in Nederland zijn alle energiemaatschappijen klant van hun en zijn ze marktleider op dit gebied. Daarnaast hebben ze een planningstool ontwikkelt voor de onderhoudsmonteurs en deze zijn ze verder door aan het ontwikkelen om deze

Bekijk vacature »

Medior C# developer

Op een steenworp afstand van het Veluwe meer werken op een van de mooiste locaties van Nederland? In de pauze met je collega’s een visje halen in de haven of een wandeling langs het water maken? Alles is hier mogelijk! Houd jij van een uitdaging en ben jij een communicatieve programmeur die maatwerk levert en altijd streeft naar het beste resultaat? Denk je vaak out-of-the-box en krijg je energie van het maken van klant specifieke oplossingen? En heb je het gevoel dat je stagneert in je huidige werkzaamheden? Dan is dit de baan die je zoekt! Deze organisatie is gespecialiseerd

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

20/09/2019 21:58:58
 
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.