package fr.itldev.koya.action.notification; import java.util.List; import org.alfresco.repo.action.executer.ActionExecuterAbstractBase; import org.alfresco.service.cmr.action.Action; import org.alfresco.service.cmr.action.ParameterDefinition; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.security.AuthenticationService; import org.apache.log4j.Logger; import fr.itldev.koya.alfservice.KoyaActivityPoster; import fr.itldev.koya.alfservice.KoyaNodeService; import fr.itldev.koya.alfservice.UserService; import fr.itldev.koya.alfservice.security.SpaceAclService; import fr.itldev.koya.exception.KoyaServiceException; import fr.itldev.koya.model.impl.Company; import fr.itldev.koya.model.impl.Dossier; import fr.itldev.koya.model.impl.Space; import fr.itldev.koya.model.impl.User; /** * Post share activities on defined company all availables dossiers after * validating invitation */ public class AfterValidateInvitePostActivityActionExecuter extends ActionExecuterAbstractBase { private final Logger logger = Logger.getLogger(this.getClass()); public static final String NAME = "afterValidateInvitePostActivity"; protected KoyaNodeService koyaNodeService; protected UserService userService; protected KoyaActivityPoster koyaActivityPoster; protected AuthenticationService authenticationService; protected SpaceAclService spaceAclService; public void setKoyaNodeService(KoyaNodeService koyaNodeService) { this.koyaNodeService = koyaNodeService; } public void setUserService(UserService userService) { this.userService = userService; } public void setKoyaActivityPoster(KoyaActivityPoster koyaActivityPoster) { this.koyaActivityPoster = koyaActivityPoster; } public void setAuthenticationService( AuthenticationService authenticationService) { this.authenticationService = authenticationService; } public void setSpaceAclService(SpaceAclService spaceAclService) { this.spaceAclService = spaceAclService; } @Override protected void executeImpl(Action action, final NodeRef actionedUponNodeRef) { try { Company c = koyaNodeService.getKoyaNode(actionedUponNodeRef, Company.class); User user = userService.getUserByUsername(authenticationService .getCurrentUserName()); // list user shares to post space shared activity for (Space space : spaceAclService.getKoyaUserSpaces(user, c, Dossier.class)) { koyaActivityPoster.postSpaceShared(user, "", space); // inviter is ommited } } catch (KoyaServiceException ex) { logger.error("Error while posting shared activity " + ex.toString()); } } @Override protected void addParameterDefinitions(List<ParameterDefinition> paramList) { } }