Domanda

Sto creando CMS e ora affronta qualche problema ho bisogno del tuo consiglio. Ho pochi moduli diversi (app) posso definire il permesso personalizzato a loro - nel modello I Definisci permessi personalizzati come "view_store", "edit_store", "delete_store" e così via. E poi ho definito diversi gruppi di utenti (voglio avere il controllo degli accessi utente basati su gruppo) - admin, editor, vip, utente.

Sto creando questi gruppi quando si esegue un comando a tempo per inizializzare il CMS (InitCMS Gestisci.py) e voglio ovviamente tutte le autorizzazioni giuste verranno aggiunte al gruppo nello stesso tempo.

L'azione INITICMS è in esecuzione dopo il sincdb, quindi tutti i modelli sono in DB (informazioni sulle autorizzazioni anche ovviamente).

Ho qualcosa nella mia mente ... se questo è un buon modo per andare o hai la migliore? Lasciami descrivere il mio: voglio dare ad esempio per l'utente VIP tutte le autorizzazioni da tutti i modelli (che hanno definito questa autorizzazione) a "View_ *". Significa VIP può visualizzare tutto. Ho un'idea durante l'inizializzazione del database, prendi tutte le voci (tutte le autorizzazioni) che si adattano al modello "come View_%" e quindi aggiungere queste autorizzazioni di gruppo.

Ma poi il problema se il nuovo modulo verrà aggiunto ... Devo ri-eseguire questa azione e verificare se tutte le autorizzazioni sono giuste ... Forse c'è qualche modo dinamico per affrontare le autorizzazioni di gruppo? .

È stato utile?

Soluzione

One possible solution is to use Django Signals, which can be triggered before or after a model's save mothod has been called or after or before any M2M action takes places, after syncdb etc... You may select a proper signal that fits you best and then call a function that checks related permissions and add or remove any if necessary...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top