Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP][OOP] ACL met Codeigniter

Pagina: 1
Acties:

  • Mebus
  • Registratie: September 2006
  • Laatst online: 19-11 19:24
Goedemiddag medetweakers,

Ik ben sinds een aantal weken met Codeigniter (ondanks dat het in mijn ogen een beetje dooie community lijkt?) en gebruik daarbij hun MVC model. Nu wil ik door middels van een eigen ACL die ik automatisch inlaad in controller classes kijken of een persoon genoeg rechten heeft om een bepaalde controller/functie te gebruiken. Dit wil ik doen door de URI class te gebruiken van Codeigniter om te zien welke controller en of functie word aangeroepen en zo in de database kijken of een bepaalde gebruiker genoeg rechten heeft.

Hier het stukje begin code van de ACL (in de library map) class:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Acl
{

    private $_libraries = 'session';
    private $_models    = 'user_model';
    private $_controller;
    private $_function;
    
    public function __construct()
    {
    
        $CI =& get_instance();
        $CI->load->library($this->_libraries);
        $CI->load->model($this->_models);
        
        print_r($CI->uri->segment_array());

    }
    
}


Zo ver alles goed. Nu weet ik alleen niet hoe ik het beste mijn users kan inladen, kan ik dit doen door gelijk mijn user_model.php aan te roepen in ACL of eerst nog een user class inladen met getters/setters om zo ook te zien of een gebruiker is ingelogt of een gast is?

Dus dat ACL User.class.php aanroept en deze vervolgens de User uit user_model laad (mapper). En kan ik dan vervolgens het beste de session class extenden van Codeigniter om deze dan automatisch een sessie aan te laten maken als iemand gewoon een 'gast' is?

Ik neem aan dat User.class.php geen Controller kan zijn? Dit lijkt me niet helemaal logisch. En zodoende het beste een user.class in mijn library map kan zetten?

Hoop dat jullie mij een duw in de goede richting kunnen geven :)

BABYMETAL LoL - Twitch


  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 21-11 14:12
Niet echt een antwoord op je vraag, maar als je net begint met oop frameworks/codeigniter, zou ik toch kijken naar een andere framework, zoals laravel/fuel/yii. Van wat ik hoor is het inderdaad een beetje dood. En daarnaast php5.2, niet 5.3+ dus ook een beetje ouderwets.
Ik gebruik zelf Laravel, waar veel mensen naar zijn overgestapt na CI, als je MVC snapt zou dat ook niet zo'n probleem moeten zijn..

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ik ben zelf groot fan geworden van Silex, de kracht van Symfony2 maar dan supersnel in gebruik :)

Zelf gebruik ik altijd RBAC (role based access) in m'n projecten ipv. ACL overigens.

  • jessy100
  • Registratie: November 2010
  • Laatst online: 22-11 15:23
Codeigniter is niet dood "By any stretch of the imagination" Er is prima (relevante/recente) informatie over te vinden.

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 21-11 14:12
Het is nog wel prima te gebruiken, maar het is gewoon niet meer modern en Ellislab heeft het ook te koop gezet. Zie bijv ook http://philsturgeon.co.uk...nnot-do-without-a-rewrite
Maargoed eigen keuze, ik zou er nu niet mee beginnen.

  • console
  • Registratie: September 2002
  • Laatst online: 12:55
Het is inderdaad nog wel te gebruiken maar zoals Barryvdh aan geeft hopeloos verouderd qua core/code. Als je nu een framework wilt pakken die lijkt op Code Ignitor ga dan voor Laravel. Echt een framework wat hard aan het groeien is en al een redelijke community achter zich heeft. Ook leuk is om naar Jeffrey Way's Laracasts te kijken (Betaald, maar heeft ook free lessons).

En er zijn genoeg packages waaronder ACL packages die je direct zo via composer kan binnen hengelen. Of als je zelf een ACL package wilt schrijven kant dit natuurlijk ook :).

Maargoed nu gaan we al weer aardig offtopic ;)

Verwijderd

jessy100 schreef op zondag 24 november 2013 @ 15:37:
Codeigniter is niet dood "By any stretch of the imagination" Er is prima (relevante/recente) informatie over te vinden.
om de eenvoudige reden dat het nog niet heel lang dood is.

Ik zou precies ook eens Lavarel, of een ander mvc-framework uitproberen.

  • Mebus
  • Registratie: September 2006
  • Laatst online: 19-11 19:24
Heel erg bedankt voor de reacties! Heb toch nog eens naar andere frameworks gekeken. Cakephp heb ik ook weleens voorbij zien komen, is dat wat? De documentatie vind ik best aardig en is goed te volgen.

BABYMETAL LoL - Twitch


  • PatrickH89
  • Registratie: November 2009
  • Laatst online: 11:59
Verwijderd schreef op maandag 25 november 2013 @ 10:12:
[...]

om de eenvoudige reden dat het nog niet heel lang dood is.

Ik zou precies ook eens Lavarel, of een ander mvc-framework uitproberen.
CodeIgniter is niet dood. Het grote probleem is echter dat het stilstaat in ontwikkeling (ernstig conservatief), omdat er voor echte veranderingen verschillende aanpassingen aan de API gedaan zullen moeten worden. Het is wel zo dat andere frameworks wel ontwikkelingen doorgemaakt hebben.

Een dood framework = geen enkele ontwikkeling, maar de repositories worden wel nog gewoon bijgehouden.

Dit alles betekent niet dat ik het framework direct aan zou raden (eerder afraden), tenzij er buitengewoon veel CI kennis is en weinig tijd. Beter kiezen voor een hipper framework wat actief zijn API verbetert.

  • analogue
  • Registratie: Augustus 2010
  • Laatst online: 12:52
Misschien een zijspoor, maar biedt ion_auth niet al alles wat je nodig hebt? Mijn ervaring is dat het makkelijk te tweaken is mocht de basisfunctionaliteit niet voldoende zijn.

CI is nog prima te gebruiken en ik ben momenteel ook nog een applicatie aan het opbouwen in CI, daar waar ik Laravel en Zend ook regelmatig gebruik. Maar voor deze specifieke opdracht vond ik CI erg goed passen. Ik voel me nog niet echt geremd door het gegeven dat het allemaal een beetje op zijn gat ligt, omdat het in de basis gewoon een goed framework is, het heeft geen nadelige security issues als er nu minder updates zouden zijn. En gezien de life expectancy van een goede twee jaar voor deze applicatie zie ik nu geen reden om CI links te laten liggen.
Pagina: 1