added a condition to check for the correct feature mode

merged mod mail logging back into the mod mail feature and set it up as a mode
This commit is contained in:
Sheldan
2020-05-16 22:40:11 +02:00
parent b0ab88d143
commit 3bb6620cbe
17 changed files with 129 additions and 62 deletions

View File

@@ -49,12 +49,16 @@ public class FeatureFlagListener implements ServerConfigListener {
featureFlagService.getAllFeatureConfigs().forEach((featureFlagKey) -> {
String featureKey = featureFlagKey.getFeature().getKey();
AFeature feature = featureManagementService.getFeature(featureKey);
FeaturePropertiesConfig featurePropertiesConfig = featureConfigLoader.getFeatures().get(featureKey);
if(service.getFeatureFlag(feature, server.getId()) == null) {
service.createFeatureFlag(feature, server.getId(), featurePropertiesConfig.getEnabled());
}
if(featurePropertiesConfig.getDefaultMode() != null && !featureModeManagementService.featureModeSet(feature, server)) {
featureModeService.createMode(feature, server, featurePropertiesConfig.getDefaultMode());
if(featureConfigLoader.getFeatures().containsKey(featureKey)) {
FeaturePropertiesConfig featurePropertiesConfig = featureConfigLoader.getFeatures().get(featureKey);
if(service.getFeatureFlag(feature, server.getId()) == null) {
service.createFeatureFlag(feature, server.getId(), featurePropertiesConfig.getEnabled());
}
if(featurePropertiesConfig.getDefaultMode() != null && !featureModeManagementService.featureModeSet(feature, server)) {
featureModeService.createMode(feature, server, featurePropertiesConfig.getDefaultMode());
}
} else {
log.warn("Feature {} was found as interface, but not in the properties configuration. It will not be setup.", featureKey);
}
});
}

View File

@@ -117,5 +117,17 @@ public class FeatureModeServiceBean implements FeatureModeService {
return featureModeManagementService.createMode(featureFlag, mode);
}
@Override
public AFeatureMode getFeatureMode(FeatureEnum featureEnum, AServer server) {
AFeature feature = featureManagementService.getFeature(featureEnum.getKey());
return getFeatureMode(feature, server);
}
@Override
public AFeatureMode getFeatureMode(AFeature feature, AServer server) {
AFeatureFlag featureFlag = featureFlagManagementService.getFeatureFlag(feature, server);
return featureModeManagementService.getModeForFeature(featureFlag);
}
}

View File

@@ -0,0 +1 @@
<#assign featureName><#include "${featureConfig.feature.key}_feature"></#assign><#assign featureKey>${featureConfig.feature.key}</#assign><#assign requiredModes><#list command.featureModeLimitations as mode>`${mode.key}`<sep>, </#list></#assign><#include "feature_mode_not_correct_text">