jogosultságkezelés view-ban?
tudom, hogy számtalan topic létezik mvcvel kapcsolatban, engem viszont konkrétan az adott probléma megoldása érdekel:
vegyünk példának egy egyszerű listát, ahol a rendszerben található felhasználók jelennek meg. Legyen mondjuk 1, 2 illetve 3as jogosultsági szint, mindenki az alatta lévőeket törölheti. belépünk mondjuk a 2es szintű userrel, így a listában meg kellene jelennie egy törlés ikonnak mindenkinél, aki 1es szinten van. Ez kinézhet a következőképpen (egyszerüsítve):letöltjük az adatokat, átadjuk a modellt a viewnak ami végigmegy az indexelt objektumon, és ellenőriz minden sorban.
Ez akár még jó is lehet, hogy ha egy státuszt kell figyelni, de nincs valami módszer arra, hogy a viewból kivegyük az authorizációs részeket? Ennek szerintem a modellben lenne a helye, de a gyarkolatban mennyire megvalósítható egy ilyen megoldás? Ti hogy csináljátok?
■ vegyünk példának egy egyszerű listát, ahol a rendszerben található felhasználók jelennek meg. Legyen mondjuk 1, 2 illetve 3as jogosultsági szint, mindenki az alatta lévőeket törölheti. belépünk mondjuk a 2es szintű userrel, így a listában meg kellene jelennie egy törlés ikonnak mindenkinél, aki 1es szinten van. Ez kinézhet a következőképpen (egyszerüsítve):
//controller
class UserController {
public function list() {
$users = new userHandling();
$users->Get();
$view = new View("userlist");
$view->users = $users;
$view->user = new auth();
}
}
//view
foreach($users as $u) {
if($u->level < $user->level)
echo 'törlésikon';
}
Ez akár még jó is lehet, hogy ha egy státuszt kell figyelni, de nincs valami módszer arra, hogy a viewból kivegyük az authorizációs részeket? Ennek szerintem a modellben lenne a helye, de a gyarkolatban mennyire megvalósítható egy ilyen megoldás? Ti hogy csináljátok?
Jó a kérdés, engem is érdekel.
Azt feltételezzük, hogy a feladatokat jogosultság szerint hajthatjuk végre. Egy alap eset úgy néz ki, hogy meghívjuk a kívánt funkciót, átadva neki a szükséges adatokat, köztük a jogosultságunkat is. Ha minden rendben van és van hozzá jogosultságunk, a funkció végbemegy.
Tehát, ha van egy mágneskártyánk mágneszárhoz, attól, hogy az nem nyitja azt, attól még van!
Azaz a view-ban kódolt kitétel kizárólag megspórolja azt, hogy egyáltalán lehúzzuk az amúgy sem érvényes mágneskártyánkat.
Na, akkor ez most kinek a feladata?
el se jusson a kárgyaolvasóig
Üzleti logika csak modellben lehet
Ehhelyett inkább próbáld meg vhogy így:
Remélem ez segít.
Üdv,
Tamás