001package de.deepamehta.plugins.accesscontrol.migrations;
002
003import de.deepamehta.plugins.config.ConfigService;
004
005import de.deepamehta.core.RelatedTopic;
006import de.deepamehta.core.Topic;
007import de.deepamehta.core.service.Inject;
008import de.deepamehta.core.service.Migration;
009import de.deepamehta.core.service.ResultList;
010
011import java.util.logging.Logger;
012
013
014
015/**
016 * Adds "Login enabled" config topic to each username.
017 * Runs only in UPDATE mode.
018 * <p>
019 * Note: when CLEAN_INSTALLing the admin user already got its config topics
020 * as the Config service is already in charge.
021 * <p>
022 * Part of DM 4.7
023 */
024public class Migration11 extends Migration {
025
026    // ---------------------------------------------------------------------------------------------- Instance Variables
027
028    @Inject
029    private ConfigService configService;
030
031    private Logger logger = Logger.getLogger(getClass().getName());
032
033    // -------------------------------------------------------------------------------------------------- Public Methods
034
035    @Override
036    public void run() {
037        ResultList<RelatedTopic> usernames = dms.getTopics("dm4.accesscontrol.username", 0);
038        logger.info("########## Adding \"dm4.accesscontrol.login_enabled\" config topic to " + usernames.getSize() +
039            " usernames");
040        for (Topic username : usernames) {
041            configService.createConfigTopic("dm4.accesscontrol.login_enabled", username);
042        }
043    }
044}