2012-06-08 6 views

risposta

15

OpenERP ha due tipi di restrizioni di sicurezza che possono essere assegnati a un gruppo di utenti:

  • Access Rights sono CRUD sì/no bandiere (simili ai permessi Unix FS), e consentire per-modello di controllo di accesso . Indicano se i membri di questo gruppo possono eseguire un'operazione di creazione, lettura, aggiornamento ed eliminazione su qualsiasi documento di un determinato modello di documento (ad esempio un'attività di progetto). La politica predefinita è DENY, quindi per impostazione predefinita qualsiasi operazione verrà rifiutata se l'utente non ha esplicitamente il diritto di eseguirlo tramite uno dei diritti di accesso dei suoi gruppi.
  • Record Rules sono filtri applicati su operazioni CRUD e consentono per-document accesso-controllo, una volta diritto di accesso sono già concessi. Gli utenti saranno in grado di eseguire un'operazione su un determinato documento solo se il documento corrisponde ad almeno una delle regole di registrazione. La politica predefinita è CONSENTI, quindi se non esiste alcuna regola per un determinato modello, tutti gli documenti di quel modello possono essere accessibili dagli utenti che hanno i diritti di accesso necessari.

Entrambi i diritti di accesso e le regole di registrazione possono anche essere definiti globalmente senza assegnarli a un gruppo specifico, nel qual caso si applicano a tutti. C'è una trappola per le Regole del Record: le regole globali NON possono essere allentate da altre regole (di proposito!), Quindi usale con cura.

Nel tuo caso sembra che dovresti definire una Regola record aggiuntiva nel gruppo Progetto utente che limita esplicitamente l'accesso in Attività di progetto alle tue attività (e presumibilmente quelle che non sono ancora state assegnate). È necessario creare una nuova voce nel menu Sicurezza Regole con questi parametri:

  • oggetto/modello: project.task
  • nome: See own tasks only
  • dominio: ['|',('user_id','=',False),('user_id','=',user.id)]
    • (mezzi: i propri compiti e non assegnati)
  • domanda di lettura: [x]
  • si applicano per la scrittura: [x]
  • domanda per creare: [x]
  • richiedere cancellazione: [x]
  • gruppi: Project/User

La domain di una regola record è un dominio OpenERP standard che viene valutata in i record su cui si sta tentando di eseguire l'operazione e possono fare riferimento a una variabile user che contiene i dati dell'utente corrente (tecnicamente, un browse_record sull'utente corrente).Cerca search() nell'elenco di ORM methods per una descrizione completa di domain.

Se si desidera consentire a utenti speciali (ad esempio Project Manager) di visualizzare tutte le attività nel sistema, è possibile attenuare questa regola aggiungendo un'altra regola al gruppo Project Manager che consente l'accesso a tutte le attività. C'è uno speciale "filtro di dominio" che significa "CONSENTI TUTTI" ed è utile per rilassare un'altra regola più rigida: [(1,'=',1)].

Nota: dare un'occhiata alle Regole di registrazione esistenti per vedere cosa stanno facendo per prima, e assicurarsi di leggere le spiegazioni sul modulo Regola Registra quando si aggiunge il proprio. E ricorda che se fai qualcosa di sbagliato con i diritti di accesso e le regole di registrazione, puoi sempre sistemare il casino con l'account admin, poiché queste restrizioni di sicurezza non si applicano allo admin (in modo simile all'utente root su Unix).

+0

Bella risposta, Olivier, non sapevo delle regole di registrazione. Sono contento di vedere che stai diventando un contributore regolare qui. –

+0

grazie per la risposta dettagliata. questo ha funzionato per me [('user_id', '=', user.id)] –

+0

vedi qui per le regole dei record in XML: http://help.openerp.com/question/12667/setting-up-rules-access- right-in-xmlcsv-files/ –

2

Nota: In OpenERP 7 è necessario modificare o disattivare la regola defualt chiamato

progetto/attività: dipendenti: pubblico, portale, dipendente o dopo o assegnato

Per ottenere il regola il funzionamento.

+0

come modificare questo in modo tale che i project manager dovrebbero essere in grado di vedere tutti tranne gli altri dovrebbero essere in grado di vedere solo le loro attività? –

+0

grazie, sono stato in grado di capire. –

+0

Non sono riuscito a trovare questa regola in Odoo v11. Hai idea di dove sia sulla v11? Grazie. –

0

Come già indicato da @ user1534055 in openERP 7, è un po 'diverso.

Trova la regola denominata Project/Task: employees: public, portal, employee or following or assigned

Find the associated record rule

Modifica e rimuovere ('project_id.privacy_visibility', 'in', ['public', 'portal', 'employees']), '&', dalla definizione regola e ha colpito Salva.

Dopo queste attività saranno visibili solo a coloro che sono stati assegnati.

1

creare una nuova regola di sicurezza, selezionare Oggetto come "project.task", danno il filtro dominio come [("user_id", "=", user.id)]. Non è necessario aggiungere alcun gruppo, in modo che sia globale. Questo è tutto!

Problemi correlati