mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-07 22:15:45 +01:00
rename defaultNamespaceStrategy to namespaceStrategy
This commit is contained in:
@@ -184,8 +184,8 @@ public class ScmConfiguration implements Configuration {
|
|||||||
@XmlElement(name = "xsrf-protection")
|
@XmlElement(name = "xsrf-protection")
|
||||||
private boolean enabledXsrfProtection = true;
|
private boolean enabledXsrfProtection = true;
|
||||||
|
|
||||||
@XmlElement(name = "default-namespace-strategy")
|
@XmlElement(name = "namespace-strategy")
|
||||||
private String defaultNamespaceStrategy = "UsernameNamespaceStrategy";
|
private String namespaceStrategy = "UsernameNamespaceStrategy";
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -227,7 +227,7 @@ public class ScmConfiguration implements Configuration {
|
|||||||
this.loginAttemptLimit = other.loginAttemptLimit;
|
this.loginAttemptLimit = other.loginAttemptLimit;
|
||||||
this.loginAttemptLimitTimeout = other.loginAttemptLimitTimeout;
|
this.loginAttemptLimitTimeout = other.loginAttemptLimitTimeout;
|
||||||
this.enabledXsrfProtection = other.enabledXsrfProtection;
|
this.enabledXsrfProtection = other.enabledXsrfProtection;
|
||||||
this.defaultNamespaceStrategy = other.defaultNamespaceStrategy;
|
this.namespaceStrategy = other.namespaceStrategy;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<String> getAdminGroups() {
|
public Set<String> getAdminGroups() {
|
||||||
@@ -366,8 +366,8 @@ public class ScmConfiguration implements Configuration {
|
|||||||
return loginAttemptLimit > 0;
|
return loginAttemptLimit > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDefaultNamespaceStrategy() {
|
public String getNamespaceStrategy() {
|
||||||
return defaultNamespaceStrategy;
|
return namespaceStrategy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -501,8 +501,8 @@ public class ScmConfiguration implements Configuration {
|
|||||||
this.enabledXsrfProtection = enabledXsrfProtection;
|
this.enabledXsrfProtection = enabledXsrfProtection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDefaultNamespaceStrategy(String defaultNamespaceStrategy) {
|
public void setNamespaceStrategy(String namespaceStrategy) {
|
||||||
this.defaultNamespaceStrategy = defaultNamespaceStrategy;
|
this.namespaceStrategy = namespaceStrategy;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -22,6 +22,6 @@ export type Config = {
|
|||||||
pluginUrl: string,
|
pluginUrl: string,
|
||||||
loginAttemptLimitTimeout: number,
|
loginAttemptLimitTimeout: number,
|
||||||
enabledXsrfProtection: boolean,
|
enabledXsrfProtection: boolean,
|
||||||
defaultNamespaceStrategy: string,
|
namespaceStrategy: string,
|
||||||
_links: Links
|
_links: Links
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
"skip-failed-authenticators": "Fehlgeschlagene Authentifizierer überspringen",
|
"skip-failed-authenticators": "Fehlgeschlagene Authentifizierer überspringen",
|
||||||
"plugin-url": "Plugin URL",
|
"plugin-url": "Plugin URL",
|
||||||
"enabled-xsrf-protection": "XSRF Protection aktivieren",
|
"enabled-xsrf-protection": "XSRF Protection aktivieren",
|
||||||
"default-namespace-strategy": "Default Namespace Strategie"
|
"namespace-strategy": "Namespace Strategie"
|
||||||
},
|
},
|
||||||
"validation": {
|
"validation": {
|
||||||
"date-format-invalid": "Das Datumsformat ist ungültig",
|
"date-format-invalid": "Das Datumsformat ist ungültig",
|
||||||
@@ -87,6 +87,6 @@
|
|||||||
"proxyUserHelpText": "Der Benutzername für die Proxy Server Anmeldung.",
|
"proxyUserHelpText": "Der Benutzername für die Proxy Server Anmeldung.",
|
||||||
"proxyExcludesHelpText": "Glob patterns für Hostnamen, die von den Proxy-Einstellungen ausgeschlossen werden sollen.",
|
"proxyExcludesHelpText": "Glob patterns für Hostnamen, die von den Proxy-Einstellungen ausgeschlossen werden sollen.",
|
||||||
"enableXsrfProtectionHelpText": "Xsrf Cookie Protection aktivieren. Hinweis: Dieses Feature befindet sich noch im Experimentalstatus.",
|
"enableXsrfProtectionHelpText": "Xsrf Cookie Protection aktivieren. Hinweis: Dieses Feature befindet sich noch im Experimentalstatus.",
|
||||||
"defaultNameSpaceStrategyHelpText": "Die Standardstrategie für Namespaces."
|
"nameSpaceStrategyHelpText": "Strategie für Namespaces."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
"skip-failed-authenticators": "Skip Failed Authenticators",
|
"skip-failed-authenticators": "Skip Failed Authenticators",
|
||||||
"plugin-url": "Plugin URL",
|
"plugin-url": "Plugin URL",
|
||||||
"enabled-xsrf-protection": "Enabled XSRF Protection",
|
"enabled-xsrf-protection": "Enabled XSRF Protection",
|
||||||
"default-namespace-strategy": "Default Namespace Strategy"
|
"namespace-strategy": "Namespace Strategy"
|
||||||
},
|
},
|
||||||
"validation": {
|
"validation": {
|
||||||
"date-format-invalid": "The date format is not valid",
|
"date-format-invalid": "The date format is not valid",
|
||||||
@@ -87,6 +87,6 @@
|
|||||||
"proxyUserHelpText": "The username for the proxy server authentication.",
|
"proxyUserHelpText": "The username for the proxy server authentication.",
|
||||||
"proxyExcludesHelpText": "Glob patterns for hostnames, which should be excluded from proxy settings.",
|
"proxyExcludesHelpText": "Glob patterns for hostnames, which should be excluded from proxy settings.",
|
||||||
"enableXsrfProtectionHelpText": "Enable XSRF Cookie Protection. Note: This feature is still experimental.",
|
"enableXsrfProtectionHelpText": "Enable XSRF Cookie Protection. Note: This feature is still experimental.",
|
||||||
"defaultNameSpaceStrategyHelpText": "The default namespace strategy."
|
"nameSpaceStrategyHelpText": "The namespace strategy."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { translate } from "react-i18next";
|
import { translate } from "react-i18next";
|
||||||
import { SubmitButton, Notification } from "@scm-manager/ui-components";
|
import { SubmitButton, Notification } from "@scm-manager/ui-components";
|
||||||
import type { NamespaceStrategies } from "@scm-manager/ui-types";
|
import type { NamespaceStrategies, Config } from "@scm-manager/ui-types";
|
||||||
import type { Config } from "@scm-manager/ui-types";
|
|
||||||
import ProxySettings from "./ProxySettings";
|
import ProxySettings from "./ProxySettings";
|
||||||
import GeneralSettings from "./GeneralSettings";
|
import GeneralSettings from "./GeneralSettings";
|
||||||
import BaseUrlSettings from "./BaseUrlSettings";
|
import BaseUrlSettings from "./BaseUrlSettings";
|
||||||
@@ -57,7 +56,7 @@ class ConfigForm extends React.Component<Props, State> {
|
|||||||
pluginUrl: "",
|
pluginUrl: "",
|
||||||
loginAttemptLimitTimeout: 0,
|
loginAttemptLimitTimeout: 0,
|
||||||
enabledXsrfProtection: true,
|
enabledXsrfProtection: true,
|
||||||
defaultNamespaceStrategy: "",
|
namespaceStrategy: "",
|
||||||
_links: {}
|
_links: {}
|
||||||
},
|
},
|
||||||
showNotification: false,
|
showNotification: false,
|
||||||
@@ -131,7 +130,7 @@ class ConfigForm extends React.Component<Props, State> {
|
|||||||
skipFailedAuthenticators={config.skipFailedAuthenticators}
|
skipFailedAuthenticators={config.skipFailedAuthenticators}
|
||||||
pluginUrl={config.pluginUrl}
|
pluginUrl={config.pluginUrl}
|
||||||
enabledXsrfProtection={config.enabledXsrfProtection}
|
enabledXsrfProtection={config.enabledXsrfProtection}
|
||||||
defaultNamespaceStrategy={config.defaultNamespaceStrategy}
|
namespaceStrategy={config.namespaceStrategy}
|
||||||
onChange={(isValid, changedValue, name) =>
|
onChange={(isValid, changedValue, name) =>
|
||||||
this.onChange(isValid, changedValue, name)
|
this.onChange(isValid, changedValue, name)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// @flow
|
// @flow
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { translate } from "react-i18next";
|
import { translate } from "react-i18next";
|
||||||
import { Checkbox, InputField, Select } from "@scm-manager/ui-components";
|
import { Checkbox, InputField} from "@scm-manager/ui-components";
|
||||||
import type { NamespaceStrategies } from "@scm-manager/ui-types";
|
import type { NamespaceStrategies } from "@scm-manager/ui-types";
|
||||||
import NamespaceStrategySelect from "./NamespaceStrategySelect";
|
import NamespaceStrategySelect from "./NamespaceStrategySelect";
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ type Props = {
|
|||||||
skipFailedAuthenticators: boolean,
|
skipFailedAuthenticators: boolean,
|
||||||
pluginUrl: string,
|
pluginUrl: string,
|
||||||
enabledXsrfProtection: boolean,
|
enabledXsrfProtection: boolean,
|
||||||
defaultNamespaceStrategy: string,
|
namespaceStrategy: string,
|
||||||
namespaceStrategies?: NamespaceStrategies,
|
namespaceStrategies?: NamespaceStrategies,
|
||||||
onChange: (boolean, any, string) => void,
|
onChange: (boolean, any, string) => void,
|
||||||
hasUpdatePermission: boolean,
|
hasUpdatePermission: boolean,
|
||||||
@@ -35,7 +35,7 @@ class GeneralSettings extends React.Component<Props> {
|
|||||||
skipFailedAuthenticators,
|
skipFailedAuthenticators,
|
||||||
pluginUrl,
|
pluginUrl,
|
||||||
enabledXsrfProtection,
|
enabledXsrfProtection,
|
||||||
defaultNamespaceStrategy,
|
namespaceStrategy,
|
||||||
hasUpdatePermission,
|
hasUpdatePermission,
|
||||||
namespaceStrategies
|
namespaceStrategies
|
||||||
} = this.props;
|
} = this.props;
|
||||||
@@ -74,12 +74,12 @@ class GeneralSettings extends React.Component<Props> {
|
|||||||
</div>
|
</div>
|
||||||
<div className="column is-half">
|
<div className="column is-half">
|
||||||
<NamespaceStrategySelect
|
<NamespaceStrategySelect
|
||||||
label={t("general-settings.default-namespace-strategy")}
|
label={t("general-settings.namespace-strategy")}
|
||||||
onChange={this.handleDefaultNamespaceStrategyChange}
|
onChange={this.handleNamespaceStrategyChange}
|
||||||
value={defaultNamespaceStrategy}
|
value={namespaceStrategy}
|
||||||
disabled={!hasUpdatePermission}
|
disabled={!hasUpdatePermission}
|
||||||
namespaceStrategies={namespaceStrategies}
|
namespaceStrategies={namespaceStrategies}
|
||||||
helpText={t("help.defaultNameSpaceStrategyHelpText")}
|
helpText={t("help.nameSpaceStrategyHelpText")}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -153,19 +153,17 @@ class GeneralSettings extends React.Component<Props> {
|
|||||||
handleAnonymousAccessEnabledChange = (value: string) => {
|
handleAnonymousAccessEnabledChange = (value: string) => {
|
||||||
this.props.onChange(true, value, "anonymousAccessEnabled");
|
this.props.onChange(true, value, "anonymousAccessEnabled");
|
||||||
};
|
};
|
||||||
|
|
||||||
handleSkipFailedAuthenticatorsChange = (value: string) => {
|
handleSkipFailedAuthenticatorsChange = (value: string) => {
|
||||||
this.props.onChange(true, value, "skipFailedAuthenticators");
|
this.props.onChange(true, value, "skipFailedAuthenticators");
|
||||||
};
|
};
|
||||||
handlePluginUrlChange = (value: string) => {
|
handlePluginUrlChange = (value: string) => {
|
||||||
this.props.onChange(true, value, "pluginUrl");
|
this.props.onChange(true, value, "pluginUrl");
|
||||||
};
|
};
|
||||||
|
|
||||||
handleEnabledXsrfProtectionChange = (value: boolean) => {
|
handleEnabledXsrfProtectionChange = (value: boolean) => {
|
||||||
this.props.onChange(true, value, "enabledXsrfProtection");
|
this.props.onChange(true, value, "enabledXsrfProtection");
|
||||||
};
|
};
|
||||||
handleDefaultNamespaceStrategyChange = (value: string) => {
|
handleNamespaceStrategyChange = (value: string) => {
|
||||||
this.props.onChange(true, value, "defaultNamespaceStrategy");
|
this.props.onChange(true, value, "namespaceStrategy");
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ const config = {
|
|||||||
"http://plugins.scm-manager.org/scm-plugin-backend/api/{version}/plugins?os={os}&arch={arch}&snapshot=false",
|
"http://plugins.scm-manager.org/scm-plugin-backend/api/{version}/plugins?os={os}&arch={arch}&snapshot=false",
|
||||||
loginAttemptLimitTimeout: 300,
|
loginAttemptLimitTimeout: 300,
|
||||||
enabledXsrfProtection: true,
|
enabledXsrfProtection: true,
|
||||||
defaultNamespaceStrategy: "sonia.scm.repository.DefaultNamespaceStrategy",
|
namespaceStrategy: "UsernameNamespaceStrategy",
|
||||||
_links: {
|
_links: {
|
||||||
self: { href: "http://localhost:8081/api/v2/config" },
|
self: { href: "http://localhost:8081/api/v2/config" },
|
||||||
update: { href: "http://localhost:8081/api/v2/config" }
|
update: { href: "http://localhost:8081/api/v2/config" }
|
||||||
@@ -79,7 +79,7 @@ const configWithNullValues = {
|
|||||||
"http://plugins.scm-manager.org/scm-plugin-backend/api/{version}/plugins?os={os}&arch={arch}&snapshot=false",
|
"http://plugins.scm-manager.org/scm-plugin-backend/api/{version}/plugins?os={os}&arch={arch}&snapshot=false",
|
||||||
loginAttemptLimitTimeout: 300,
|
loginAttemptLimitTimeout: 300,
|
||||||
enabledXsrfProtection: true,
|
enabledXsrfProtection: true,
|
||||||
defaultNamespaceStrategy: "sonia.scm.repository.DefaultNamespaceStrategy",
|
namespaceStrategy: "UsernameNamespaceStrategy",
|
||||||
_links: {
|
_links: {
|
||||||
self: { href: "http://localhost:8081/api/v2/config" },
|
self: { href: "http://localhost:8081/api/v2/config" },
|
||||||
update: { href: "http://localhost:8081/api/v2/config" }
|
update: { href: "http://localhost:8081/api/v2/config" }
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ export default function reducer(
|
|||||||
const config = action.payload;
|
const config = action.payload;
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
current: config.defaultNamespaceStrategy
|
current: config.namespaceStrategy
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return state;
|
return state;
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ describe("namespace strategies reducer", () => {
|
|||||||
const modifyConfigAction = {
|
const modifyConfigAction = {
|
||||||
type: MODIFY_CONFIG_SUCCESS,
|
type: MODIFY_CONFIG_SUCCESS,
|
||||||
payload: {
|
payload: {
|
||||||
defaultNamespaceStrategy: "CustomNamespaceStrategy"
|
namespaceStrategy: "CustomNamespaceStrategy"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const newState = reducer(strategies, modifyConfigAction);
|
const newState = reducer(strategies, modifyConfigAction);
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class ConfigDto extends HalRepresentation {
|
|||||||
private String pluginUrl;
|
private String pluginUrl;
|
||||||
private long loginAttemptLimitTimeout;
|
private long loginAttemptLimitTimeout;
|
||||||
private boolean enabledXsrfProtection;
|
private boolean enabledXsrfProtection;
|
||||||
private String defaultNamespaceStrategy;
|
private String namespaceStrategy;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SuppressWarnings("squid:S1185") // We want to have this method available in this package
|
@SuppressWarnings("squid:S1185") // We want to have this method available in this package
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ public class NamespaceStrategyProvider implements Provider<NamespaceStrategy> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NamespaceStrategy get() {
|
public NamespaceStrategy get() {
|
||||||
String namespaceStrategy = scmConfiguration.getDefaultNamespaceStrategy();
|
String namespaceStrategy = scmConfiguration.getNamespaceStrategy();
|
||||||
|
|
||||||
for (NamespaceStrategy s : this.strategies) {
|
for (NamespaceStrategy s : this.strategies) {
|
||||||
if (s.getClass().getSimpleName().equals(namespaceStrategy)) {
|
if (s.getClass().getSimpleName().equals(namespaceStrategy)) {
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class ConfigDtoToScmConfigurationMapperTest {
|
|||||||
assertEquals("https://plug.ins" , config.getPluginUrl());
|
assertEquals("https://plug.ins" , config.getPluginUrl());
|
||||||
assertEquals(40 , config.getLoginAttemptLimitTimeout());
|
assertEquals(40 , config.getLoginAttemptLimitTimeout());
|
||||||
assertTrue(config.isEnabledXsrfProtection());
|
assertTrue(config.isEnabledXsrfProtection());
|
||||||
assertEquals("username", config.getDefaultNamespaceStrategy());
|
assertEquals("username", config.getNamespaceStrategy());
|
||||||
}
|
}
|
||||||
|
|
||||||
private ConfigDto createDefaultDto() {
|
private ConfigDto createDefaultDto() {
|
||||||
@@ -76,7 +76,7 @@ public class ConfigDtoToScmConfigurationMapperTest {
|
|||||||
configDto.setPluginUrl("https://plug.ins");
|
configDto.setPluginUrl("https://plug.ins");
|
||||||
configDto.setLoginAttemptLimitTimeout(40);
|
configDto.setLoginAttemptLimitTimeout(40);
|
||||||
configDto.setEnabledXsrfProtection(true);
|
configDto.setEnabledXsrfProtection(true);
|
||||||
configDto.setDefaultNamespaceStrategy("username");
|
configDto.setNamespaceStrategy("username");
|
||||||
|
|
||||||
return configDto;
|
return configDto;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class ScmConfigurationToConfigDtoMapperTest {
|
|||||||
assertEquals("pluginurl" , dto.getPluginUrl());
|
assertEquals("pluginurl" , dto.getPluginUrl());
|
||||||
assertEquals(2 , dto.getLoginAttemptLimitTimeout());
|
assertEquals(2 , dto.getLoginAttemptLimitTimeout());
|
||||||
assertTrue(dto.isEnabledXsrfProtection());
|
assertTrue(dto.isEnabledXsrfProtection());
|
||||||
assertEquals("username", dto.getDefaultNamespaceStrategy());
|
assertEquals("username", dto.getNamespaceStrategy());
|
||||||
|
|
||||||
assertEquals(expectedBaseUri.toString(), dto.getLinks().getLinkBy("self").get().getHref());
|
assertEquals(expectedBaseUri.toString(), dto.getLinks().getLinkBy("self").get().getHref());
|
||||||
assertEquals(expectedBaseUri.toString(), dto.getLinks().getLinkBy("update").get().getHref());
|
assertEquals(expectedBaseUri.toString(), dto.getLinks().getLinkBy("update").get().getHref());
|
||||||
@@ -121,7 +121,7 @@ public class ScmConfigurationToConfigDtoMapperTest {
|
|||||||
config.setPluginUrl("pluginurl");
|
config.setPluginUrl("pluginurl");
|
||||||
config.setLoginAttemptLimitTimeout(2);
|
config.setLoginAttemptLimitTimeout(2);
|
||||||
config.setEnabledXsrfProtection(true);
|
config.setEnabledXsrfProtection(true);
|
||||||
config.setDefaultNamespaceStrategy("username");
|
config.setNamespaceStrategy("username");
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class NamespaceStrategyProviderTest {
|
|||||||
Set<NamespaceStrategy> strategies = allStrategiesAsSet();
|
Set<NamespaceStrategy> strategies = allStrategiesAsSet();
|
||||||
|
|
||||||
ScmConfiguration configuration = new ScmConfiguration();
|
ScmConfiguration configuration = new ScmConfiguration();
|
||||||
configuration.setDefaultNamespaceStrategy("Arthur");
|
configuration.setNamespaceStrategy("Arthur");
|
||||||
|
|
||||||
NamespaceStrategyProvider provider = new NamespaceStrategyProvider(strategies, configuration);
|
NamespaceStrategyProvider provider = new NamespaceStrategyProvider(strategies, configuration);
|
||||||
NamespaceStrategy strategy = provider.get();
|
NamespaceStrategy strategy = provider.get();
|
||||||
@@ -30,7 +30,7 @@ class NamespaceStrategyProviderTest {
|
|||||||
Set<NamespaceStrategy> strategies = Collections.emptySet();
|
Set<NamespaceStrategy> strategies = Collections.emptySet();
|
||||||
|
|
||||||
ScmConfiguration configuration = new ScmConfiguration();
|
ScmConfiguration configuration = new ScmConfiguration();
|
||||||
configuration.setDefaultNamespaceStrategy("Arthur");
|
configuration.setNamespaceStrategy("Arthur");
|
||||||
|
|
||||||
NamespaceStrategyProvider provider = new NamespaceStrategyProvider(strategies, configuration);
|
NamespaceStrategyProvider provider = new NamespaceStrategyProvider(strategies, configuration);
|
||||||
NamespaceStrategy strategy = provider.get();
|
NamespaceStrategy strategy = provider.get();
|
||||||
|
|||||||
Reference in New Issue
Block a user