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

/**
 * 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:

 Deactivation deactivation = Deactivation.create( userNameToDeactivate );

Utworzony obiekt posiada uzupełnione następujące informacje:

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:

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

Operacje wykonywane podczas dezaktywacji użytkownika