001package de.kiezatlas.migrations; 002 003import de.deepamehta.core.service.Inject; 004import de.deepamehta.core.service.Migration; 005import de.deepamehta.core.TopicType; 006import de.deepamehta.core.Topic; 007import de.deepamehta.plugins.accesscontrol.AccessControlService; 008import de.deepamehta.plugins.workspaces.WorkspacesService; 009import static de.kiezatlas.KiezatlasService.KIEZATLAS_WORKSPACE_NAME; 010import static de.kiezatlas.KiezatlasService.KIEZATLAS_WORKSPACE_SHARING_MODE; 011import static de.kiezatlas.KiezatlasService.KIEZATLAS_WORKSPACE_URI; 012 013/** 014 * Introduces the Public "Kiezatlas" Workspace (as of 4.7). 015 * Assigns all our topic types to the "Kiezatlas" workspace so members can edit these type definitions 016 * Home of all Kiezatlas related Topic Types. 017 * Also home of all Facet, Category Types and Categories introduced with dm4-kiezatlas-etl. 018 * */ 019 020public class Migration3 extends Migration { 021 022 @Inject 023 private WorkspacesService workspaceService; 024 025 @Inject 026 private AccessControlService accessControlService; 027 028 @Override 029 public void run() { 030 Topic kiezatlas = workspaceService.createWorkspace(KIEZATLAS_WORKSPACE_NAME, KIEZATLAS_WORKSPACE_URI, 031 KIEZATLAS_WORKSPACE_SHARING_MODE); 032 accessControlService.setWorkspaceOwner(kiezatlas, "admin"); 033 TopicType geoObject = dms.getTopicType("ka2.geo_object"); 034 TopicType geoObjectName = dms.getTopicType("ka2.geo_object.name"); 035 TopicType website = dms.getTopicType("ka2.website"); 036 TopicType websiteTitle = dms.getTopicType("ka2.website.title"); 037 workspaceService.assignTypeToWorkspace(geoObject, kiezatlas.getId()); 038 workspaceService.assignTypeToWorkspace(geoObjectName, kiezatlas.getId()); 039 workspaceService.assignTypeToWorkspace(website, kiezatlas.getId()); 040 workspaceService.assignTypeToWorkspace(websiteTitle, kiezatlas.getId()); 041 } 042}