Ontwerpen usermanagement

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full stack developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Intern - Junior PHP ontwikkelaar in fris en jong t

Bedrijfsomschrijving Werk jij graag een in fris, flexibel en jong team? Bij ons ben jij vrij om te bepalen waar jij het liefst werkt en op de vrijdag komen wij gezellig bij elkaar op kantoor. Flexibiliteit en vrijheid zijn bij ons de norm en dat geeft jou de ruimte en energie om het beste uit jezelf te halen! Ons team bestaat uit vijf enthousiaste collega's die jou graag ondersteunen in zowel je persoonlijke als professionele ontwikkeling. Met twee ervaren Senior Developers als mentoren ben jij in goede handen. Wij zien onszelf als een vriendengroep die gezamenlijk werken aan iets moois

Bekijk vacature »

.NET Developer

Dit ga je doen Binnen het team bouw je aan een applicatie met andere .Net Developers, testers een Product Owner en een Business Analyst. Met het team wordt de backlog besproken. In overleg claim jij jouw deel en zorgt ervoor dat onderhoud en innovatie wordt gerealiseerd. Het project dat momenteel draait is het opgraden van de omgeving. Doorontwikkelen van de huidige applicatie; Overleggen met teamleden om de backlog te verdelen; Onderhouden van de huidige omgeving; Sparren met de business en het ophalen van nieuwe requirements. Hier ga je werken De organisatie is een van de grootste landelijke aanbieder van diverse

Bekijk vacature »

Back end developer

Functie Jij als full stack ontwikkelaar komt te werken in een team bestaande uit 4 back end programmeurs, 2 vormgevers/ Front end developers en een online marketeer. Qua persoonlijkheden is het team erg gevarieerd van sportfanaten tot gameliefhebbers en Golfers. Een ding heeft iedereen hier gemeen; Passie voor goede code. In jouw rol zul je voor 90% van je tijd je bezig houden met het ontwikkelen van grote maatwerk applicaties. Daarnaast hebben wij op aanvraag ook wel eens een website of onderhoudsklusje, die opgepakt moet worden en hier ben jij ook niet vies van. De technische uitdaging momenteel is dat

Bekijk vacature »

.NET Developer

Functie omschrijving Net afgestudeerd en op zoek naar een leuke baan als developer? Zoek niet verder! Ik heb een functie beschikbaar als back-end developer, bij een leuk familiebedrijf. Je gaat werken met de Microsoft stack en de technieken C# en .NET. Verder maak je gebruik van MVC en Entity framework. SQL kent ook geen geheimen voor jou. Jouw verantwoordelijkheden: Nieuwe maatwerk software bouwen; API koppelingen bouwen; Applicaties en software optimaliseren; Back-end programmeren. Een erg uitdagende functie, met veel vrijheid. Je kan meerdere dagen thuis werken en als je op kantoor werkt wordt de lunch verzorgd. Heb je interesse, reageer dan

Bekijk vacature »

Front-End Developer

Als Front-End Developer bij Coolblue verbeter je de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Wat doe je als Front-End Developer bij Coolblue? Als Front-end Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Je krijgt energie van het bedenken van creatieve oplossingen en presenteert dit graag binnen het team. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Front-end Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te

Bekijk vacature »

Ervaren PHP Developer

Functie omschrijving Jelling IT zoekt ervaren PHP developer! Voor een organisatie in de regio Rhenen zijn wij op zoek naar een ervaren PHP developer die gaat functioneren als een verlengstuk van de klant. Jij bent iemand die technisch complexe zaken met enthousiasme aanvliegt. Je bent in staat om aan meerdere projecten te werken en werkt graag met de nieuwste technieken. In deze functie werk je veel samen met front-end developers en stel je alles in het werk om grote verschillen voor de klanten teweeg te brengen. Verder ben jij iemand die graag zichzelf uitdaagt en die altijd de beste wilt

Bekijk vacature »

Front-end Developer

Gezellige team, passie en een groene toekomst! Lees hier de vacature van Front-end Developer bij All in Power! All in power heeft zich tot doel gesteld écht bij te dragen aan de energietransitie. Dit doen wij door de markt voor energie volledig op zijn kop te zetten. Producenten van schone (wind- of zonne-)energie verkopen via ons platform hun energie rechtstreeks aan gebruikers. Of dit nu huishoudens, bedrijven of bijvoorbeeld laadpalen zijn ons platform maakt het uitwisselen van energie mogelijk. Zo maken we de business case van onze klanten veel sterker en loont het om (meer) te investeren in vergroening voor

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je hier

