Rozdział 2. Wtyczki (pluginy)

Spis treści

API
Kompatybilność wersji
Inicjalizacja
Konfiguracja
Wykonywanie
Cofanie zmian (rollback)

Cała siła i funkcjonalność AddUser-NG zawarta jest w mechanizmie wtyczek. Każda z nich ma dostęp do API programu oraz posiada określone metody z jakich korzysta AddUser-NG przy wykonywaniu plugina.

API

Każda z metod: configure, execute i rollback otrzymuje jako pierwszy argument referencję do API dostępnego dla wtyczki. Poniżej znajduje się jego struktura i opis.

API => {
    %plugins_options => {
        %keywords => {
            main.login,
            main.group
        },
        verbose,
        login
        documentation_dir,
        GroupConfig (Config::IniFiles),
        UI,
    },
    %opts
            
plugins_options{keywords}{main.group}

Nazwa grupy z konfiguracji AddUser-NG podstawie której ma być utworzony nowy użytkownik.

plugins_options{keywords}{main.login}

Login użytkownika.

plugins_options{verbose}

Czy uruchomiono AddUser-NG parametrem --verbose. Innymi słowy czy AddUser-NG ma wypisywać nadmiarowe, zazwyczaj nie potrzebne, informacje.

plugins_options{login}

Login użytkownika. To samo co plugins_options{keywords}{main.login}

plugins_options{documentation_dir}

Katalog, w których przechowywana jest dokumentacja wszystkich wtyczek.

plugins_options{GroupConfig}

Referencja do obiektu zawierającego odczytaną konfigurację grupy, na podstawie której ma być tworzony nowy użytkownik. Więcej o metodach tego obiektu dowiesz się z perldoc Config::IniFiles

plugins_options{UI}

Referencja do używanego interfejsu użytkownika. Przy wykorzystaniu tego obiektu odbywa się cała interacja wtyczki z użytkownikiem. W rozdziale Rozdział 1, UI -- Interfejs Użytkownika znajdziesz więcej informacji na ten temat.

opts

Opcje konfiguracyjne wtyczki. Przy inicjalizacji powinny zostać ustawione na domyślne wartości, następnie podczas konfiguracji na wartości, które zostaną użyte podczas wykonania wtyczki.

NAME

Nazwa wtyczki.

APIVERSION

Wersja API z jaką zgodna jest wtyczka.

Kompatybilność wersji

Przed fazą konfiguracji wtyczek sprawdzana jest ich kompatybilność z AddUser-NG. W przypadku gdy który kolwiek plugin okaże się niezgodny działanie całego Skryptu jest przerywane. Można to zrobić bezpiecznie, gdyż do tego momentu żadna wtyczka nie powinna była wprowadzić jakichkolwiek modyfikacji do systemu.

Wersja API wtyczki jest dostępna jako atrybut APIVERSION jej obiektu. Natomiast wersja API AddUser-NG jest zapisana w zmiennej globalnej $APIVERSION.

Numery wersji podane są w postaci liczby szestnastkowej.