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.
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.
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.