Laravel pobieranie rekordów zależne od roli

0

Każdy user jest przypisany do firmy. User jest też przypisany do roli.
Chciałbym osiągnąć funkcjonalność gdzie:

  1. Admin widzi wszystko: dokumenty, wszystkie combosy wypełnione wszystkim, etc

  2. User widzi: dokumenty z jego firmy. Jeszcze nie wiem czy nagłówki dokumentów bedę wiązał z userem czy z firmą. Ale dla tych dywagacji nie ma to większego znaczenia.
    Będę też miał pozycje dokumentu. Trzeba coś wymyślić aby metoda showDocumentElements(id) nie pozwalała zobaczyć pozycji z nieswojego dokumentu
    Etc.

Proszę Was o podpowiedz, kawałek kodu, coś co zobrazuje jak to powinno być napisane.

Temat myśle bardzo uniwersalny i każdy z niego zaczerpie.

0

Jakiś język, jakaś technologia to na czym pracujesz?

0

w larwie masz Roles gdzie możesz userom/adminom przypisać różne role i Group gdzie możesz je organizować i nadawać uprawnienia, myślę, że na tej podstawie mógłbyś stworzyć zależności o których piszesz

0

Nie do konca rozumiem bo role to ja sobie juz przypisuje. Group kojarzy mi sie jedynie z rutami, google też :)
Zastanawiam sie czy za to nie powinien być odpowiedzialny serwis/serwisy (musiałoby ich być wiele w zależności z iloma domenami musiałbym tak szukać), który bazując na roli zwracałby odpowiednie dane.

0

Patryk27 podejdź PROSZĘ do płota :)

0

Jeżeli user i document posiada pozycje company_id to można użyć whereHas aby pobrać dane dokumentu:

$user = auth()->user();

Document::whereHas('company', function($query) use ($user) {
       $query->where('company_id', $user->company_id);
})->findOrFail($id);

następnie readfile do wyświetlenia dokumentu

1 użytkowników online, w tym zalogowanych: 0, gości: 1