Bekijk vacature »

Embedded Software Developer

Functie omschrijving Voor een mooi softwarebedrijf in omgeving Moordrecht zijn wij op zoek naar een Embedded Software developer. Ben jij enthousiast en een echte team player? Lees dan snel of dit iets voor jou is! Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Laat dan snel wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Database Developer

Functie omschrijving Voor een logistieke dienstverlener in omgeving Zuid Beijerland zijn wij op zoek naar versterking. Weet jij als geen ander systemen aan elkaar te koppelen en heb jij goede kennis van SQL en UML, lees dan snel verder! Jouw taken zien er als volgt uit: Je bent in deze rol voornamelijk verantwoordelijk voor het bouwen, implementeren en beheren van koppelingen tussen de bestaande systemen (zowel business 2 business als application 2 application). Daarnaast inventariseer je de wensen van in- en externe klanten, die je vervolgens samen met je collega's, vertaalt naar technische specificaties, die jullie zelf ontwikkelen en implementeren.

Bekijk vacature »

Low Code Ontwikkelaar

In het kort Als Low Code Developer werk je aan projecten bij en voor onze klanten, waarbij je voor het ontwikkelen van de oplossingen een technisch low-code platform gebruikt. Samen met het team streef je naar de beste oplossing en bepalen jullie de juiste aanpak. Je rol is divers en je bent van begin tot eind betrokken bij de ontwikkeling zowel de back-end en de front-end van de applicatie. Naast de ontwikkeling en oplevering, breng je ook advies uit aan de klant waarom bepaalde keuzes worden gemaakt. Je bent dan ook communicatief sterk en kunt je keuzes goed (inhoudelijk) onderbouwen.

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Pagina: « vorige 1 2 3 4 5 volgende »

Wouter J

Wouter J

04/07/2012 15:50:13
Quote Anchor link
Quote:
Ik denk echter dat dat niet de bedoeling van Wouter was. Wat ikzelf nu van plan ben is in de 'Storage' klasse een aantal basis methoden zou gaan schrijven. Bijvoorbeeld om kunnen te schrijven naar een bestand en opslaan in de database. Ik zou dus SessionStorage laten extenden van Storage en e.v.t. de SessionHandlerInterface implementeren. Graag jullie meningen!

Ik hou erg van al die 'magic' interfaces in PHP, maar ik begrijp dat je dat niet wilt.

Het was ook niet mijn eerste bedoeling. Mijn bedoeling was dat je een Storage interface ging maken die voorschrijft welke methods er verplicht moeten zijn. Vervolgens laat je alle Storage klassen deze implementeren:
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
54
55
56
57
58
59
60
61
62
63
<?php
interface StorageInterface
{
    public function set($id, $value);
    public function get($id);
}


class SessionStorage implements StorageInterface
{
    public function __construct($session_id = null)
    {

        session_start($session_id);
    }


    public function set($id, $value)
    {

        $_SESSION[$id] = $value;
    }


    public function get($id)
    {

        if (!isset($_SESSION[$id])) {
            throw new \InvalidArgumentException('Session '.$id.' has not been set');
        }


        return $_SESSION[$id];
    }
}


class FileStorage implements StorageInterface
{
    protected $file;

    public function __construct($fileName)
    {

        if (file_exists($fileName)) {
            $this->file = fopen($fileName, 'a');
        }
else {
            throw new \InvalidArgumentException('File '.$fileName.' is not found in '.getcwd());
        }
    }


    public function set($id, $value)
    {

        fwrite($this->file, "\n[$id] ".$value);
    }


    public function get($id)
    {

        while ($line = fgets($this->file)) {
            if (preg_match('/^\['.$id.'\]/', $line)) {
                return end(explode('] ', $line);
            }
        }

        throw new \InvalidArgumentException('Key '.$id.' has not been set');
    }
}


class YmlFileStorage extends FileStorage
{
    // ...
}
?>
 
PHP hulp

PHP hulp

19/04/2024 19:42:03
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

04/07/2012 16:05:54
Quote Anchor link
@Erwin
Het is maar net welke insteek je hebt. Op jouw manier bepaal jij als ontwikkelaar hoe de afnemers van jouw app de rechten moeten uitdelen. Op mijn manier laat je die keuze aan hen over.
En natuurlijk moet je dan gaan doornormaliseren, waardoor je queries complexer worden, maar dat is dan gewoon de keuze die je maakt, en dat is pesoonlijk ;-)
 
