Dzięki wszystkim za odpowiedź, ale jednego nie przewidzieliście. Jak to zrobić dla każdej z danych w profilu.
Przykładowo mam klasę która mapuje tabelkę z mojego postu (
~Fixus tak oczywiście jest ID), która wygląda tak:
Kod
profile:
- id
- firstname
- lastname
- email
- phone
wg pomysłu
~Fixusa, który został zmodyfikowany przez
~dr4ko tabelka miałaby wyglądać mniej więcej tak:
Kod
profile:
- id
- firstname
- lastname
- email
- phone
- access
no i pojawia się problem, bo ja nie chcę globalnie blokować CAŁEGO profilu. Ja chcę mieć możliwość blokowania poszczególnych pól, Oczywiście mogę zrobić małą modyfikację:
Kod
profile:
- id
- firstname
- firstname_access
- lastname
- lastname_access
- email
- email_access
- phone
- phone_access
W columnach
*_access miały by się pojawiać identyfikatory użytkowników którzy mają prawo oglądać danych z profilu? Wydaje mi się, że przy dość mocno rozbudowanej liczbie użytkowników te kolumny mogą zacząć rosnąć. Poza tym nie bardzo widzę zarządzanie tym. Co jeśli zostanie dodany nowy użytkownik, który jest moim kumplem, to właściciel profilu powinien go ręcznie dodać do przyjaciół oraz do możliwości podglądu?
Jak wcześniej napisałem system rozpoznaje relację pomiędzy użytkownikiem zalogowanym, a aktualnie oglądanym profilem. Jest metoda, która zwraca integer i tak:
Kod
0 - właściciel
10 - przyjaciel
50 - przyjaciel przyjaciela
80 - całkowicie obcy ale zalogowany użytkownik
99 - całkowicie obcy i niezalogowany użytkownik
Czy dobrym pomysłem będzie umieszczenie w kolumnach
*_access poziomu od którego użytkownik ma prawo oglądać dane profilu?
Przykład krotki:
Kod
id | firstname | firstname_access | lastname | lastname_access | email | email_access | phone | phone_access
---+-----------+------------------+----------+-----------------+----------+--------------+-------+-------------
11 | Adam | 99 | Kowalski | 10 | ak@wp.pl | 0 | |
co oznaczałoby, że imię może zobaczyć każdy, nazwisko tylko przyjaciele, email tylko właściciel, a telefon nie został zdefiniowany.
Czy takie podejście jest dobre? Czy nie macie innego - bardziej prostego sposobu na zarządzanie takimi prawami?
Proszę o odpowiedź,
pozdrawiam.