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}