Manuale sui permessi ed autorizzazioni
Staff di MAXdev
Autorizzazioni: iniziamo
Bene, se voi ragazzi siete come me questo sistema di permessi è veramente complicato da utilizzare. Non semplice da utilizzare come Mutant ma sembra avere un mucchio di caratteristiche una volta che sai come utilizzarlo. Dopo essermi guardato in giro ho scoperto che parecchi di voi stanno cercando di fare la stessa cosa che sto cercando di fare io. Creare un sub admin per alcune parti del sito o avere un gruppo sub admin che fa la stessa cosa. Bene, queste sono alcune informazioni che vi daranno una mano Una cosa da notare è che la cartella admin è localizzata nella cartella dei moduli. Pensa, ad esempio, di avere un gruppo di persone da inserire in un gruppo sub admin. Questa è una guida passo passo. Primo, crea un gruppo con un nome di tua scelta (esempio: subadmins, assistenza, qualunquecosa). Aggiungi i membri che vuoi nel gruppo (esempio: John Doe, Jane Doe). Ora che hai un gruppo devi assegnargli i permessi che vuoi. Supponi di volergli assegnare il permesso di aggiungere una storia nel sito proprio come farebbe l'amministratore. Dovresti andare nel menu Amministrazione. Cliccare su Autorizzazioni Cliccare su Aggiungi Permesso di Gruppo Per Realms, non fare niente. Per Gruppo seleziona il gruppo che hai creato. Per Componenti stiamo creando storie dovresti scrivere Stories:: (Questi sono visualizzati nella finestra di pop up quando clicchi su Componenti) Per Istanza dovresti scrivere .* Per Permessi dovresti selezionare Amministratore| Funzione | Impostazione | Cosa Significa? |
| Realms | All Realms | Non implementato ancora |
| Gruppo | ilgruppo | Impostazione dei permessi per thegroup |
| Componente | AddStory:: | Utilizzo del modulo Stories |
| Istanza | .* | Il livello di permesso applicato a tutto in questo componente |
| Permesso | Amministratore | Il più alto livello di accesso |
Ricorda, stai dando al sub admin TOTALE controllo su questo modulo.
[pagebreak]
Puoi dare permessi più specifici cambiando l'istanza.
- Esempio: Supponi di voler restringere l'accesso ai links nel tuo MenuP rincipale .Fai così:
| Realms | All Realms |
| Gruppo | Subadmins |
| Componente | Menublock:: |
| Istanza | Menu Principale:Amministrazione: |
| Permesso | Leggi |
Ad ogni altro utente il menu apparirà così:
- Home
- Il tuo Account
- Jomama
- News
| Realms | All Realms |
| Utente | Paolino |
| Componente | Menublock:: |
| Istanza | Menu Principale:Jomama: |
| Permesso | Nessuno |
A "Paolino" il menu apparirà così::
- Home
- Il tuo Account
- News
[pagebreak]
Documento a cura di: Unique1tt3 : unique1tt3@uswest.net Mr. Herald
Perché un nuovo sistema di permessi
"Verrà ulteriormente approfondito nelle FAQ ma è importante parlarne anche qui." Un sistema di permessi a due livelli può andar bene in un semplice sito di news. Ci sono visitatori che leggono le notizie e amministratori che postano le notizie. Però in sistema di gestione di contenuti (CMS) sono necessari più livelli di sicurezza. Permettendo o negando l'accesso a determinate aree, il nuovo sistema dà al proprietario del sito un maggiore controllo e una migliore gestione dei propri contenuti. Esempi: Semplice Sito di News Admin, Utenti Registrati, Guests Sito Avanzato di News Admin, Utenti Iscritti, Utenti Registrati, Guests Semplice Sito Web Corporate Admin, Clienti, Utenti Registrati, Guests Sito Web Corporate Avanzato Admin, Clienti Eleggibili per il Supporto, Clienti, Utenti Registrati, GuestsI gruppi
I gruppi di utenti sono quello che definiscono il nuovo sistema. Ogni utente può essere inserito in un definibile "gruppo" e poi all'intero gruppo può essere assegnato un set di permessi. Il sistema viene preconfigurato con due gruppi di utenti:- users
- admins
Realms
Realms
Ignorali. Essi non sono usati al momento. Il realm corrente è sempre 0. In ogni chiamata ad authorized(), assicurati che il primo parametro sia sempre 0.Domande sulle autorizzazioni
1. A cosa serve il sistema dei permessi?
Il sistema dei permessi è disegnato per permettere agli amministratori del sito di proteggere il propiro contenuto e restringere le operazioni a qualunque livello desiderato. Per maggiori informazioni sui permessi consulta il manuale online di MAXdev.
2. Non lo voglio!! Mi piaceva il modo in cui lavorava prima.
Il sistema dei permessi è impostato inizialmente in maniera tale da lavorare in maniera molto simile al vecchio MAXdev. Per far diventare un utente un amministratore del sito è sufficiente andare sulla pagina di amministrazione dei 'Gruppi' e aggiungere l'utente al gruppo 'Admins'.
3. Perchè nel manuale dei permessi ci sono così tanti avvertimenti sul fatto di impostare i permessi correttamente?
Perchè modificando i permessi si potrebbe esporre il tuo sito al rischio che chiunque possa modificare, aggiungere o cancellare tutto il tuo contenuto!. Però, posto che tu abbia letto attentamente le istruzioni e non cambi i permessi già esistenti a meno che tu non sia sicuro di quello che stai facendo, questo non dovrebbe succedere.
4. Perchè gli utenti non possono accedere ai sondaggi fino a quando non effettuano il log in?
Perchè gli utenti non possono effettuare commenti alle storie fino a quando non effettuano il log in?
Il sistema dei permessi è impostato inizialmente in modo tale da permettere agli utenti non registrati il solo livello di accesso in lettura. Per permettere agli utenti non registrati di effettuare commenti ai vari elementi cerca nei permessi di gruppo una riga come questa: Non registrati .* .* Leggi e modificala in modo che dica Non registrati .* .* Commenti
5. Perchè ho bisogno di .*' alla fine dei miei permessi?
.*' è parte del sistema di espressioni regolari che il sistema usa e sta per 'qualunque cosa'. Questo segno è usato in molti permessi, da solo o con altro testo, per proteggere larghe aree piuttosto che un singolo elemento. L'uso più ovvio di questo segno è dato dal primo comando nei permessi di gruppo, che è: Admins .* .* Amministratore che dice: 'Tutti gli amministratori sono abilitati ad amministrare ogni cosa' Per un uso dettagliato di '.*' per permetter diversi tipi di filtri consultare le pagine del manuale online del sistema dei permessi. ** MAXdev rimuoverà questa restrizone (di esplicitare '.*'), e 'Foo:' sarà la stessa cosa che 'Foo:.*', ma è meglio non mettere questa informazione nelle FAQ fino a quando non sarà ufficiale**
6. Qual è la differenza tra permessi utente e di gruppo?
I permessi di gruppo sono applicati a tutti gli utenti del gruppo in questione mentre i permessi utente sono applicati all'utente specifico. Inoltre i permessi utente sovrascrivono i permessi di gruppo. I permessi di gruppo dovrebbero essere usati in generale e i permessi utente solo quando un utente specifico ha necessità di fare qualcosa che contrasta con i permessi di gruppo.
7. Come posso aggiungere un sub-amministratore, al mio sito, che abbia accesso a certe funzioni e al menu di amministrazone delle stesse?
Primo, dobbiamo impostare due permessi, uno per modificare effettivamente una storia, un altro per permettere la visualizzazione del link di amministrazione nel 'Menu Principale'.
I seguenti permessi dovrebbero permettere questo;
| Admins | .* | .* | Amministratore |
| SubAdmin | AddStory::| NomeModulo ::| NomeModulo :: | .* | Amministratore |
| SubAdmin | Menublock:: | Menu Principale:Administration: | Leggi |
| All groups | Menublock:: | Menu Principale:Administration: | nessuno |
Sostituendo ' NomeModulo ' sopra con il vero nome del modulo al quale volete dare accesso al vostro sub-amministratore.
8. Come posso forzare gli utenti ad immettere login name e password nell'homepage? Dovremo cambiare il permesso di default per non permettere agli utenti non registrati di fare niente, così Non registrati .* .* Leggi diventa Non registrati .* .* Nessuno Poi permetteremo agli Utenti non Registrati di vedere il login box (dovremo permettergli di loggarsi da qualche parte :-) ), agiungendo Non registrati Loginblock:: .* Leggi assicurati di aggiungere questa riga PRIMA delle altre perchè le altre hanno una visibilità più alta di questa.
9. I livelli dei dei permessi sembrano lavorare in maniera gerarchica, es. Aggiungi è dopo modifica quindi se io dò il permesso di aggiungere l'utente può anche modificare. Però io voglio che esso sia in grado solo di aggiungere e non di modificare!! Come posso fare? Cheers, Jim. -- Jim ? McDonald - Jim@mcdee.net
10.Come faccio a fare in modo che un blocco di menu generico( ? MenuBlock?) non sia visibile agli utenti NON registrati?O almeno che non ci accedano?
[pagebreak]
Autorizzazioni per moduli
Autorizzazione per gli sviluppatori di moduli
Descrizione
Il nuovo sistema di autorizzazione di MAXdev tiene conto del controllo a grana fine virtualmente sopra a tutti gli oggetti del sito. Questo documento spiega come integrare l'autorizzazione di MAXdev nei tuoi moduli.Settare Il Nome Del Componente
Un nome componente definisce unicamente una zona di controllo all'interno di MAXdev. Come tale, dovresti aver cura di scegliere il vostro nome di componente in modo che non sia in disaccordo con qualunque altro nome di componente corrente e che questo sia chiaro per l'amministratore del sito (???)"che controlli componenti del vostro blocco quando desiderano mettere il controllo di accesso su di esso. Il componente consiste di tre parti, separate dai segni dei due punti (:). La prima parte dovrebbe essere il nome del modulo. La seconda parte attualmente è riservata e dovrebbe essere lasciata in bianco. La terza parte può essere una sottocategoria di vostro modulo, se è abbastanza complessa da garantirla (a meno che un modulo abbia un certo numero di zone che separate di funzione ,questo è improbabile). Si noti che a volte un nome componente non è necessario. Un modulo che puramente funziona con il contenuto da un'altra parte del sistema userà appena il componente per quel contenuto. Inoltre, un modulo destinato per sostituire un modulo standard può mantenere lo stesso nome componente dell'originale. Ciò tiene conto per il rimontaggio di moduli drop-in con pochissimo sforzo da parte del mantenitore del sito. Se il vostro modulo sta sostituendo un modulo attualmente esistente allora avete la necessità di regolare il nome componente. Se il vostro modulo lo sta puramente supplementando potete lasciare il vostro componente settando lo spazio in biancoScelta Dello Schema Di Istanza
Lo schema di istanza per il tuo modulo definisce il tipo di informazione contenuto-dipendente, che è usata per l'autorizzazione. Lo schema di istanza consisendi tre parti, separate dal segno di due punti (:). Le parti sono totalmente dipendenti dalle funzionalità del blocco e normalmente conterranno informazioni dinamiche. Come esempio di schema di istanza, il tuo modulo potrebbe essere una galleria di immagini suddivise in categorie. In questo caso una possibile istanza potrebbe essere 'Nome immagine:Categoria immagine:Immagine ID'. Nota come tutti i moduli standard di MAXdev hanno uno schema di istanza già predefinito così che se vuoi lavorare con un contenuto integrato in MAXdev devi utilizzare questi schemi. Non attenendoti a queste specifiche potresti causare confusione nel sistema d autorizzazione.Configurare i tuo modulo per le Autorizzazioni
La prima cosa da fare, quando configuri un modulo, è annunciare uno schema di istanza. Per fare questo aggiungi una linea simile alla seguente al file version.php: $modversion 'securityschema' = array('Gallery::' => 'Picture name:Category name: Picture ID'); L'array può contenere più elementi ma ogni elemento deve contenere un unico componente. Poi, hai bisogno di proteggere tutte le operazioni con le rilevanti componente, istanza e livello di accesso. Questo viene fatto attraverso la chiamata authorised(). authorised() richiede quattro parametri. Essi sono: - realm: attualmente 0 - componente: descritto sopra - instanza: descritta sopra - livello di accesso: minimo livello d'accesso richiesto per l'autorizzazione. I livelli di accesso sono i seguenti:- ACCESS_NONE Nessun Accesso
- ACCESS_OVERVIEW Permesso di vedere un'anteprima del contenuto
- ACCESS_READ Permesso di leggere il contenuto
- ACCESS_COMMENT Permesso di aggiungere commenti al contenuto
- ACCESS_MODERATE Permesso di moderare il contenuto
- ACCESS_EDIT Permesso di modificare il contenuto
- ACCESS_ADD Permesso di aggiungere il contenuto
- ACCESS_DELETE Permesso di cancellare il contenuto
- ACCESS_ADMIN Controllo Completo
Controllare i Permessi Esterni
Il tuo modulo potrebbe aver bisogno di controllare dei permessi esterni per assicurare che fornisca le informazioni corrette. Un esempio di questo potrebbe essere un modulo che mostra una serie di tipi di storie al quale un utente potrebbe essere interessato. Il modulo dovrebbe controllare i permessi del componente 'Stories::' per ogni storia che vuole mostrare, per controllare che l'utente abbia gli opportuni permessi per vederla. Nota che è cruciale che in questi casi il modulo controlli anche la corretta istanza ogni volta.Migliorare con la pratica
Moduli di esempio
Molti dei moduli presenti nel sistema MAXdev ufficiale usano questo sistema di autorizzazioni. Probabilmente il miglior esempio di modulo a cui guardare è quello delle News che contiene tutti gli elementi discussi in questo documento. In aggiunta, il[pagebreak]
Esempi Autorizzazioni
Quando ottenete un funzionamento utile dei permessi aggiungetelo quì| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | Non registrato | AddStory:: | .* | Commenta |
Come permesso utente faccio:
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | Joey | Menublock:: | Menu Principale:Amministrazione: | Leggi |
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | Joey | Menublock:: | Menu Principale:Control | Leggi |
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | Non registrato | Sondaggi:: | .* | Commenta |
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | Non registrato | Menublock:: | Menu Principale:Waiting Content: | Nessuno |
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | Non registrato | AddStory:: | :Category Name: | Nessuno |
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | Non registrato | AddStory:: | 2:: | Nessuno |
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | Bob | AddStory:: | ::50 | Nessuno |
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | Non registrato | Sondaggi:: | .* | Commenta |
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | subgroup | AddStory:: | .* | Aggiungi |
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | subgroup | Sondaggi:: | .* | Aggiungi |
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | Non registrato | Downloads:: | ::3(questo è il donwload ID) | Nessuno |
(il titolo del blocco era "Internet Access")
Usando MAXdev
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | Users | HTMLblock:: | Internet Access:: | Nessuno |
(il titolo del blocco era "Stock Market")
Usando MAXdev
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | Non registrato | HTMLblock:: | Stock Market:: | Nessuno |
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | specialgroup | Topics::Topic | specialtopic:: | Commenta |
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms | All Groups | Topics::Topic | specialtopic:: | Nessuno |
Gruppo: Non registrati
Componenti: AddStory::Story
Istanza: .*
Livello permessi: Nessuno
Il permesso deve essere inserito al primo posto per il gruppo Non registrati.
| Realms | Utente/Gruppo | Componente | Istanza | Permesso |
| All Realms |
