Authorisatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior ICT Consultant / SQL Ontwikkelaar

Functieomschrijving SQL / database ontwikkelaar / consultant De requirements in kaart brengen van de klant Het analyseren en ontwerpen maken de bedrijfsprocessen van de klant Het maken van functioneel ontwerp Het ontwikkelteam aansturen De database ontwikkelen en onderhouden Queries schrijven en inrichten Tabellen maken in SQL Programmeren in lowcode Het testen en uitleveren van nieuwe functionaliteiten naar de acceptatie en productieomgeving Het bieden van customer support Functie-eisen HBO werk en/of denkniveau, opgedaan door ervaring of opleiding is een eis; Ruime ervaring met SQL (tabellen maken / stored procedures / inrichten) is een eis;Zowel Nederlands als Engels spreken en schrijven; Kennis

Bekijk vacature »

Mobile App Developer

Ons Mobile ontwikkelteam zoekt een fanatieke Mobile App Developer. Ben jij creatief en heb je passie voor het ontwikkelen van apps? Dan zijn wij op zoek naar jou! Jouw baan ChipSoft heeft al diverse apps uitgebracht en het aantal gebruikers hiervan neemt snel toe. De apps doen het erg goed bij de zorginstellingen. Je kunt hierbij denken aan apps verpleegkundigen, thuiszorgmedewerkers, de logistieke dienst en - natuurlijk - de artsen zelf. Door jouw hands-on mentaliteit, eigenwijsheid en technisch inzicht kun je nauwkeurig herbruikbare software schrijven. Die software sluit naadloos aan op onze ‘back end’ (HiX, onze ICT-totaaloplossing voor de zorg).

Bekijk vacature »

C# Developer/ SQL Server/ Visual Studio/Javascript

