Open Italia Network
Open Italia Network

Home page

Staff di Envolution


Autorizzazioni: iniziamo...

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

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




Perchè un nuovo sistema di permessi?

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 (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




Gruppi & Realms (Permessi)

I 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:

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.

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

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 Envolution.

2. Non lo voglio!! Mi piaceve il modo in cui lavorava prima.

   Il sistema dei permessi è impostato inizialmente in maniera tale
   da 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  .*  .*  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.
   **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 Cancella
    SubAdmin [(Stories::)|(?NomeModulo::)|(?NomeModulo::)] .* Amministratore
    SubAdmin Menublock:: Main Menu:Administration: Leggi
    All groups Menublock:: Main Menu:Administration: Nessuno
    Sostituendo '?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?




Autorizzazioni per moduli

Autorizzazioni per moduli

  

Autorizzazione per gli sviluppatori di moduli

Descrizione

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.

Settare Il Nome Del Componente

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

Scelta 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 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.

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

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 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

   - 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.
 
 

Moduli di esempio

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




Esempi autorizzazioni

Esempi Autorizzazioni

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)



2003 ©  Open Italia Network
http://www.openitalia.net/CMpro-v-p-57.html