Manuale sistema dei permessi di MAXdev |
Se sei in grado di rielaborare questo file fallo pure. Autorizzazioni: iniziamoBene, 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. |
| Puoi dare permessi più specifici cambiando l'istanza. |
| Esempio: Supponi di voler restringere l'accesso ai links nel tuo Menu Principale .Fai così: |
| Realms | All Realms |
| Gruppo | Subadmins |
| Componente | Menublock:: |
| Istanza | Menu Principale:Amministrazione: |
| Permesso | Leggi |
Supponi di avere un link a Jomama e non vuoi farlo vedere all'utente Paolino selezionerò Paolino come utente e toglierò l'abilità di usare il link |
Ad ogni altro utente il menu apparirà così: |
|
| Realms | All Realms |
| Utente | Paolino |
| Componente | Menublock:: |
| Istanza | Menu Principale:Jomama: |
| Permesso | Nessuno |
A Paolino il menu apparirà cosi: | ||||||||||||||||
| ||||||||||||||||
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, Guests | ||||||||||||||||
I gruppiI 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: | ||||||||||||||||
| ||||||||||||||||
Se stai upgradando da una vecchia versione di MAXdev, PHPNuke, o myPHPNuke allora avrai anche un nuovo gruppo definito per ognuno dei permessi d'autore che avevi definito. Questi nuovi gruppi vengono creati ma devi impostare i loro permessi manualmente. C'è anche un altro gruppo che non è un vero e proprio gruppo, esso è dato dai visitatori, cioè gli utenti non registrati che accedono al tuo sito. Questi sono definiti nel database con un UID di 0. Questi membri non registrati non vengono mostrati nel Gruppo di amministrazione però è come se appartenessere tutti al gruppo Utenti non Registrati. Tu puoi assegnare a questo gruppo qualunque tipo di permessi tu voglia -- da Nessuno ad Amministratore. E' semplice dimenticare che i siti web hanno più che "visitatori". Poichè la linea che separa design e programmazione sul web si sta assottigliando molto, dobbiamo pensare i sito web più come dei software. I webmasters offrono un interfaccia ad un prodotto. Ogni "visitatore" è veramente un fruitore di un nostro servizio.Se noi pensiamo loro come degli utenti piuttosto che come dei visitatori la relazione diventa un po' più personale. E' incoraggiando gli utenti a diventare "Utenti Registrati" che le relazioni personali si costruiscono. | ||||||||||||||||
RealmsIgnorali. 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 autorizzazioni1. A cosa serve il sistema dei permessi? 2. Non lo voglio!! Mi piaceva il modo in cui lavorava prima. 3. Perchè nel manuale dei permessi ci sono così tanti avvertimenti sul fatto di impostare i permessi correttamente? 4. Perchè gli utenti non possono accedere ai sondaggi fino a quando non effettuano il log in? 5. Perchè ho bisogno di .*' alla fine dei miei permessi? 6. Qual è la differenza tra permessi utente e 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? | ||||||||||||||||
| ||||||||||||||||
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? | ||||||||||||||||
Autorizzazioni per moduli - Autorizzazione per gli sviluppatori di moduli | ||||||||||||||||
Settare un nome componenteUn 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 bianco | ||||||||||||||||
Scelta Dello Schema Di IstanzaLo 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 AutorizzazioniLa 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: | ||||||||||||||||
| ||||||||||||||||
Questi livelli di accesso sono cumulativi, quindi chi ha l'accesso in modifica lo ha anche in lettua, commento e moderazione. Per esempio, il modulo Gallery autorizzerà la visualizzazione di un'immagine come segue: if (authorised(0, "Gallery::", "$picname:$catname:$picid", ACCESS_READ)) { // Display picture } | ||||||||||||||||
Controllare i Permessi EsterniIl 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 praticaControlla sempre i permessi ogni volta che ne hai bisogno. Non dare per scontato che i permessi controllati in un altra pagina web sono ancora validi. Questo ti assicura che cose come URL subverted non possano fare alcun danno. - controlla subito i permessi in bianco. Se un utente non ha il permesso di fare nulla con un modulo, individualo subito e non perdere tempo nel generare regole che non verrano usate. - usa le informazioni delle istanze dove occorre. Ciò permette un migliore e dettagliato controllo dei contenuti del sito da parte dell'amministratore e porta ad un sistema più flessibile. - lascia decidere alle autorizzazioni di sistema. Se devi, ad esempio, mostrare un link di un modulo amministrativo, chiedi alle autorizzazioni di sistema il permesso di mostrarlo in relazione al modulo che stai linkando piuttosto che al tuo stesso modulo. | ||||||||||||||||
Moduli di esempioMolti 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 | ||||||||||||||||
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 |

