Ich bin neu auf CakePHP. Ich habe einen Code für die Anmeldung implementiert und ich versuche, eine rollenbasierte Aktion für verschiedene Benutzer bereitzustellen. Wie ich habe eine Tabelle, in der ich ID und Rolle (Admin, Normal, SubAdmin) speichern. Ich möchte, dass Super Admin kann löschen Update hinzufügen und bearbeiten und anzeigen Everones Datensatz. Der Administrator kann nur Benutzer hinzufügen und löschen und seinen Datensatz nicht löschen/bearbeiten. Wie könnte ich das erreichen?Wie funktioniert die rollenbasierte Autorisierung nach dem Login in CakePHP 2.7?
-2
A
Antwort
0
Sie durch die Verwendung tun können diesen Code
In Ihrem App Controller:
class AppController extends Controller {
public $components =array(
'Session',
'Flash',
'Auth'=>array(
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'Email','password'=>'Passward'),
)),
'loginRedirect'=>array('controller'=>'Users','action'=>'index'),
'logoutRedirect'=>array('controller'=>'Users','action'=>'login'),
'authError'=>"You Can't access this page",
'authorize' => array('controller')
)
);
public function beforeFilter()
{
$this->Auth->allow('index');
}
public function isAuthorized($user)
{
return true;
}
}
In Ihrem Benutzer Controller:
class UsersController extends AppController {
public $helpers = array('Html', 'Form','Session','Flash');
public function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allow('add');
}
public function isAuthorized($user) {
// The owner of a post can edit and delete it
if (in_array($this->action, array('edit', 'delete'))) {
switch ($user['Role']) {
case "Super user":
return true;
break;
case "Admin":
if($user['id']==$this->request->params['pass'][0])
{
return false;
}
else
{
return true;
}
break;
default:
return false;
}
}
return true;
}
+0
ist dieser hilfreiche code wenn ich mehr als einen controller mit habe Viele Aktionen und viele verschiedene Ansichten in verschiedenen Ordnern mit dem gleichen Namen von Controllern. –
+0
Bitte geben Sie Ihren Code oder eine kurze Erklärung, was Sie genau tun wollen, damit ich Ihr Problem verstehen kann. –
Verwandte Themen
- 1. Wie wird die rollenbasierte Autorisierung in AngularJS gehandhabt?
- 2. Rollenbasierte Autorisierung mit exress-jwt?
- 3. Schienen 4 - rollenbasierte Autorisierung von Grund auf
- 4. Design Django Rest Framework rollenbasierte Autorisierung
- 5. CakePHP 3.0 - Login funktioniert nicht
- 6. Standard-Login funktioniert nicht in CakePHP 3.2
- 7. CakePHP Auth-Komponente umadressiert, um nach dem Login einloggen
- 8. Wie funktioniert die CakePHP-Namenskonvention?
- 9. CakePHP 2.0 Auth Login funktioniert nicht
- 10. openID login in cakePHP
- 11. Rollenbasierte Authentifizierung in HapiJS
- 12. Autorisierung und ACL in CakePHP 3
- 13. Autorisierung und Authentifizierung Mechanismus in CakePHP
- 14. CakePHP Admin Login
- 15. Umleiten von Login-Seite nach dem Login
- 16. cakePHP benutzerdefinierte Login-Bedingungen
- 17. Popup-Login CakePHP 3
- 18. Laravel Redirect nach Zurück nach dem Login
- 19. Spring Sicherheitsumleitung nach dem Login
- 20. Google+ OAuth API speichern und abrufen Tokens nach dem ersten Login und Autorisierung
- 21. Facebook-Login-Dialog erscheint wieder nach dem Login in
- 22. Kann AzMan für die rollenbasierte Autorisierung von Objekten verwendet werden, die zur Laufzeit erstellt werden?
- 23. Um Login-Session-ID nach dem Login in codeigniter
- 24. CakePHP 3 Aktualisiere die Seite nach dem Senden des Formulars
- 25. Wie funktioniert die Magento Funktionalität (Login, Payment, Order Management) in CakePHP?
- 26. codeIgniter: Verlieren Sitzungsdaten nach dem Login
- 27. Implementieren rollenbasierte Autorisierung in MVC und Web-API mit benutzerdefinierten Tabelle
- 28. Testing Umleitung nach dem Login mit Devise
- 29. cakePHP isAuthorized funktioniert nicht
- 30. Rollenbasierte Navigation
[Wenn Sie eine Frage zu einem Problem, indem Sie den Code verursacht fragen , erhalten Sie viel bessere Antworten, wenn Sie Code zur Verfügung stellen, den Leute verwenden können, um das Problem zu reproduzieren] (http://stackoverflow.com/help/mcve) – swiftBoy
Willkommen zu SO, seien Sie bitte ein bisschen spezifischer, wenn Sie questi anfragen on: was hast du probiert, was erwartest du, etc. Siehe [how to ask] (http://stackoverflow.com/help/how-to-ask) – Nehal