Erwin H

Erwin H

04/07/2012 16:14:57
Quote Anchor link
Ger, uiteraard is het een keuze en aangezien het eigenlijk ergens ander over gaat zal ik er na deze post ook geen woorden meer aan vuil maken.
Het enige wat ik wil zeggen is dat de 'persoonlijke' rechten al mogelijk zijn mits je groepen van 1 persoon toelaat. Dat je met zo'n model dus als ontwikkelaar de gebruiker beperkt ben ik het niet mee eens. Je doet het alleen op een, wat mij betreft, transparantere manier. In de GUI kan je namelijk nog precies hetzelfde als wat jij kan.
 
Write Down

Write Down

04/07/2012 18:13:18
Quote Anchor link
@Wouter
Alweer erg bedankt voor je duidelijk antwoord. Ik apprecieer dit ten zeerste. Uiteraard ook de reacties van de andere mensen in dit topic.

Ik denk dat dit inderdaad een goede structuur geeft. Bij SessionStorage ben ik dan ook wel van plan de interface die eigenlijk voor PHP 5.4 bedoeld is te gaan gebruiken.

@Ger & Erwin
Reacties hierover zijn natuurlijk wél gewenst. Als er geen discussie is, dan kan je er ook niets van leren.

Het model van Ger vind ik erg mooi, maar dan weer net iets te ver gaan. Voor ingewikkelde queries heb ik geen angst, maar de vraag is natuurlijk: is het noodzakelijk? En dan denk ik in dit geval van niet.

Mijn plan is dus een user tabel, een group table en tot slot een permissions table. In eerste instantie vond ik dit geen prettig idee. Ik wil niet dat de eindgebruiker verplicht is een groep te maken voor 1 specifieke gebruiker. Maar, ik heb er eens verder over nagedacht. Ik kan dit probleem in de GUI inderdaad netjes oplossen (eigenlijk wat Erwin ook al aangeeft).

Nogmaals bedankt voor alle jullie reacties!

Ik ga nu nog wat inspiratie op doen voor mijn database klasse. Dan kan het echte werk beginnen. Moest er iemand nog leuke voorbeeldjes hebben van een database klasse die werkt met PDO, altijd welkom!
 
Wouter J

Wouter J

04/07/2012 18:16:43
Quote Anchor link
Pimple? Doctrine?
 
Write Down

Write Down

04/07/2012 19:55:09
Quote Anchor link
Pimple is toch een DI container?
 
Wouter J

Wouter J

04/07/2012 21:45:08
Quote Anchor link
Ja, sorry, ik bedoelde Propel
 
Write Down

Write Down

05/07/2012 22:26:08
Quote Anchor link
Ik vind die Propel er erg leuk uitzien en zelfs werken. Alleen vind ik dat persoonlijk te vergaand. Veel extra code om het, naar mijn mening, jezelf makkelijk te maken. Iets wat ik persoonlijk niet altijd nodig vind. Daarom ga ik toch eerder gaan voor een eenvoudige database klasse die een paar standaard zaken voor mij afhandelt. (zoals bv. de error reporting)

Bijvoorbeeld iets als dit
 
Wouter J

Wouter J

05/07/2012 23:02:51
Quote Anchor link
Alleen de naam van die klasse waar je naar link schrikt mij al af. Ik zou je misschien door dit laten inspireren, maar zeker niet gebruiken. Singleton, het idee alleen al... ;)
 
Write Down

Write Down

05/07/2012 23:15:42
Quote Anchor link
Inspireren, inderdaad. Singleton ga ik sowieso niet voor, ben ik ook geen fan van.
 
Wouter J

Wouter J

05/07/2012 23:24:03
Quote Anchor link
Ik zou wel eens gaan kijken naar PHP iterators kan je leuke dingen mee doen in combinatie met dit.
 
Write Down

Write Down

05/07/2012 23:34:36
Quote Anchor link
Zoals bv. in Java method.next()? Lijkt me idd plan, moet ik me binnen PHP wel nog in verdiepen. (In Java ook hoor haha)
 
Wouter J

Wouter J

05/07/2012 23:36:38
Quote Anchor link
Bijv. iterator of iteratoraggregate of 1 van al die andere spl.iterators
Gewijzigd op 05/07/2012 23:37:46 door Wouter J
 
Write Down

Write Down

