@Override public boolean storePluginToBeActivated(String id, boolean activate) { Set<String> active = getActivePlugins(); if (activate == true) { active.add(id); } else { active.remove(id); } String sval = StringUtils.join(active, ","); ConfigurationDO configuration = configurationDao.getEntry(ConfigurationParam.PLUGIN_ACTIVATED); if (configuration == null) { configuration = new ConfigurationDO(); ConfigurationParam param = ConfigurationParam.PLUGIN_ACTIVATED; configuration.setParameter(param.getKey()); configuration.setConfigurationType(param.getType()); configuration.setGlobal(param.isGlobal()); } configuration.setStringValue(sval); configurationDao.saveOrUpdate(configuration); GlobalConfiguration.getInstance().forceReload(); return false; }
/** * Force reload of the Configuration cache. * * @see org.projectforge.framework.persistence.api.BaseDao#afterSaveOrModify(ExtendedBaseDO) * @see AbstractConfiguration#setExpired() */ @Override protected void afterSaveOrModify(final ConfigurationDO obj) { if (obj.getParameter().equals(ConfigurationParam.MULTI_TENANCY_ENABLED.getKey()) && obj.getBooleanValue() == true) { // Enable current logged in user as super admin user. final Integer adminUserId = ThreadLocalUserContext.getUserId(); final PFUserDO adminUser = userDao.getById(adminUserId); log.info("Enabling current user as super admin (for administer tenants) because he has enabled multi-tenancy: " + adminUser.getDisplayUsername()); adminUser.setSuperAdmin(true); userDao.update(adminUser); } if (obj.getGlobal() == true) { GlobalConfiguration.getInstance().setExpired(); } else { final TenantDO tenant = obj.getTenant(); final TenantRegistry tenantRegistry = TenantRegistryMap.getInstance().getTenantRegistry(tenant); tenantRegistry.getConfiguration().setExpired(); } }