Bei der Einführung eines ERP-Systems stehen in erster Linie die funktionalen Anforderungen im Vordergrund. Damit geht auch die visuelle Gestaltung einher. So ist es nicht verwunderlich, dass bei der Einführung von OpenERP/Odoo erst einmal Wert auf Funktionen, den Aufbau von Reports wie z.B. das Angebot und manchmal auch konkret auf die Gestaltung der Eingabemasken geachtet wird.

Ein wichtiges Thema sind aber die Benutzerrechte. Seit den ersten Versionen ermöglicht es OpenERP/Odoo, die CRUD-Rechte für einzelne Objekte zu definieren. CRUD ist die Abkürzung für Create, Read, Update und Delete. So darf z.B. ein Benutzer ein Objekt erstellen, aber eventuell nicht löschen. Des Weiteren hat OpenERP/Odoo eine Domain-Logik implementiert. Mit dieser Logik kann man die Rechte weiter verfeinern, beispielsweise so dass der Benutzer nur auf Kunden Zugriff hat, denen er als Mitarbeiter zugeteilt ist oder seine Mitarbeiterdaten einsehen kann, aber nicht die Daten seiner Kollegen etc.
Vor OpenERP/Odoo 7 gab es nur ein Problem und zwar, wenn der Benutzer nur einen Teil des Datensatzes lesen sollte. Ein einfaches Beispiel dafür: Die Mitarbeiter können die Kontaktdaten des Geschäftsführers einsehen, jedoch soll nicht jeder Mitarbeiter Zugriff auf die private Handynummer des Geschäftsführers haben, die ebenfalls in den Kontaktdaten steht. Bis zur Version 6.1 hat man sich damit beholfen, das man für den Mitarbeiter das Anzeigenfeld einfach ausgeblendet hat. D.h. er sieht das Feld erst einmal nicht, aber die Daten sind nicht vor ihm geschützt und mit technischem Sachverstand kann er (vielleicht) darauf zugreifen.

In OpenERP/Odoo 7 wurde dieses Problem bereinigt, so dass man jetzt für Eigenschaften von Objekten Zugriffsrechte definieren kann. Hat der Benutzer keinen Zugriff auf die Eigenschaft, dann werden auch nicht die Felder in der Eingabemaske angezeigt. Für einfache Felder wie z.B. eine Telefonnummer funktioniert das auch super.
Die neuen Feld Rechte können in OpenERP/Odoo nicht im Adminbereich definiert werden, sondern es ist nötig dies in ein Modul zu kapseln.
Für einfache Felder reicht hier eine Anpassung der Eigenschaft im Code, für Referenzen muss aber alle Codestellen angepasst werden, bei den versucht wird darauf zuzugreifen. Dies ist nötig, da wenn der User die Rechte nicht besitzt ein Fehler geworfen wird, den man dan abfangen muss.
Ein Beispiel dazu: Ein Handelsunternehmen hat Vertriebsmitarbeiter. Diese haben Zugriff auf die Kontaktdaten der Kunden, aber nicht auf die Kontaktdaten der Lieferanten. Sie haben auch Zugriff auf die Produkte und auf die Preise. Wenn man den Einkauf (teil)automatisieren will, benötigt man die Zuordnung von Produkten und Lieferanten.
Soweit ist alles gut, die Rechte können entsprechend gesetzt werden. Macht man dies in OpenERP/Odoo 7, muss man aber feststellen, dass mit einem Mal die Vertriebsmitarbeiter keinen Zugriff auf die Produkte haben, da sie die Lieferanten nicht einsehen dürfen. Dies liegt an den internen Abhängigkeiten der Eigenschaften. Wenn man dies sauber umsetzen möchte, muss man die Abhängigkeiten im Code auflösen.
Für das angegebene Beispiel haben wir ein Modul entwickelt und schon bei einem Kunden im Einsatz. Damit sind Lieferinformation vom Produkt nur für Benutzer verfügbar, die auch Rechte im Einkauf haben.
Man findet das Modul bei den OpenERP/Odoo Apps:
https://apps.openerp.com/apps/7.0/product_supplierinfo_rights/
oder als Source:
https://code.launchpad.net/~initos.com/initos.com-openerp-addons/7.0
Die Rechte sind eine sensible Sache. Je größer die Firma ist, umso wichtiger ist es, sensible Daten zu schützen. Deshalb ist es wichtig diesem Punkt genügend Aufmerksamkeit zu widmen.
Falls Sie auch Interesse an OpenERP/Odoo haben oder unsere Expertise für Ihr ERP-Projekt benötigen, dann nehmen Sie mit uns Kontakt auf. Wir helfen Ihnen gerne weiter! Sie erreichen uns entweder telefonisch unter +49 4105 135 03 99, per Mail an [email]sales@initos.com[/email] oder über unser Kontaktformular.
Gibt es zu dem Thema vielleicht ein Buch oder ähnliches was zu empfehlen wäre?
Nein mir ist keins bekannt, am brauchbarsten ist noch die Onlinedokumentation auch wenn die etwas hinterher hinkt. Zu Rechten findet man da im Abschnitt:
https://doc.openerp.com/trunk/server/04_security/