Wstęp
Dezaktywacja pozwala przede wszystkim na przepisanie wszystkich obecnych oraz możliwych przyszłych zadań użytkownika do innych, wybranych użytkowników w systemie. Dodatkowo przepisane zostają zastępstwa, widoki, raporty oraz powiadomienia użytkownika.
Usunięcie użytkownika z systemu musi zawsze być poprzedzone jego dezaktywacją.
API pozwalające na dezaktywację użytkownika udostępnia serwis .
Dostępne metody
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
/** * Dezaktywuje użytkownika. Wszystkie widoki, zastępstwa, powiadomienia, raporty i otwarte zadania oraz możliwe * przyszłe zadania użytkownika zostaną przepisane do admina. * * @param userName Login użytkownika * @author Paweł Rosolak 16 paź 2013 */ void deactivateUser( String userName ); /** * Dezaktywuje użytkownika. * * @param deactivation Obiekt zawierający wszystkie informacje niezbędne do dezaktywacji użytkownika. * @author Rafał Nowacki 05-12-2014 */ void deactivateUser( Deactivation deactivation ); |
Pierwsza metoda wykonuje dezaktywację i domyślnie wszystko przekazywane jest do użytkownika o loginie 'admin'. Druga metoda pozwala na konfigurację wszystkich przypisań za pomocą obiektu
Obiekt Deactivation
Tworzenie obiektu odbywa się następująco:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
Deactivation deactivation = Deactivation.create( userNameToDeactivate ); |
Utworzony obiekt posiada uzupełnione następujące informacje:
użytkownik dezaktywowany:
Code Block theme Eclipse language java linenumbers true User userToDeactivate = deactivation.getUser();
lista wszystkich procesów, ról i zadań w formie drzewiastej:
Code Block theme Eclipse language java linenumbers true List<DeactivationProcess> processes = deactivation.getProcesses(); for(DeactivationProcess process : processes) { List<DeactivationParticipant> participants = process.getParticipants(); for ( DeactivationParticipant participant : participants ) { List<DeactivationActivity> activities = participant.getActivities(); } }
lista domyślnych użytkowników, pobranych z pliku konfiguracyjnego z parametru EmptyTaskUserName. Użytkownicy ci są wykorzystywani do przypisywania zadań, które nie mają określonych przypisań:
Code Block theme Eclipse language java linenumbers true List<User> defaultUsers = deactivation.getDefaultUsers();
Mając obiekt deactivation należy w nim ustawić następujące parametry:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
//Ustawia użytkownika, któremu zostaną przepisane zastępstwa. deactivation.setSubstitutionUser( substitutionUser ); //Ustawia użytkownika, któremu zostaną przepisane widoki. deactivation.setViewUser( viewUser ); //Ustawia użytkownika, któremu zostaną przepisane raporty. deactivation.setReportUser( reportUser ); //Ustawia użytkownika, któremu zostaną przepisane powiadomienia. deactivation.setNotificationUser( notificationUser ); |
Ostatnią rzeczą, jaką należy zrobić, jest określenie do jakich użytkowników mają trafić istniejące instancje zadań użytkownika oraz możliwe przyszłe zadania. W przypadku istniejących instancji zadań wymagane jest, aby ustawić przypisania dla tych definicji zadań. Pozostałe zadania nie muszą być przypisywane. W takim wypadku zostaną do nich przypisani domyślni użytkownicy zdefiniowani w pliku konfiguracyjnym z parametru EmptyTaskUserName.
Przypisanie zadań może nastąpić z następujących poziomów:
- obiekt dezaktywacji - przypisania zostaną ustawione dla wszystkich zadań,
- poziom procesu - przypisania zostaną ustawione dla wszystkich zadań z procesu,
- poziom roli - przypisania zostaną ustawione dla wszystkich zadań z roli,
- poziom zadania - przypisanie zostanie ustawione tylko dla tego zadania.
Przypisywać zadania możemy zarówno do pojedynczych użytkowników oraz do grup użytkowników.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
//przypisanie użytkowników do wszystkich zadań deactivation.setUsers( users ); //przypisanie grup użytkowników do wszystkich zadań deactivation.setGroups( groups ); List<DeactivationProcess> processes = deactivation.getProcesses(); for(DeactivationProcess process : processes) { //przypisanie użytkowników do wszystkich zadań z procesu process.setUsers( users ); //przypisanie grup użytkowników do wszystkich zadań z procesu process.setGroups( groups ); List<DeactivationParticipant> participants = process.getParticipants(); for ( DeactivationParticipant participant : participants ) { //przypisanie użytkowników do wszystkich zadań z roli participant.setUsers( users ); //przypisanie grup użytkowników do wszystkich zadań z roli participant.setGroups( groups ); List<DeactivationActivity> activities = participant.getActivities(); for( DeactivationActivity activity : activities ) { if( activity.isAssigned() == true ) { //obowiązkowo należy przypisać użytkownika, bądź grupę użytkowników do tego zadania } //przypisanie użytkowników do zadania activity.setUsers( users ); //przypisanie grup użytkowników do zadania activity.setGroups( groups ); //z poziomu zadania można również dodawać użytkownika, bądź grupę pojedynczo activity.addUser( user ); activity.addGroup( group ); } } } |
Walidacja
- dezaktywowany użytkownik musi istnieć,
- dezaktywowany użytkownik musi być aktywny (czyli nie może być już wcześniej zdezaktywowany),
- użytkownik, któremu zostaną przypisane zastępstwa musi być ustawiony oraz nie może być nim użytkownik, którego dotyczy dezaktywacja,
- użytkownik, któremu zostaną przypisane widoki musi być ustawiony oraz nie może być nim użytkownik, którego dotyczy dezaktywacja,
- użytkownik, któremu zostaną przypisane raporty musi być ustawiony oraz nie może być nim użytkownik, którego dotyczy dezaktywacja,
- użytkownik, któremu zostaną przypisane powiadomienia musi być ustawiony oraz nie może być nim użytkownik, którego dotyczy dezaktywacja,
- zadania, których instancje posiada dezaktywowany użytkownik, muszą mieć przypisanych użytkowników lub grupy, w przypadku przypisania użytkownika dezaktywowanego, nie jest on brany pod uwagę.
Operacje wykonywane podczas dezaktywacji użytkownika
- zapisanie przekierowań zadań z użytkownika dezaktywowanego do innych użytkowników, bądź grup, w przypadku możliwych przyszłych zadań, które mogłyby trafić do już zdezaktywowanego użytkownika,
- przepisanie instancji zadań zdezaktywowanego użytkownika do zdefiniowanych użytkowników,
- zastępstwom, w których dezaktywowany użytkownik jest zastępcą zostaje zmieniony zastępca na zdefiniowanego użytkownika,
- zastępstwa, w których dezaktywowany użytkownik jest zastępowanym zostają usunięte,
- widoki zdezaktywowanego użytkownika zostają przepisane do zdefiniowanego użytkownika,
- udostępnienia widoków zdezaktywowanemu użytkownikowi zostają usunięte,
- raporty zdezaktywowanego użytkownika zostają przepisane do zdefiniowanego użytkownika,
- udostępnienia raportów zdezaktywowanemu użytkownikowi zostają usunięte,
- powiadomienia zdezaktywowanego użytkownika zostają przepisane do zdefiniowanego użytkownika,
- odłączenie zdezaktywowanego użytkownika od stanowisk,
- udostępnienia kalendarza zdezaktywowanemu użytkownikowi zostają usunięte,
- uprawnienia nadane zdezaktywowanemu użytkownikowi zostają usunięte,
- ustawienia konta zdezaktywowanego użytkownika zostają usunięte,
- zdefiniowany widok dokumentów użytkownika zostaje usunięty,
- usunięcie zdezaktywowanego użytkownika ze wszystkich grup,
- ustawienia użytkownika jako nieaktywnego.