php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.11.2010, 13:50  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Nein entwickel eine eigene Klasse/Objekt die die Überprüfung macht. Was ist wenn du mal ne Seite haben willst wo der User nicht eingeloggt sein muss? Zum Beispiel "registrieren" dann wird trotzdem geprüft was aber unnötig ist.
Flor1an ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.11.2010, 13:51  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Zitat von Kasi Beitrag anzeigen
Klingt interessant. Kannst du das bitte genauer beschreiben, wie du da vorgehst?
Nun, was hast du denn für eine Frage? Im übrigen ist die angesprochene Applikation darauf ausgelegt das es keinen "Gast"-Zugang gibt. Sollte es bei dir Hauptsächlich um z.B. ein CMS gehen, wo 99% der User gar nicht eingeloggt sind, dann wäre vielleicht eine andere Vorgehensweise komfortabler. Ich weiss ja nicht was du vorhast.
cycap ist offline   Mit Zitat antworten
Alt 03.11.2010, 13:54  
Neuer Benutzer
 
Registriert seit: 03.11.2010
Beiträge: 9
PHP-Kenntnisse:
Fortgeschritten
Kasi befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von cycap Beitrag anzeigen
Nun, was hast du denn für eine Frage? Im übrigen ist die angesprochene Applikation darauf ausgelegt das es keinen "Gast"-Zugang gibt. Sollte es bei dir Hauptsächlich um z.B. ein CMS gehen, wo 99% der User gar nicht eingeloggt sind, dann wäre vielleicht eine andere Vorgehensweise komfortabler. Ich weiss ja nicht was du vorhast.
Nein, bis auf die Startseite soll definitiv kein Gast Zugang haben. Meine Frage ist nun, inwiefern ich nun diese Prüfung im Router implementieren soll?
Kasi ist offline   Mit Zitat antworten
Alt 03.11.2010, 13:54  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zum Beispiel "registrieren" dann wird trotzdem geprüft was aber unnötig ist.
Doch. Es soll ja i. d. R. verhindert werden, dass eingeloggte User sich registrieren können. Und ein generischer Ansatz vereinfacht die ganze Sache - Da würde ich keine Ausnahmen machen, die das verkomplizieren würden.
xm22 ist offline   Mit Zitat antworten
Alt 03.11.2010, 14:20  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Meine Frage ist nun, inwiefern ich nun diese Prüfung im Router implementieren soll?
im Router hat doch niemand gesagt.
__________________
Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.
Koala ist offline   Mit Zitat antworten
Alt 03.11.2010, 15:15  
Neuer Benutzer
 
Registriert seit: 03.11.2010
Beiträge: 9
PHP-Kenntnisse:
Fortgeschritten
Kasi befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Koala Beitrag anzeigen
im Router hat doch niemand gesagt.
Wenn ich eine eigene Klasse entwickle, die eine Überprüfung durchführt, wo platziere ich diese dann am geschicktesten? Sollte ohne Zugriff die bestimmten Controller erst gar nicht geladen werden, oder sollen die Controller selber prüfen, ob ein Zugriff erlaubt ist?
Kasi ist offline   Mit Zitat antworten
Alt 03.11.2010, 15:17  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Schau dir doch mal nen paar MVC Frameworks an wie die das gelöst haben. Wir würden dir auch nicht viel anderes hier erzählen.
Flor1an ist offline   Mit Zitat antworten
Alt 03.11.2010, 21:53  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Hab jetzt nicht alles durchgelesen, aber:
Zitat:
Die Session-Variablen sind doch superglobal,
Du kannst in jeder Klasse prüfen ob eingeloggt oder nicht.
Würde ich nicht machen. Schaffe ein eigenes Auth-Objekt mit sauberen Schnittstellen, das Du bei Bedarf an die View oder den Controller durchreichst. Damit bleibst Du flexibel für den Austausch von Userrechten oder Auth-Vorgang, aber auch was die Schlüssel-Konventionen in der Session angeht (eine Abhängigkeit im Auth-Objekt, statt vieler bei jeder Session-Array-Abfrage).
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 29.11.2010, 14:35  
Erfahrener Benutzer
 
