WstępDezaktywacja 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/**
* 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 DeactivationTworzenie obiektu odbywa się następująco: Deactivation deactivation = Deactivation.create( userNameToDeactivate ); |
Utworzony obiekt posiada uzupełnione następujące informacje: użytkownik dezaktywowany: User userToDeactivate = deactivation.getUser(); |
lista wszystkich procesów, ról i zadań w formie drzewiastej: 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ń: List<User> defaultUsers = deactivation.getDefaultUsers(); |
Mając obiekt deactivation należy w nim ustawić następujące parametry: //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. //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.
|