Würde Lösung 2 entsprechen:
Packe die Rechteverwaltung in ein Filter für die entsprechenden Objekte, das die Aufrufe filtert und im Verletzungsfall eine
Exception wirft. Der "Nutzer" bekommt die geschützten Objekte aus einer Factory, die passenden Filter (evtl. mehrere) entsprechend seiner Rolle(n) erstellt.
Die Filter selbst können beliebig komplexe Einschränkungen überprüfen und ihre Eigenschaften (z.B. die möglichen Intervallwerte) könnten aus der Datenbank oder aus den Attributen (entsprechend Lösung 1) gelesen werden.