Benutzerbild von bitsnack
 
Registriert seit: 01.08.2010
Beiträge: 352
PHP-Kenntnisse:
Fortgeschritten
bitsnack befindet sich auf einem aufstrebenden Ast
bitsnack eine Nachricht über ICQ schicken bitsnack eine Nachricht über MSN schicken bitsnack eine Nachricht über Skype™ schicken
Standard

Hätte dir da 2 Ansätze:

PHP-Code:
<?php

class Controller_Admin extends Controller
{
    
    public function 
action_index()
    {
        if (!
Auth::instance()->has_right('access_backend')) {
            
Request::redirect('admin/login');
        }
        
        
//...
    
}
    
    public function 
action_create_user()
    {
        if (!
Auth::instance()->has_right('create_user')) {
            
Request::redirect('error');
        }
        
        
//...
    
}
    
}
und...

PHP-Code:
<?php

class Controller_Admin extends Controller
{
    
    
$_access = array(
        
'action_index' => array('admin''editor'),
        
'action_create_user' => array('admin'),
    );
    
    public function 
action_index()
    {
        
//...
    
}
    
    public function 
action_create_user()
    {
        
//...
    
}
    
}
Beim ersten Ansatz hast du einfach dein Auth-Objekt mit dem du abfragst ob der User das machen darf. Das hat den Vorteil dass du in Methoden auch einzelne Dinge mit Rechten versehen kannst, als schlechtes Beispiel soll ein Redaktor Beiträge schreiben dürfen aber nicht veröffentlichen.

Beim zweiten Ansatz bist du etwas weniger flexibel, du kannst die Rechte in den Controllern etwas schöner festlegen. Das ganze ist Rollen basiert, d.h. die Methode wird nur ausgeführt wenn der eingeloggte Benutzer die benötigte Rolle hat, im Code-Beispiel admin oder editor.
Das ganze kann natürlich auch für Rechte so umgesetzt werden.

Geändert von bitsnack (29.11.2010 um 16:03 Uhr).
bitsnack ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Professioneller Login? Curcio PHP Tipps 2010 121 09.04.2010 21:06
Login script zeigt immer formular an auch wenn eingeloggt sein sollte salix PHP Tipps 2010 2 28.03.2010 22:21
login mit datenbank und sessions kael PHP Tipps 2009 4 23.11.2009 21:10
Login php&SQL KupferDieb PHP Tipps 2009 9 26.04.2009 14:44
Seite nur nach Login anzeigen??? SimStar001 PHP Tipps 2009 1 16.03.2009 19:54
[Erledigt] Login erstellen coraplanet PHP Tipps 2008 33 21.04.2008 16:49
Forum Login per curl leb0rtran PHP Tipps 2008 1 19.03.2008 12:47
Etwas komplexerer Login --> Keine Angst, Suche benutzt dethlef14 PHP Tipps 2006 7 02.10.2006 00:35
.htaccess Login über HTML Login Felder gestalten php1 PHP-Fortgeschrittene 2 09.08.2006 13:53
Session Logout Login Navigation TailerD PHP Tipps 2006 10 24.06.2006 17:12
Frage zu Login Kein Genie PHP Tipps 2006 5 16.06.2006 12:34
phpBB Loginscript in eigenes Login Script einbinden 2wuck PHP Tipps 2007 4 19.12.2005 23:10
Problem mit Login Script PHP Tipps 2007 4 15.11.2005 17:29
[Erledigt] Login, LogIn, Anmelden, Einloggen -&amp;amp;amp;amp;gt; ??? Off-Topic Diskussionen 20 14.07.2005 11:01
login mit session id PHP Tipps 2005 10 26.01.2005 12:32

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mvc login, php login mvc, php login 2 rollen, http://www.php.de/software-design/73522-erledigt-login-bei-mvc-2.html, login nach mvc, php mvc user login, mvc login php, login php mvc, php wo platziere ich die datenbank klasse in mvc, \mvc 2\ auth rollen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:42 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum