Elgg sta progettando un'API di autorizzazione liberamente attorno a Stream di attività modello. L'API utente potrebbe apparire (approssimativamente) come:
function elgg_can($capability, $subject = null, $object = null, $target = null) { ... }
-
$capability
è una stringa -
$subject
è un oggetto utente -
$object
è l'oggetto eseguito su -
$target
è il contesto in cui l'azione si svolgerà
es. L'utente corrente può modificare il titolo di un oggetto?
if (elgg_can('edit title', $currentUser, $someObject)) {
...
}
Mi piacerebbe sapere un buon modo per gestire chiedere il permesso per creare oggetti . Se l'oggetto non esiste ancora, il sistema di permessi non può sapere nulla al riguardo, quindi c'è un problema dell'uovo di gallina con alcune ovvie soluzioni:
- Consenti il passaggio di una stringa al posto di $ oggetto (ad esempio, TypeName).
- Inserisci i metadati relativi all'oggetto nella funzionalità $. Per esempio.
elgg_can("create PageObject", $currentUser, null, $group)
. - Chiedi all'utente API di creare l'oggetto e poi passarlo nell'API per decidere se continuare a esistere.
Mi manca un'altra soluzione ovvia? Ci sono modelli di permessi simili a questo (che si potrebbe ragionevolmente chiamare con successo) che gestiscono questo?