Commit 9e7fd751 authored by Noel Alonso's avatar Noel Alonso
Browse files

Añade control de usuario al clonar una settings

Solo se puede clonar una settings si es el propietario o está compartida
parent 6c98c389
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import es.redmic.commandslib.usersettings.commands.SaveSettingsCommand;
import es.redmic.commandslib.usersettings.commands.UpdateSettingsAccessedDateCommand;
import es.redmic.commandslib.usersettings.commands.UpdateSettingsCommand;
import es.redmic.commandslib.usersettings.statestore.SettingsStateStore;
import es.redmic.exception.settings.SettingsChangeForbiddenException;
import es.redmic.restlib.config.UserService;
import es.redmic.usersettingslib.dto.SettingsDTO;
import es.redmic.usersettingslib.events.SettingsEventTypes;
@@ -144,8 +145,21 @@ public class PersistenceAggregate extends Aggregate {
			return null;
		}

		String settingsId = cmd.getPersistence().getSettingsId();

		Event state = getStateFromHistory(settingsId);

		loadFromHistory(state);

		checkState(settingsId, state.getType());

		reset();

		this.setAggregateId(id);

		if (!(state.getUserId().equals(userId) || ((SettingsEvent) state).getSettings().getShared()))
			throw new SettingsChangeForbiddenException();

		CloneSettingsEvent evt = new CloneSettingsEvent(cmd.getPersistence());
		evt.setAggregateId(id);
		evt.setVersion(1);