Nascondi il menu di amministrazione se non è disponibile l'opzione di amministrazione

1

Se hai un menu "Attività di amministrazione" e diverse attività di amministrazione (come 10) che puoi assegnare separatamente a ciascun utente, ma ci sono utenti che non hanno attività di amministrazione, come gestiresti con "Nascondere l'amministratore menu "per quegli utenti?

Stavo pensando a 3 modi:

1) Javascript, controlla se il menu Admin è vuoto e poi nascondilo.

2) Verifica tutti i permessi nel menu Amministrazione, con un contatore e mostralo se contatore > 0. E poi ricontrolla le autorizzazioni per ogni oggetto da mostrare.

3) Salva tutte le autorizzazioni nell'array associativo. Prova tutto e assegna "vero" agli articoli concessi. Quando si crea il menu, si ha una funzione che verifica se è concessa almeno un'autorizzazione. Non avrei bisogno di ricontrollare le autorizzazioni su DB, solo contro l'array per ciascun elemento.

C'è un modo migliore?

    
posta JorgeeFG 08.05.2014 - 16:23
fonte

2 risposte

1

Non hai specificato né il motore di template che usi, né il framework, quindi è difficile essere più specifici, ma di solito, i motori di template ti permettono di visualizzare HTML specifico per un elenco e un HTML diverso se l'elenco non contiene nulla . In Django, ad esempio, la sintassi è la seguente:

<ul>
{% for task in administrative_tasks %}
    <li>{{ task.name }}</li>
{% empty %}
    <li>You should be an administrator to access the tasks.</li>
{% endfor %}
</ul>

Nota: hai aggiunto il tag "sicurezza" alla tua domanda. La visualizzazione o meno di un collegamento riservato agli amministratori in una pagina Web non ha nulla a che fare con la sicurezza. Se è necessario essere sicuri che i non amministratori non possano accedere a una risorsa specifica, è necessario controllarne le autorizzazioni durante la richiesta e restituire di conseguenza 401 Non autorizzato o Proibito 403.

    
risposta data 08.05.2014 - 16:46
fonte
0

L'ID dipende. Abbiamo utenti che non sono admin e non possono avere compiti di amministrazione? Quindi è l'opzione 3) perché la logica per la visualizzazione di qualsiasi cosa associata all'amministratore non dovrebbe nemmeno essere chiamata.

Se abbiamo amministratori con un elenco di attività vuoto, l'opzione 1) è corretta / migliore. L'opzione 2) avrebbe lo svantaggio che, se arriverà, che in seguito si desideri portarlo in un altro ambiente con una vista diversa e si desideri mostrare un menu di attività di amministrazione vuoto (per qualsiasi motivo) si ha un problema. Riguarda come vengono visualizzati i dati non quali dati devono essere visualizzati e che sarebbe CSS o se CSS non è sufficiente quindi CSS con supporto javascript.

    
risposta data 08.05.2014 - 16:46
fonte

Leggi altre domande sui tag