Functieomschrijving Ben jij een gedreven en enthousiaste .NET Developer (C#) met gevoel voor design en usability? Wil jij als C# Ontwikkellaar jouw skills graag inzetten op de development afdeling van een innovatieve, flexibele organisatie met een groot bereik? Lees dan snel verder! Je gaat aan de slag in het websites team of portals team waarin je je bezighoudt met concept & design, implementatie en ook een stukje bugfixing en onderhoud; Je werkt met je team volgens de Scrum werkwijze; Zo adviseer je ook de PO & Scrum Master over de technische architectuur, koppelingen en integratie met externe systemen en API’s;

Bekijk vacature »

Medior/Senior Laravel PHP Developer

Hallo, Laravel PHP Developer; Wij zijn Sevenground Wij verkopen producten en diensten voor de internationale e-commerce markt. Hiermee bouwen we aan succesvolle merken die naam hebben gemaakt in hun niche. Onze ervaring met het opbouwen van merken inspireert ons om deze kennis te delen met anderen. Dit doen we onder andere door het bouwen van innovatieve software applicaties. Hiermee krijgen wij en andere merken inzicht in — en invloed op — de ontwikkelingen op de internationale markt. People come first Mensen staan bij ons op nummer een. Wij vinden het belangrijk dat iedereen de ruimte krijgt om zich te ontwikkelen.

Bekijk vacature »

Internationaal Support Medewerker (M/V)

Internationaal Support Medewerker (M/V) ChronoTrack Sports Timing Ben jij op zoek naar een uitdagende, internationale positie in de sports-timing industrie (van marathons, obstacle runs tot triathlons en meer). Voel jij je als een vis in het water bij alles wat te maken heeft met hoogwaardige technische hardware en software producten, vind je het daarnaast prettig om veel met klanten in contact te zijn (zowel op kantoor als op locatie), houd je van reizen en opereer je graag in een dynamisch en snel veranderende markt? Dan hebben wij een ideale functie voor jou! De functie Als Support medewerker maak je onderdeel

Bekijk vacature »

C# .NET ontwikkelaar gezocht, detachering (Azure,

Ben je een .NET ontwikkelaar en op zoek naar afwisseling in de regio Rotterdam? Bij een innovatief bedrijf met mogelijkheden om te groeien in zowel functie als kennis? Waar je geen nummer bent maar er aandacht is voor jou als persoon? Wellicht dat deze organisatie je dit kan bieden. Voor een detacheerder in Rotterdam zijn we namelijk op zoek naar gepassioneerde .NET ontwikkelaars. Het bedrijf heeft een regionale werkwijze waarbij ze een aantal vestigingen in Nederland hebben waaronder de hoofdvestiging in Rotterdam. Er werken momenteel circa 80 mensen. Het bedrijf is met name sterk in CRM maatwerk oplossingen en de

Bekijk vacature »

Senior Python Developer vacature

Jij volgt ontwikkelingen op de voet. Sterker nog: je bent er onderdeel van. Jij loopt voorop. Jij denkt met klanten mee en helpt hen innoveren. Zo kun jij een bijdrage leveren aan de Rabobank-app, de beveiliging van treinen voor Pro-rail verbeteren of de website van ING een boost geven. Vergaderen? Liever gewoon zorgen dat het werkt! Hoe omschrijft men een Sogetist? Gedreven, resultaatgericht en niet snel tevreden. Wat niet wil zeggen dat je nooit met hem of haar kunt lachen. Integendeel. Plezier hoort wat ons betreft net zo goed bij werken. Maar we gaan op de eerste plaats voor de

Bekijk vacature »

allround software ontwikkelaar

Allround software ontwikkelaar. We zoeken een medior of senior allround software man/vrouw die klaar is om aan de leuke projecten aan te pakken die al klaar liggen voor je. De projecten zullen variëren van klein tot groot en is dus veel afwisseling. Voor ons is er geen dag hetzelfde als die van gisteren. Gisteren bouwde je nog een complexe applicatie, vandaag integreren we tussen systemen, morgen ben je een applicatie aan het schrijven. Wat ga jij doen? Je bent verantwoordelijk voor het hele proces, van de architectuur tot de database en de gebruiksvriendelijkheid van de systemen. We hebben een kleine

Bekijk vacature »

PHP Developer

Enthousiaste medior / senior PHP Developer Voor onze vestiging in de kop van Overijssel zijn wij op zoek naar PHP developers met affiniteit voor front-end development. Een programmeur met enthousiasme voor het vak, op zoek naar een uitdagende baan waarbij er naast hard werken ook nog ruimte is voor ontspanning. Over ons Unity-X ontwikkelt onder andere managementsystemen, (maatwerk) websites en webapplicaties voor klanten in o.a. de reisbranche, financiële dienstverlening en de uitzendbranche. Bekende namen zijn ABN AMRO, Easystaff en Van Lanschot, daarnaast werken wij ook voor verschillende organisaties in het MKB. Wij staan voor solide oplossingen en werken hierbij altijd

Bekijk vacature »

Web Developer - Locatie Woerden of Amsterdam

Ben jij gedreven en klaar voor de eerste stap in jouw carrière of heb jij al wat ervaring en ben je klaar voor een nieuwe uitdaging? Voor een dynamische salesorganisatie zoeken wij een web developer. Bedrijfsomschrijving Met meerdere vestigingen en ruim 80 medewerkers, is onze opdrachtgever een van de grootste resellers op het gebied van documentprocessen en printoplossingen. Als business partner verbeteren zij de productiviteit van hun klanten en weten zij de winstgevendheid te maximaliseren en de tevredenheid te vergroten. Hun klantenbestand bestaat variërend uit de MKB’s tot aan multinationals, die opereren in verschillende branches, zoals grafische bedrijven, financiële dienstverleners

Bekijk vacature »

Junior/Medior PHP Developer

Junior/Medior PHP Developer Startdatum Per direct Regio Regio Roermond Dienstverband Fulltime, 32-40 uur Het gaat om een structurele baan op basis van werving en selectie waarbij je direct bij onze opdrachtgever op contract gaat. Beschrijving organisatie: Onze opdrachtgever ontwikkelt inmiddels al bijna 15 jaar websites, -shops en -applicaties voor klanten door het hele land in veel verschillende branches. Dit doen ze met een gezellig, enthousiast en gedreven team. Functie omschrijving: Heb jij zin om mee te denken en werken aan gave innovatieve webapplicaties? Om mee te helpen om onze websites en -shops nog beter te maken? Websites, -shops en webapps

Bekijk vacature »

Senior .NET Developer voor innovatieve marktleider

Functieomschrijving Jij en de 10 a 15 andere Ontwikkelaars werken samen op Agile wijze aan het verder uitbouwen en het verbeteren van de applicatie. Naast de 'hoofdapplicatie' zijn er nog een heleboel kleinere modules omheen. Ook deze moeten allemaal onderhouden en verder uitgebouwd worden. Je werkzaamheden zijn dus heel divers; de ene dag bouw je een volledige nieuwe module, de andere dag fix je bugs en weer een andere dag Wekelijks wordt er een duidelijke planning opgesteld waarin de doelen voor die week worden vastgelegd. Elke ochtend is er een standup waarin de voortgang besproken wordt. Uiteraard wordt dit ook

Bekijk vacature »

Software Developer / PHP

Functieomschrijving Werk jij graag in een vooruitstrevende en groeiende organisatie aan een eigen ontwikkeld platform dat door steeds meer bedrijven in Nederland gebruikt wordt? Ligt jouw passie bij software development en heb jij ervaring met PHP? Dan zijn wij op zoek naar jou voor dit bedrijf in regio Eindhoven! Je werkt samen met het ontwikkelteam aan de ontwikkeling van het platform, o.a. met Symfony, Docker, API's en Git; Je denkt mee over verbeteringen, doorontwikkeling en schaalbaarheid van het platform; Je werkt in sprints van twee weken; Je spreekt met diverse betrokkenen om samen een optimaal product neer te zetten. Functie-eisen

Bekijk vacature »

Technisch Ontwerper / Applicatieontwikkelaar max.

Wie zoeken we? Je bent de beste in je vak of hebt de ambitie en de potentie om de beste te worden. Je hebt de passie om nieuwe technologieën te blijven leren en continu jezelf te ontwikkelen. Je hebt de pioniersgeest en drive om nieuwe technologieën, methodieken en concepten toe te passen in projecten en bij klanten. Je vindt het leuk om kennis te delen met collega’s, klanten en vakgenoten. Je bent een ware professional en ambassadeur voor CIMSOLUTIONS. Je voelt je thuis in een informele, collegiale en professionele sfeer waar de aandacht voor de klant en voor de medewerker

Bekijk vacature »

Developer / GIS / Esri / Ingenieursbureau

Functieomschrijving Ben jij een Software Developer met minimaal drie jaar ervaring en wil jij aan werken aan toonaangevende GIS software? Spreekt het jou aan om binnen een innovatief ingenieursbureau te werken aan uiteenlopende projecten voor diverse grote en bekende namen in Nederland? Lees dan nu verder! Ontwikkelen van nieuwe GIS software met behulp van Esri; Ontwikkelen en bedenken van nieuwe koppelingen en mobiele oplossingen; Werken aan uiteenlopende projecten voor grote en bekende organisaties in Nederland; Samenwerken in zelfsturende Agile teams; Werken aan innovatie en kennisdeling. Functie-eisen Minimaal HBO en/of WO werk- en denkniveau; Minimaal 3 jaar ervaring als Developer met

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

08/04/2020 03:12:38
 
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.