005
15.07.2005, 13:42 Uhr
ao
(Operator)
|
Zitat von Tommix: |
... daß ihm bei "#define usercan... 2 hoch irgendwas" irgendwann die begrenzte Bitbreite von perms auf die Füße fallen wird.
|
Stimmt schon. Die Entscheidung, eine Userrechte-Verwaltung einzubauen, ist ne Grundsatzentscheidung für die gesamte Lebenszeit aller betroffenen Programme, und entsprechend sorgfältig sollte man diese Entscheidung treffen.
Es ist nicht grundsätzlich falsch, im ersten Ansatz Bitmasken zu verwenden; mit 32 voneinander unabhängigen Rechten kann man schon ganz schön weit kommen.
Schlecht ist aber, wenn man die Abfragen if (myrights & RIGHT_XY) überall im Code verstreut, sowas ist unpflegbar. Auf jeden Fall die Userrechte-Verwaltung so kapseln, dass im Clientcode nur über Schnittstellen abgefragt wird: if (MyPermissions.MayIDo (Permissions::XY)) und du die Implementierung von Permissions bei Bedarf austauschen kannst.
ao |