001package org.deepamehta.plugins.signup.migrations; 002 003import de.deepamehta.core.Topic; 004import de.deepamehta.core.TopicType; 005import de.deepamehta.core.model.AssociationDefinitionModel; 006import de.deepamehta.core.model.SimpleValue; 007import de.deepamehta.core.service.Inject; 008import de.deepamehta.core.service.Migration; 009import de.deepamehta.plugins.accesscontrol.AccessControlService; 010import de.deepamehta.plugins.workspaces.WorkspacesService; 011 012import java.util.logging.Logger; 013 014/** 015 * Extends the Sign-up Plugin Configuration about a flag to enable/disable the token/mail based confirmation workflow. 016 */ 017public class Migration4 extends Migration { 018 019 private Logger logger = Logger.getLogger(getClass().getName()); 020 021 @Inject 022 private WorkspacesService wsService; 023 024 @Override 025 public void run() { 026 027 logger.info("### Extending Sign-up Configuration about \"Email Confirmation Required\" option ###"); 028 029 Topic systemWorkspace = wsService.getWorkspace(AccessControlService.SYSTEM_WORKSPACE_URI); 030 TopicType tokenConfirmationType = dms.getTopicType("org.deepamehta.signup.config_email_confirmation"); 031 wsService.assignTypeToWorkspace(tokenConfirmationType, systemWorkspace.getId()); 032 033 TopicType configComposite = dms.getTopicType("org.deepamehta.signup.configuration"); 034 configComposite.addAssocDef(new AssociationDefinitionModel( 035 "dm4.core.composition_def", "org.deepamehta.signup.configuration", 036 "org.deepamehta.signup.config_email_confirmation", "dm4.core.one", "dm4.core.one")); 037 038 Topic standardConfig = dms.getTopic("uri", new SimpleValue("org.deepamehta.signup.default_configuration")); 039 standardConfig.loadChildTopics(); 040 standardConfig.getChildTopics().set("org.deepamehta.signup.config_email_confirmation", false); 041 042 logger.info("### Setup new Sign-up Config Default: No Email confirmation required during account creation"); 043 044 } 045 046}