Come gestire quando diversi ruoli utente devono accedere a uno stesso modello in MVC

1

Sto imparando come lavorare con il pattern MVC, usando Laravel, ma ho una domanda. Questo è un caso esemplificativo, esiste un modello Utente e l'utente può registrarsi da solo o un amministratore può creare un nuovo account utente utilizzando il pannello di amministrazione, l'utente deve essere registrato dopo la registrazione e l'amministratore reindirizzato alla home page del pannello di amministrazione o qualcosa di simile. Vedo 3 possibili modi per farlo:

  1. Crea 2 controller per lo stesso modello, UserController e AdminUserController.

  2. Usa solo 1 controller con 2 metodi separati, UserCreate e Admin Create.

  3. Utilizza solo un controller con solo un metodo di creazione e controlla il ruolo dell'utente per eseguire le azioni corrette a seconda di esso.

Non so se qualcuno di loro è corretto; Gradirei qualsiasi opinione su quale sia l'approccio migliore.

    
posta Eduardo Ortiz 04.08.2017 - 08:10
fonte

1 risposta

2

Hai due distinte interazioni con il tuo sistema:

  1. Un utente anonimo esegue una registrazione utente e, come risultato positivo, diventa un utente registrato, registrato.
  2. Un amministratore che ha effettuato il login crea un nuovo account utente

Poiché si tratta di interazioni distinte con risposte simili ma diverse dal sistema, dovresti utilizzare 2 controller per gestire queste interazioni.

Nel modello, probabilmente non vuoi fare una distinzione su come un utente è stato creato (se è stato fatto da un amministratore o dall'utente stesso), quindi questo indica di avere solo una singola classe nel modello per gli utenti .
Si noti che nel pattern MVC esiste una singola parte Model, che comprende tutte le classi che non sono correlate alle interazioni dell'utente e che Model è condiviso tra tutti i controller e le viste.

    
risposta data 04.08.2017 - 09:00
fonte

Leggi altre domande sui tag