2009-03-03 9 views
5

Dotyczy wzoru:Jaki jest najlepszy projekt zabezpieczeń/uprawnień dla części witryny - mądra tabela danych?

  1. Każdy użytkownik jest częścią NIEKTÓRYCH grup. (sprzedaż, części, gracze w baseball, cokolwiek)
  2. Każda "strona internetowa" jest widoczna dla grupy osób. (sprzedaż + części + joe w księgowości, które otrzymały specjalne pozwolenie)
  3. Każda strona internetowa jest zwykle częścią grupy stron internetowych na pewnym poziomie - możesz spróbować zachować je w jakimś katalogu lub zacząć z pewnym prefiksem, ale nie zawsze - to znaczy, gdy ktoś dołącza do sprzedaży nie chcą mieć do określenia - oni mogli zobaczyć SalesPage1, SalesPage2, SalesPage3, SalesPartsPage1 itp

Odpowiedz

3

Ponieważ „Każda strona internetowa jest zwykle częścią grupy stron internetowych ... "najlepiej jest zachowywać się tak, jakby" Każda strona internetowa jest zawsze częścią grupy stron internetowych ... "- nawet jeśli niektóre grupy będą miały tylko 1 członka!

To upraszcza model danych do:

Użytkowników ---> Grupy użytkowników < -------> strona Grupy < --- Strony

10

Najłatwiej jest następujący:

Użytkownicy: zawiera listę użytkowników, nazwy i identyfikatora

SecurityGroups: zawiera listę zabezpieczeń g grupy takie jak "Sprzedaż", "Marketing". (Id, nazwa grupy zabezpieczeń)

Strony: Zawiera listę stron (id, nazwa strony)

UserSecurityGroups (userid, securityGroupId). Tabela referencyjna przypisanych uprawnień

PageSecurityGroups: (pageId, securityGroupId, dozwolone). Tabela porównawcza członkostwa w grupie zabezpieczeń, która ma dostęp do strony.

Dla każdego ładowania strony należy sprawdzić, czy tabela PageSecurityGroups dla określonej strony zawierała dostęp do grupy, którą posiadał użytkownik.

Oczywiście może to być coś więcej, np. Przypisanie strony konkretnemu użytkownikowi, ale można ją ekstrapolować w razie potrzeby.

+0

Wow, jesteście niesamowici, że tak szybko udzieliliście wartościowych odpowiedzi. –

Powiązane problemy