----------------------------------------------------------------------
                    LAN Managment System 1.1.2b
----------------------------------------------------------------------
                      Opis praw dostpu do LMS
----------------------------------------------------------------------
Od  20.04.2003  LMS  ma  moliwo  definiowania  poziomw  dostpu do
systemu.  W  tym  tekcie  postaram  si  opisa  jak  funkcjonuje  to
rozwizanie.

Dziki  zastosowaniu  kolumny  `rights`  w  tabeli  `admins` uniknem
koniecznoci  modyfikacji  bazy  danych.  W  LMS mona zdefiniowa 256
regu dostpu. Kada z nich moe zabrania, bd pozwala,na dostp do
konkretnych moduw. Przypisywanie tych poziomw dostpu polega nie na
ustawianiu  konkretnego  poziomu,  a  ustawianiu czy admin ma prawo do
danego  poziomu  czy nie (po polsku: moemy przypisa adminowi dowoln
kombinacj poziomw a nie tylko jeden).

Aktualnie  zdefiniowanych  jest  osiem regu dostpu. 
Siedem z nich s to reguy zezwalajce na dostp do moduw oraz jedna
zabraniajca.

Decyzja  czy  uytkownik  ma prawo dostpu do moduu czy nie przebiega
nastpujco:

-  najpierw  sprawdzana  jest  lista  moduw do ktrych zawsze ma si
dostp  (aktualnie  welcome,  copyrights,  logout, chpasswd, przy czym
chpasswd umoliwia tylko zmian wasnego hasa).

-  potem  s  sprawdzamy  czy  modu  pasuje do regu w poszczeglnych
poziomach do ktrych administrator ma dostp

-  na  kocu podejmowana jest decyzja czy uytkownik ma uprawnienia by
do  moduu si dobra. Jeeli modu si zaapa na ktrkolwiek poziom
ktry   zabrania  dostpu  dostp  zostanie  zabroniony  nawet  jeeli
administrator  ma  ustawiony  poziom ktry pozwala na dostp do moduu
(np.  kto  ma  peny  dostp oraz brak dostpu do moduu od dodawania
komputerw,  nie  bdzie  on  mg si odwoa do tego moduu). Jeeli
modu  pasuje  do poziomu ktry pozwala na dostp do danego moduu LMS
zezwala  na  dalsz prac. Jeeli natomiast modu si nie "zaapa" na
aden  poziom  rwnierz  zostanie  mu  wywietlony  komunikat  o braku
dostpu.

Dodatkow  komplikacj  tego  rozwizania jest, i jeeli nie ustawimy
adnego   poziomu   dostpu   administorowi,  zostanie  mu  przypisany
automatycznie  poziom  dostpu  o  numerze  0  (czyli aktualnie 'peen
dostp').  Jest  to  zabezpieczenie  np. przed prac z LMS pod wpywem
alkoholu.

A jak to jest zapisywane?

W  sumie  tutaj  to  wytumacz  bardziej  dla developerw, gdy osoby
korzystajce z LMS raczej nie bd zainteresowane.

Oryginalnie poziomy dostpu miay by definiowane poprzez rne litery
Byo  to  zaoenie  z  czasw LMS-0.4, lecz nigdy nie wykorzystane. Z
racji  tego  e  weszo  to  do 1.0 dugo si gowiem jak wykorzysta
64-znakowego  stringa. Ot w kolumnie rights jest poprostu 64-znakowa
(256-bitowa)  liczba  hexadecymalna.  Wic  kady jej znak moe opisa
maksymalnie  cztery bity kombinacji (4*64 = 256 - std ilo moliwych
poziomw).  Tak  wic  wczenie  jakiego  poziomu  dostpu  powoduje
ustawienie  w  tej  liczbie  odpowiedniego  bitu.  I tak jeeli "peen
dostp"  ma pozycj 0 w lib/accesstable.php, zostanie ustawiony bit 0,
czyli  bdzie  to liczba 1. Wic poziomy mog mie numery od 0 do 255.
Nie jest to finalne ograniczenie. Stosujc wicej liter i znakw mona
rozszerzy ilo moliwych kombinacji do przynajmniej 6 bitw na znak,
co da nam 384 kombinacje.

$Id: accessrights.txt,v 1.5 2003/06/23 13:42:28 lukasz Exp $
