mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-09 15:05:44 +01:00
Persist permissions in repository
This commit is contained in:
@@ -46,6 +46,7 @@ import java.util.stream.Stream;
|
||||
|
||||
import static de.otto.edison.hal.Link.link;
|
||||
import static de.otto.edison.hal.Links.linkingTo;
|
||||
import static java.util.Arrays.asList;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.fail;
|
||||
@@ -78,12 +79,12 @@ public class RepositoryPermissionRootResourceTest extends RepositoryTestBase {
|
||||
private static final String PERMISSION_TEST_PAYLOAD = "{ \"name\" : \"permission_name\", \"type\" : \"READ\" }";
|
||||
private static final ArrayList<RepositoryPermission> TEST_PERMISSIONS = Lists
|
||||
.newArrayList(
|
||||
new RepositoryPermission("user_write", "read,modify", false),
|
||||
new RepositoryPermission("user_read", "read", false),
|
||||
new RepositoryPermission("user_owner", "read,modify,delete", false),
|
||||
new RepositoryPermission("group_read", "read", true),
|
||||
new RepositoryPermission("group_write", "read,modify", true),
|
||||
new RepositoryPermission("group_owner", "read,modify,delete", true)
|
||||
new RepositoryPermission("user_write", asList("read","modify"), false),
|
||||
new RepositoryPermission("user_read", asList("read"), false),
|
||||
new RepositoryPermission("user_owner", asList("*"), false),
|
||||
new RepositoryPermission("group_read", asList("read"), true),
|
||||
new RepositoryPermission("group_write", asList("read","modify"), true),
|
||||
new RepositoryPermission("group_owner", asList("*"), true)
|
||||
);
|
||||
private final ExpectedRequest requestGETAllPermissions = new ExpectedRequest()
|
||||
.description("GET all permissions")
|
||||
@@ -258,7 +259,7 @@ public class RepositoryPermissionRootResourceTest extends RepositoryTestBase {
|
||||
@Test
|
||||
public void shouldGetCreatedPermissions() throws URISyntaxException {
|
||||
createUserWithRepositoryAndPermissions(TEST_PERMISSIONS, PERMISSION_WRITE);
|
||||
RepositoryPermission newPermission = new RepositoryPermission("new_group_perm", "read,modify", true);
|
||||
RepositoryPermission newPermission = new RepositoryPermission("new_group_perm", asList("read","modify"), true);
|
||||
ArrayList<RepositoryPermission> permissions = Lists.newArrayList(TEST_PERMISSIONS);
|
||||
permissions.add(newPermission);
|
||||
ImmutableList<RepositoryPermission> expectedPermissions = ImmutableList.copyOf(permissions);
|
||||
@@ -287,7 +288,7 @@ public class RepositoryPermissionRootResourceTest extends RepositoryTestBase {
|
||||
createUserWithRepositoryAndPermissions(TEST_PERMISSIONS, PERMISSION_WRITE);
|
||||
RepositoryPermission modifiedPermission = TEST_PERMISSIONS.get(0);
|
||||
// modify the type to owner
|
||||
modifiedPermission.setVerb("read,modify,delete");
|
||||
modifiedPermission.setVerbs(asList("read", "modify", "delete"));
|
||||
ImmutableList<RepositoryPermission> expectedPermissions = ImmutableList.copyOf(TEST_PERMISSIONS);
|
||||
assertExpectedRequest(requestPUTPermission
|
||||
.content("{\"name\" : \"" + modifiedPermission.getName() + "\" , \"type\" : \"OWNER\" , \"groupPermission\" : false}")
|
||||
@@ -381,7 +382,7 @@ public class RepositoryPermissionRootResourceTest extends RepositoryTestBase {
|
||||
RepositoryPermissionDto result = new RepositoryPermissionDto();
|
||||
result.setName(permission.getName());
|
||||
result.setGroupPermission(permission.isGroupPermission());
|
||||
result.setType(permission.getVerb());
|
||||
// result.setType(permission.getVerbs()); TODO RP
|
||||
String permissionName = Optional.of(permission.getName())
|
||||
.filter(p -> !permission.isGroupPermission())
|
||||
.orElse(GROUP_PREFIX + permission.getName());
|
||||
|
||||
@@ -12,6 +12,7 @@ import sonia.scm.repository.Repository;
|
||||
|
||||
import java.net.URI;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.Silent.class)
|
||||
@@ -35,7 +36,7 @@ public class RepositoryPermissionToRepositoryPermissionDtoMapperTest {
|
||||
@SubjectAware(username = "trillian", password = "secret")
|
||||
public void shouldMapGroupPermissionCorrectly() {
|
||||
Repository repository = getDummyRepository();
|
||||
RepositoryPermission permission = new RepositoryPermission("42", "read,modify,delete", true);
|
||||
RepositoryPermission permission = new RepositoryPermission("42", asList("read","modify","delete"), true);
|
||||
|
||||
RepositoryPermissionDto repositoryPermissionDto = mapper.map(permission, repository);
|
||||
|
||||
@@ -47,7 +48,7 @@ public class RepositoryPermissionToRepositoryPermissionDtoMapperTest {
|
||||
@SubjectAware(username = "trillian", password = "secret")
|
||||
public void shouldMapNonGroupPermissionCorrectly() {
|
||||
Repository repository = getDummyRepository();
|
||||
RepositoryPermission permission = new RepositoryPermission("42", "read,modify,delete", false);
|
||||
RepositoryPermission permission = new RepositoryPermission("42", asList("read","modify","delete"), false);
|
||||
|
||||
RepositoryPermissionDto repositoryPermissionDto = mapper.map(permission, repository);
|
||||
|
||||
|
||||
@@ -58,6 +58,7 @@ import sonia.scm.repository.RepositoryTestData;
|
||||
import sonia.scm.user.User;
|
||||
import sonia.scm.user.UserTestData;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
import static org.hamcrest.Matchers.containsInAnyOrder;
|
||||
import static org.hamcrest.Matchers.hasSize;
|
||||
import static org.hamcrest.Matchers.nullValue;
|
||||
@@ -228,7 +229,7 @@ public class DefaultAuthorizationCollectorTest {
|
||||
// heartOfGold.setPermissions(Lists.newArrayList(new RepositoryPermission("trillian")));
|
||||
Repository puzzle42 = RepositoryTestData.create42Puzzle();
|
||||
puzzle42.setId("two");
|
||||
RepositoryPermission permission = new RepositoryPermission(group, "read,modify", true);
|
||||
RepositoryPermission permission = new RepositoryPermission(group, asList("read","modify"), true);
|
||||
// puzzle42.setPermissions(Lists.newArrayList(permission));
|
||||
when(repositoryDAO.getAll()).thenReturn(Lists.newArrayList(heartOfGold, puzzle42));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user