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}