This commit is contained in:
René Pfeuffer
2019-01-23 10:06:48 +01:00
parent 02b19e51ef
commit 8a0d2ba819
3 changed files with 39 additions and 29 deletions

View File

@@ -21,16 +21,15 @@ import java.util.Enumeration;
import java.util.List;
import java.util.stream.Collectors;
public class RepositoryPermissionAssigner {
public class RepositoryPermissions {
private static final Logger logger = LoggerFactory.getLogger(RepositoryPermissionAssigner.class);
private static final String NAME = "permissions";
private static final Logger logger = LoggerFactory.getLogger(RepositoryPermissions.class);
private static final String REPOSITORY_PERMISSION_DESCRIPTOR = "META-INF/scm/repository-permissions.xml";
private final ConfigurationEntryStoreFactory storeFactory;
private final AvailableRepositoryPermissions availablePermissions;
@Inject
public RepositoryPermissionAssigner(ConfigurationEntryStoreFactory storeFactory, PluginLoader pluginLoader) {
public RepositoryPermissions(ConfigurationEntryStoreFactory storeFactory, PluginLoader pluginLoader) {
this.storeFactory = storeFactory;
this.availablePermissions = readAvailablePermissions(pluginLoader);
}

View File

@@ -1,25 +0,0 @@
package sonia.scm.security;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import sonia.scm.plugin.PluginLoader;
import sonia.scm.store.ConfigurationEntryStoreFactory;
import sonia.scm.util.ClassLoaders;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
class RepositoryPermissionAssignerTest {
@Test
void x() {
PluginLoader pluginLoader = mock(PluginLoader.class);
when(pluginLoader.getUberClassLoader()).thenReturn(ClassLoaders.getContextClassLoader(DefaultSecuritySystem.class));
ConfigurationEntryStoreFactory configurationEntryStoreFactory = mock(ConfigurationEntryStoreFactory.class);
RepositoryPermissionAssigner repositoryPermissionAssigner = new RepositoryPermissionAssigner(configurationEntryStoreFactory, pluginLoader);
Assertions.assertThat(repositoryPermissionAssigner.availableVerbs()).isNotEmpty();
Assertions.assertThat(repositoryPermissionAssigner.availableRoles()).isNotEmpty().noneMatch(r -> r.getVerbs().isEmpty());
System.out.println(repositoryPermissionAssigner.availableVerbs());
System.out.println(repositoryPermissionAssigner.availableRoles());
}
}

View File

@@ -0,0 +1,36 @@
package sonia.scm.security;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import sonia.scm.plugin.PluginLoader;
import sonia.scm.store.ConfigurationEntryStoreFactory;
import sonia.scm.util.ClassLoaders;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
class RepositoryPermissionsTest {
private RepositoryPermissions repositoryPermissions;
@BeforeEach
void init() {
PluginLoader pluginLoader = mock(PluginLoader.class);
when(pluginLoader.getUberClassLoader()).thenReturn(ClassLoaders.getContextClassLoader(DefaultSecuritySystem.class));
ConfigurationEntryStoreFactory configurationEntryStoreFactory = mock(ConfigurationEntryStoreFactory.class);
repositoryPermissions = new RepositoryPermissions(configurationEntryStoreFactory, pluginLoader);
}
@Test
void shouldReadAvailableRoles() {
Assertions.assertThat(repositoryPermissions.availableRoles()).isNotEmpty().noneMatch(r -> r.getVerbs().isEmpty());
System.out.println(repositoryPermissions.availableRoles());
}
@Test
void shouldReadAvailableVerbs() {
Assertions.assertThat(repositoryPermissions.availableVerbs()).isNotEmpty();
System.out.println(repositoryPermissions.availableVerbs());
}
}