
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
Graficamente si ottiene:
| Funzione | Impostazione | Cosa Significa? |
| Realms | All Realms | Non implementato ancora |
| Gruppo | ilgruppo | Impostazione dei permessi per thegroup |
| Componente | Stories:: | 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.
amministrativi solo a quel sondaggio. Questo esempio è presente nel corrente
file di help di PN(Envolution).
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 voglio farlo vedere all'utente ''Te
Stesso'' selezionerò Te Stesso come utente e toglierò l'abilità di usare il
link. Ad ogni altro utente il menu apparirà così:
| Realms | All Realms |
| Utente | Te Stesso |
| Componente | Menublock:: |
| Istanza | Menu Principale:Jomama: |
| Permesso | Nessuno |
A "Te Stesso" il menu apparirà così::
Se sei in grado di rielaborare questo file fallo pure.
Documento a cura di:
Unique1tt3 : unique1tt3@uswest.net Mr. Herald
"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 (metodo dell'attuale Envolution)
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 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 Envolution, 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.
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.
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 onlineDi Envolution.
2. Non lo voglio!! Mi piaceve il modo in cui lavorava prima.
Il sistema dei permessi è impostato inizialmente in maniera taleda lavorare in maniera molto simile al vecchio Envolution. 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 .* .* Commenti5. 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.**Envolution 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 covrebbero permettere questo; Admins .*.* Amministratore Modifica CancellaSubAdmin [(Stories::)|(?NomeModulo::)|(?NomeModulo::)] .* Amministratore
SubAdmin Menublock:: Main Menu:Administration: Leggi All groups Menublock:: Main Menu:Administration: NessunoSostituendo '?NomeModulo' sopra con il vero nome del modulo al quale volete
dare accesso al vostro sub-amministratore.Ricorda NON includere le parentesi quadre
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?
Il nuovo sistema di autorizzazione di Envolution tiene conto del controllo a grana fine virtualmente sopra a tutti gli oggetti del sito. Questo documento spiega come integrare l'autorizzazione di Envolution nei tuoi moduli.
Un nome componente definisce unicamente una zona di controllo all'interno di Envolution. 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
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 Envolution hanno uno schema di istanza già predefinito così che se vuoi lavorare con un contenuto integrato in Envolution devi utilizzare questi schemi. Non attenendoti a queste specifiche potresti causare confusione nel sistema d autorizzazione.
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 CompletoQuesti 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
}
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.
- controlla 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. Molti dei moduli presenti nel sistema Envolution 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
Quando ottenete un funzionamento utile dei permessi aggiungetelo quì
Desidero lasciare alla gente anonima/non registrata di fare Commenti.
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | Non registrato | AddStory:: | .* | Commenta |
Desidero lasciare vedere al mio amico Joey la gestione dei link.
Come permesso utente faccio:
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | Joey | Menublock:: | Menu Principale:Amministrazione: | Leggi |
Ho cambiato il collegamento a Control in modo da cambiare il permesso a:
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | Joey | Menublock:: | Menu Principale:Control | Leggi |
Spero che questo non sia insignificante. Da l'accesso Non registrato al sondaggio. È situato dopo la prima occorrenza di Non registrato|Menublock::|Menu Principale:(My Account|Logout|Submit News):|Nessuno.
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | Non registrato | Sondaggi:: | .* | Commenta |
Ha modificato il permesso per l'esempio di scrutinio. Precedentemente è stato regolato per aggiungere il Commentao, questo è tutto di cui avete bisogno.
Mostrare soltanto il Waiting Content per l'amministratore, qui è come disabilitarlo per tutti gli altri:
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | Non registrato | Menublock:: | Menu Principale:Waiting Content: | Nessuno |
: Nota bene che questo non funziona per me. Ho provato a mettere il waiting content in un blocco separato ma inutilmente, qualche aiuto?
Se voleste rendere determinati articoli disponibili soltanto ai gruppi specificati, potete fare così raggruppando gli articoli sotto una categoria specifica e dichiarando il permesso come segue:
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | Non registrato | AddStory:: | :Category Name: | Nessuno |
Limitare gli articoli inviati da un autore specificato (uid 2 in questo caso) dall'essere visto dagli utenti anonimi:
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | Non registrato | AddStory:: | 2:: | Nessuno |
Limitare un articolo specifico (sid 50 in questo caso) dalla lettura di un utente specifico (Bob in questo caso):
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | Bob | AddStory:: | ::50 | Nessuno |
(usi interessanti!)
Gli anonimi possono votare nei sondaggi
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | Non registrato | Sondaggi:: | .* | Commenta |
I membri di un sottogruppo possono aggiungere storie (questo magicamente aggiungerà un link per aggiungere storie nella pagina di admin del sottogruppo di utenti)
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | subgroup | AddStory:: | .* | Aggiungi |
Membri di un sottogruppo possono aggiungere sondaggi (Questo aggiungerà magicamente un link per aggiungere sondaggi nella pagina di admin del sottogruppo di utenti)
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | subgroup | Sondaggi:: | .* | Aggiungi |
Ciò fa in modo che la sezione di download sia disponibile solo per gli utenti registati, spero sia utile a qualcuno
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | Non registrato | Downloads:: | ::3(qeust è il donwload ID) | Nessuno |
Io ho avuto un blocco HTML che ho cercato di far vedere agliu utenti non registrati e non a quelli registrati.
(il titolo del blocco era "Internet Access")
Usando Envolution
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | Users | HTMLblock:: | Internet Access:: | Nessuno |
Inoltre ho avuto un blocco html che ho fatto vedere solo agli utenti registrati:
(il titolo del blocco era "Stock Market")
Usando Envolution
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | Non registrato | HTMLblock:: | Stock Market:: | Nessuno |
Settaggio per permettere soltanto a un gruppo specifico di vedere un particolare argomento:
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | specialgroup | Topics::Topic | specialtopic:: | Commenta |
Seguito da:
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms | All Groups | Topics::Topic | specialtopic:: | Nessuno |
Il vostro turno...
Realms | Utente/Gruppo | Componente | Istanza | Permesso |
All Realms |
Buona fortuna! - Steve (grape)