2.7. Prawa dostępu

2.7.1. Idea

LMS ma możliwość zdefiniowania do 256 reguł dostępu do systemu. Każda z nich może zabraniać, bądź pozwalać na dostęp do konkretnych modułów. Każdemu użytkownikowi można przydzielić dowolną kombinację reguł dostępu.

Domyślnie zdefiniowana jest następująca lista reguł dostępu:

Niektóre z nich zezwalają na dostęp do modułów oraz dwie zabraniają. Moduły do których użytkownik ma zawsze dostęp to: welcome, copyrights, logout, chpasswd (przy czym chpasswd umożliwia tylko zmianę własnego hasła), dostęp do reszty jest zdefiniowany regułami.

Notatka

Jeśli nie ustawimy użytkownikowi żadnej reguły dostępu, to LMS domyślnie przydzieli mu regułkę 0, czyli pełen dostęp.

2.7.2. Jak to działa?

Decyzja czy użytkownik ma prawo dostępu do modułu czy nie przebiega następująco:

- najpierw sprawdzana jest lista modułów, do których zawsze ma się dostęp,
- potem następuje sprawdzenie czy moduł pasuje do reguł w poszczególnych poziomach, do których użytkownik ma dostęp,
- na końcu podejmowana jest decyzja czy użytkownik ma uprawnienia by do modułu się dobrać. Jeżeli moduł się załapał na którykolwiek poziom, który zabrania dostępu, dostęp zostanie zabroniony nawet jeżeli użytkownik ma ustawiony poziom, który pozwala na dostęp do modułu (np. ktoś ma pełny dostęp oraz brak dostępu do modułu dodawania komputerów, nie będzie on mógł się odwołać do tego modułu). Jeżeli moduł pasuje do poziomu, który pozwala na dostęp do danego modułu LMS zezwala na dalszą pracę. Jeżeli natomiast moduł się nie "załapał" na żaden poziom również zostanie mu wyświetlony komunikat o braku dostępu.

2.7.3. Reguły dostępu definiowane przez użytkownika

Zaawansowani użytkownicy mają możliwość zdefiniowania dodatkowych dowolnych reguł dostępu lub przedefiniowania istniejących. W tym celu należy utworzyć skrypt PHP na wzór lib/accesstable.php i umieścić go w katalogu lib LMS-a. Nazwę pliku podajemy w opcji custom_accesstable sekcji [phpui].

W ten sposób można zdefiniować własne reguły zezwalające lub zabraniające dostępu do dowolnych modułów. Moduł to nazwa pliku PHP z katalogu modules, którą w regułach dostępu podajemy bez rozszerzenia. Dla przykładu, można zdefiniować uprawnienie do odczytu faktur (np. na potrzeby skryptu lms-sendinvoices) w następujący sposób:

<?php
$access['table'][100]['name']      = 'odczyt faktur';
$access['table'][100]['allow_reg'] = '^invoice$';
?>