06/07/2012 12:09:22
Quote Anchor link
Wat vind je van volgend voorbeeld: MySQL class with Result Iterator?
 
Wouter J

Wouter J

06/07/2012 12:15:10
Quote Anchor link
Het werkt met MySQL en dat zou ik sowieso niet doen.

Ook zou ik dit over meerdere objecten spreiden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
- Database (connectie en uitvoeren query)
- Result (het resultaat van een query)
  - DataResult (resultaat van een select query)
  - ...Result (resultaat van een UPDATE, DELETE of INSERT query)

En misschien zelf een query object om je queries op te kunnen bouwen.
 
Write Down

Write Down

06/07/2012 12:31:12
Quote Anchor link
Ik ga uiteraard gaan voor PDO :-)
Ik zocht alleen een voorbeeld.
 
Write Down

Write Down

28/08/2012 23:08:13
Quote Anchor link
Eerst en vooral, wil ik duidelijk zeggen dat ik dit topic niet wil bumpen, maar effectief nieuwe elementen wil toevoegen.

Ik heb al heel wat van mijn applicatie ontworpen. Eigenlijk de 'basis' classes. Ik vind nu dat het tijd is om verder te gaan met het "User Management". Vandaar dat ik terug een reactie plaats in dit topic.

Ik ben naar Wouters' model de Strategy patern aan het toepassen. Alleen zit ik nu met een vraag of een bepaalde strategy wel echt als een strategy te beschouwen valt. Namelijk AdminAccesStrategy.

Mijn bedoeling hiermee is te bepalen of het gaat om een gebruiker die in het admin gedeelte mag of die dat net niet mag. Alleen vraag ik me af, of dit wel een correcte wijze is. Zou ik dit bijvoorbeeld beter in de Authentication doen?

Want als ik dan verder denk, wil ik eigenlijk elke pagina met meer functies dan 'bekijken' toch enkele rechten toekennen. Mijn uiteindelijk doel, is een CMS te ontwikkelen. Er gaan dus werkelijk bezoekers zijn (die niet ingelogd zijn), leden (die dus beperkte rechten hebben, bijvoorbeeld bepaalde beveiligde pagina's bekijken) en dan verschillende soorten admins (die dus toegang hebben tot een controlepaneel).

Ik vraag me alleen af, hoe ik dit deel van de rechten het best kan implementeren. Dus eigenlijk bepalen of een gebruiker al dan niet een bepaalde pagina mag bekijken.
 
John Berg

John Berg

28/08/2012 23:16:59
Quote Anchor link
Ik ken 4 methodes die dit 'regelen': d.m.v. levels, roles, indeling van een user in een groep en beperkingen in de CRUD.

En eventueel combinaties daarvan. Het is maar wat je in ontwerp voor detaillering wenst, voor welke methode je gaat.

Ik implementeer authentication in een aparte service, ongeveer zoals CodeIgniter en Zend Framework dat doen en bij mij maakt authetication dus geen deel uit van het domein.

sorry als ik het wat boud opschrijf.
Gewijzigd op 28/08/2012 23:18:47 door John Berg
 
Write Down

Write Down

29/08/2012 12:18:32
Quote Anchor link
Ik zit er aan te denken om het misschien toch iets anders aan te pakken. Met de Strategy pattern heb ik namelijk enorm veel werk als ik werkelijk alle rechten in kaart wil brengen.

Daarom zit ik te denken om alle rechten op te halen en deze toe te voegen aan het User object. Dit in de vorm van een array.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$rights
= array('editUser' => true, 'removeUser' => true, 'deletePage' => false, 'editPage' => false)
?>


Bij de authorization zou ik dan kunnen nagaan of een gebruiker de rechten heeft voor bepaalde zaken al dan niet te doen. Bv. d.m.v. $auth->getPermission('editUser').

Daar bovenop zou ik een bitwise model willen toevoegen. Wat eigenlijk het access level bepaald. Bv. op pagina x moet de bitwise oplossing minimaal 128 zijn. (wat dan een combinatie is van een aantal permissies)

Wat denken jullie hiervan? Of heeft er iemand nog een leuk idee?
 
John Berg

John Berg

29/08/2012 12:25:37
Quote Anchor link
In feite is dit dus een combinatie van CRUD beperking en levels.

Ook nog best lastig, als je in het backend de rechten van een user wil instellen, en je hebt veel pagina's.
 

Pagina: « vorige 1 2 3 4 5 volgende »



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.