Authorisatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

SQL Database Ontwikkelaar

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je houdt je bezig met het ontwerp en de ontwikkeling van MS SQL server databases, dit doe je met T-SQL als programmeer laag. De begeleiding van projecten van A tot Z, je zult aansluiten bij meetings met

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Als Front-end developer werken aan apps voor het o

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

Bekijk vacature »

Medior/Senior Software Developers gezocht in de Ra

Functie Op dit moment staan er posities open voor de volgende functies: Front-end, Back-End & Fullstack software developer. Als Front-End software developer werk je met JavaScript en de bijbehorende technologieën zoals TypeScript, Angular, React, Vue en Svelte. Als Back-End software developer ben je bezig in NodeJS en doe je dit met behulp van AWS, NoSQL, REST en GraphQL. Je krijgt leuke en uitdagende opdrachten met een gemiddelde duur van anderhalf jaar. Hier werk je in een team met andere IT’ers aan het ontwikkelen en verbeteren van software. Je wordt begeleid door een accountmanager die fungeert als jouw aanspreekpunt. Het team

Bekijk vacature »

Lead developer (PHP, Symfony, DDD)

Functie Als Lead developer zorg je ervoor dat het team (bestaande uit zowel junior als ervaren developers) in staat is om de kwaliteit van de software (en code) verder te verhogen. In samenwerking met het team, de product owner en de andere lead developers zet je technische lijnen uit en bepaal je de prioriteiten per sprint. Lijkt het jou interessant om complexe problemen op te lossen en bijvoorbeeld een nieuwe applicatiestructuur in Symfony op te zetten? Dan komen wij graag met je in contact. Eisen • HBO werk- en denkniveau (ze kijken niet naar papieren, maar naar denkniveau, motivatie en

Bekijk vacature »

Medior Mobile Developer iOS Amsterdam

Functie What will you be doing as Mobile Developer? As an iOS app developer you will work in a multidisciplinary team of app developers, web developers and designers. You will work on world-class apps that will be used by thousands of people. There is a lot of room for self-development on a technical and personal level. Together with the rest of the team you develop in the newest techniques and you go for the best quality. We work with Kotlin Multiplatform Mobile to develop hybrid apps and we guarantee quality with peer reviews, unit testing and we use a CI/CD.

Bekijk vacature »

Cloud Developer

Cloud Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Full stack developer Node.js, React Remote

Functie Als fullstack JavaScript developer vind jij het uitdagend om op basis van concrete klantvragen nieuwe functionaliteiten te ontwikkelen. Bij voorkeur worden deze functionaliteiten op een bepaalde manier geprogrammeerd, zodat ze door meerdere klanten te gebruiken zijn. Je hebt dus vaak te maken met abstracte vraagstukken. Om dit te kunnen realiseren sta je nauw in contact met de product owner en/of klant. Je bent niet alleen onderdeel van het development team, maar hebt ook vaak contact met de product-owner en/of klanten om daardoor inzichten te verzamelen die leiden tot productverbeteringen. • Inzichten verzamelen bij de klant en/of product owner •

Bekijk vacature »

Back end developer PHP

Functie Heb jij altijd al eens bij een bedrijf willen werken waar jij géén nummertje bent, die alleen maar uitvoerend werk doet? Dan zou je hier perfect passen! Tuurlijk, je werkt aan projecten voor grote of kleine bedrijven… Het enige verschil hier is, jouw mening telt hier écht. Jouw inbreng wordt gewaardeerd, serieus genomen en gebruikt. En vergeet niet, je werkt niet alleen aan deze projecten. Er werken in totaal ruim 25 developers en designers, onderverdeeld over 3 development teams. Voornamelijk bestaande uit Medior en Senior developers, die samen voor een inspirerende en ambitieuze omgeving zorgen. Hun visie is namelijk

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van de warehouses. Op dit moment wordt er nog gebruik

Bekijk vacature »

Software Developer C# - Deventer

Software Developer C# – Deventer Bijdragen aan de toekomst van het onderwijs! Ben jij op zoek naar een dynamische omgeving waar vol enthousiasme wordt gewerkt aan software voor interactieve dashboard- en analysetoepassingen ter verbetering van het onderwijs? Dan zijn wij het bedrijf voor jou! TIG is een bedrijf met een informele en ondernemende werksfeer, waarbij goede ideeën snel leiden tot concrete acties. Wij zijn een software ontwikkelorganisatie en focussen ons op het ontwikkelen en implementeren van oplossingen voor het leveren van managementinformatie, datavisualisatie en analyses voor het onderwijs. Met onze dashboard- en analyseoplossingen zetten scholen gegevens om naar betekenisvolle informatie.

Bekijk vacature »

SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 13382 Introductie We is looking for a HANA Developer to work for our client. The candidate has to have an experience in building Data Intensive Applications (DIA’s). The role of a HANA Developer at ASML involves working on building Data Intensive Applications in an industrial/enterprise environment. The primary responsibility is to handle data from various sources and determine the best way to structure it for use by data analysts, who will run queries and algorithms against it for predictive and prescriptive analytics through machine learning. Wat verwachten we van jou?

Bekijk vacature »

Junior .NET developer

Functie Om half 9 kom jij binnen en pak jij als eerst natuurlijk een bakje koffie of thee. Vervolgens ga jij je voorbereiden op de stand-up van kwart voor 9. Zijn er bijvoorbeeld dingen waar jij nog tegen aan loopt? Of is er nog code die getest of gereviewd moet worden? Vervolgens starten jullie met de stand up en na de stand up zoeken jullie elkaar op en gaan jullie aan de slag. Als team met 6 developers werken jullie in drie wekelijkse sprints. Het einde van een sprint is altijd op een donderdag zodat jullie op vrijdag de demo

Bekijk vacature »

.NET Developer Senior

Dit ga je doen Het ontwikkelen van backend applicaties in C#; Het maken van vele koppelingen met andere ERP-applicaties zoals JD Edwards en SAP; Je bent (mede) verantwoordelijk voor het opstellen van technisch ontwerpen voor de te ontwikkelen software oplossingen; Je bent gemiddeld 90% van je tijd inhouse oplossingen aan het ontwikkelen en testen. De overige 10% van je tijd ben je bij klanten op locatie om oplossingen te implementeren, klanten te begeleiden en de software verder te innoveren; Naast het zelfstandig ontwikkelen van software oplossingen ben je ook bezig met het waarborgen van je contacten bij de klant, het

Bekijk vacature »

PHP developer (Symfony, Doctrine)

Functie Als PHP developer wordt er een hoge mate van zelfstandigheid verwacht, maar ook dat je goed opereert in een team waar kennis wordt gedeeld en dingen als codereviews erg veel voorkomen. Kwaliteit staat voorop, mede hierom werken ze bijvoorbeeld zonder echte deadlines in hun sprints. De SaaS-applicatie wordt volledig ontwikkeld in PHP en Symfony. De module bestaat uit een stuk informatie verrijking en intelligentie wat resulteert in een medische check. De logica wordt daarom in de code geïntrigeerd. Je bent onder andere bezig met complexe databases waar meer dan 80.000 medicijnen op verschillende niveaus in staan, die maandelijks worden

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

27/05/2026 06:37:27
 
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.