CCM NG: Datasets and test methods for PermissionManager
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3543 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
1b6e722e56
commit
84a59b777a
|
|
@ -41,6 +41,8 @@ import javax.xml.bind.annotation.XmlElement;
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Represents a {@link Privilege} granted to a {@link Subject} on an object or
|
||||||
|
* all objects.
|
||||||
*
|
*
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
*/
|
*/
|
||||||
|
|
@ -81,35 +83,66 @@ public class Permission implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = -2368935232499907547L;
|
private static final long serialVersionUID = -2368935232499907547L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The database id of the permission.
|
||||||
|
*/
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "permission_id")
|
@Column(name = "permission_id")
|
||||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||||
@XmlElement(name = "permission-id", namespace = CORE_XML_NS)
|
@XmlElement(name = "permission-id", namespace = CORE_XML_NS)
|
||||||
private long permissionId;
|
private long permissionId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@link Subject} (a {@link User} or a {@link Group}) to which the
|
||||||
|
* permission is granted. If the permission is granted to a {@link Group} a
|
||||||
|
* {@link User}s in that have the permission.
|
||||||
|
*/
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "grantee_id")
|
@JoinColumn(name = "grantee_id")
|
||||||
private Subject grantee;
|
private Subject grantee;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@link Privilege} granted by this {@code Permission}.
|
||||||
|
*/
|
||||||
@OneToOne
|
@OneToOne
|
||||||
@JoinColumn(name = "granted_privilege_id")
|
@JoinColumn(name = "granted_privilege_id")
|
||||||
@XmlElement(name = "privilege", namespace = CORE_XML_NS)
|
@XmlElement(name = "privilege", namespace = CORE_XML_NS)
|
||||||
private Privilege grantedPrivilege;
|
private Privilege grantedPrivilege;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@link CcmObject} on which the permission is granted. If the the
|
||||||
|
* {@code object} is {@code null} the permission is granted for
|
||||||
|
* <strong>all</strong> objects.
|
||||||
|
*/
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "object_id")
|
@JoinColumn(name = "object_id")
|
||||||
private CcmObject object;
|
private CcmObject object;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@link User} which created this {@code Permission}. The property can
|
||||||
|
* be {@code null} if this {@code Permission} was created by a system
|
||||||
|
* process.
|
||||||
|
*/
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "creation_user_id")
|
@JoinColumn(name = "creation_user_id")
|
||||||
@XmlElement(name = "creation-user", namespace = CORE_XML_NS)
|
@XmlElement(name = "creation-user", namespace = CORE_XML_NS)
|
||||||
private User creationUser;
|
private User creationUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The date and time on which this {@code Permission} was created. This
|
||||||
|
* property can be {@code null} if this {@code Permission} was created by a
|
||||||
|
* system process.
|
||||||
|
*/
|
||||||
@Column(name = "creation_date")
|
@Column(name = "creation_date")
|
||||||
@Temporal(TemporalType.TIMESTAMP)
|
@Temporal(TemporalType.TIMESTAMP)
|
||||||
@XmlElement(name = "creation-date", namespace = CORE_XML_NS)
|
@XmlElement(name = "creation-date", namespace = CORE_XML_NS)
|
||||||
private Date creationDate;
|
private Date creationDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The IP of the system from which this {@code Permission} was created. This
|
||||||
|
* property can be {@code null} if this {@code Permission} was created by a
|
||||||
|
* system process.
|
||||||
|
*/
|
||||||
@Column(name = "creation_ip")
|
@Column(name = "creation_ip")
|
||||||
@XmlElement(name = "creation-ip", namespace = CORE_XML_NS)
|
@XmlElement(name = "creation-ip", namespace = CORE_XML_NS)
|
||||||
private String creationIp;
|
private String creationIp;
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ package org.libreccm.core;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.enterprise.context.RequestScoped;
|
import javax.enterprise.context.RequestScoped;
|
||||||
|
import javax.inject.Inject;
|
||||||
import javax.persistence.TypedQuery;
|
import javax.persistence.TypedQuery;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -30,6 +31,9 @@ import javax.persistence.TypedQuery;
|
||||||
@RequestScoped
|
@RequestScoped
|
||||||
public class UserRepository extends AbstractEntityRepository<Long, User> {
|
public class UserRepository extends AbstractEntityRepository<Long, User> {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private transient PrivilegeRepository privilegeRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Class<User> getEntityClass() {
|
public Class<User> getEntityClass() {
|
||||||
return User.class;
|
return User.class;
|
||||||
|
|
@ -50,7 +54,17 @@ public class UserRepository extends AbstractEntityRepository<Long, User> {
|
||||||
* @return The internal system user.
|
* @return The internal system user.
|
||||||
*/
|
*/
|
||||||
public User retrieveSystemUser() {
|
public User retrieveSystemUser() {
|
||||||
throw new UnsupportedOperationException();
|
final User systemUser = new User();
|
||||||
|
systemUser.setScreenName("system");
|
||||||
|
|
||||||
|
final Privilege adminPrivilege = privilegeRepository.retrievePrivilege(
|
||||||
|
"admin");
|
||||||
|
final Permission systemPermission = new Permission();
|
||||||
|
systemPermission.setGrantee(systemUser);
|
||||||
|
systemPermission.setGrantedPrivilege(adminPrivilege);
|
||||||
|
systemUser.addGrantedPermission(systemPermission);
|
||||||
|
|
||||||
|
return systemUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -63,7 +77,7 @@ public class UserRepository extends AbstractEntityRepository<Long, User> {
|
||||||
* public user.
|
* public user.
|
||||||
*/
|
*/
|
||||||
public User retrievePublicUser() {
|
public User retrievePublicUser() {
|
||||||
throw new UnsupportedOperationException();
|
return findByScreenName("public-user");
|
||||||
}
|
}
|
||||||
|
|
||||||
public User findByScreenName(final String screenname) {
|
public User findByScreenName(final String screenname) {
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,9 @@ public class DatasetsTest extends DatasetsVerifier {
|
||||||
"/datasets/org/libreccm/core/GroupRepositoryTest/after-delete.json",
|
"/datasets/org/libreccm/core/GroupRepositoryTest/after-delete.json",
|
||||||
"/datasets/org/libreccm/core/GroupRepositoryTest/after-save-changed.json",
|
"/datasets/org/libreccm/core/GroupRepositoryTest/after-save-changed.json",
|
||||||
"/datasets/org/libreccm/core/GroupRepositoryTest/after-save-new.json",
|
"/datasets/org/libreccm/core/GroupRepositoryTest/after-save-new.json",
|
||||||
|
"/datasets/org/libreccm/core/PermissionManagerTest/after-grant.json",
|
||||||
|
"/datasets/org/libreccm/core/PermissionManagerTest/after-revoke.json",
|
||||||
|
"/datasets/org/libreccm/core/PermissionManagerTest/data.json",
|
||||||
"/datasets/org/libreccm/core/PermissionRepositoryTest/after-save-changed.json",
|
"/datasets/org/libreccm/core/PermissionRepositoryTest/after-save-changed.json",
|
||||||
"/datasets/org/libreccm/core/PermissionRepositoryTest/after-save-new.json",
|
"/datasets/org/libreccm/core/PermissionRepositoryTest/after-save-new.json",
|
||||||
"/datasets/org/libreccm/core/PermissionRepositoryTest/after-delete.json",
|
"/datasets/org/libreccm/core/PermissionRepositoryTest/after-delete.json",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,202 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2015 LibreCCM Foundation.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
* MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
package org.libreccm.core;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import org.jboss.arquillian.container.test.api.Deployment;
|
||||||
|
import org.jboss.arquillian.container.test.api.ShouldThrowException;
|
||||||
|
import org.jboss.arquillian.junit.Arquillian;
|
||||||
|
import org.jboss.arquillian.junit.InSequence;
|
||||||
|
import org.jboss.arquillian.persistence.PersistenceTest;
|
||||||
|
import org.jboss.arquillian.persistence.UsingDataSet;
|
||||||
|
import org.jboss.arquillian.transaction.api.annotation.TransactionMode;
|
||||||
|
import org.jboss.arquillian.transaction.api.annotation.Transactional;
|
||||||
|
import org.jboss.shrinkwrap.api.ShrinkWrap;
|
||||||
|
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
|
||||||
|
import org.jboss.shrinkwrap.api.spec.WebArchive;
|
||||||
|
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
|
||||||
|
import org.jboss.shrinkwrap.resolver.api.maven.PomEquippedResolveStage;
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.AfterClass;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.experimental.categories.Category;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.libreccm.tests.categories.IntegrationTest;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@Category(IntegrationTest.class)
|
||||||
|
@RunWith(Arquillian.class)
|
||||||
|
@PersistenceTest
|
||||||
|
@Transactional(TransactionMode.COMMIT)
|
||||||
|
public class PermissionManagerTest {
|
||||||
|
|
||||||
|
public PermissionManagerTest() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void setUpClass() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public static void tearDownClass() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() {
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO add test methods here.
|
||||||
|
// The methods must be annotated with annotation @Test. For example:
|
||||||
|
//
|
||||||
|
// @Test
|
||||||
|
// public void hello() {}
|
||||||
|
@Deployment
|
||||||
|
public static WebArchive createDeployment() {
|
||||||
|
final PomEquippedResolveStage pom = Maven
|
||||||
|
.resolver()
|
||||||
|
.loadPomFromFile("pom.xml");
|
||||||
|
final PomEquippedResolveStage dependencies = pom.
|
||||||
|
importCompileAndRuntimeDependencies();
|
||||||
|
final File[] libs = dependencies.resolve().withTransitivity().asFile();
|
||||||
|
|
||||||
|
for (File lib : libs) {
|
||||||
|
System.err.printf("Adding file '%s' to test archive...%n",
|
||||||
|
lib.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
return ShrinkWrap
|
||||||
|
.create(WebArchive.class,
|
||||||
|
String.format("LibreCCM-%s.war",
|
||||||
|
PermissionManagerTest.class.getName()))
|
||||||
|
.addPackage(User.class.getPackage())
|
||||||
|
.addPackage(org.libreccm.web.Application.class.getPackage())
|
||||||
|
.addPackage(org.libreccm.categorization.Category.class.
|
||||||
|
getPackage())
|
||||||
|
.addPackage(org.libreccm.l10n.LocalizedString.class.getPackage()).
|
||||||
|
addPackage(org.libreccm.jpa.EntityManagerProducer.class
|
||||||
|
.getPackage())
|
||||||
|
.addPackage(org.libreccm.jpa.utils.MimeTypeConverter.class
|
||||||
|
.getPackage())
|
||||||
|
.addPackage(org.libreccm.testutils.EqualsVerifier.class.
|
||||||
|
getPackage())
|
||||||
|
.addPackage(org.libreccm.tests.categories.IntegrationTest.class
|
||||||
|
.getPackage())
|
||||||
|
.addAsLibraries(libs)
|
||||||
|
.addAsResource("test-persistence.xml",
|
||||||
|
"META-INF/persistence.xml")
|
||||||
|
.addAsWebInfResource("test-web.xml", "WEB-INF/web.xml")
|
||||||
|
.addAsWebInfResource(EmptyAsset.INSTANCE, "WEB-INF/beans.xml");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@UsingDataSet("datasets/org/libreccm/core/PermissionManagerTest/"
|
||||||
|
+ "data.json")
|
||||||
|
@InSequence(110)
|
||||||
|
public void isPermittedGrantedByAdminPrivilege() {
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@UsingDataSet("datasets/org/libreccm/core/PermissionManagerTest/"
|
||||||
|
+ "data.json")
|
||||||
|
@InSequence(120)
|
||||||
|
public void isPermittedGrantedByDirectPermission() {
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@UsingDataSet("datasets/org/libreccm/core/PermissionManagerTest/"
|
||||||
|
+ "data.json")
|
||||||
|
@InSequence(130)
|
||||||
|
public void isPermittedGrantedByGroup() {
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@UsingDataSet("datasets/org/libreccm/core/PermissionManagerTest/"
|
||||||
|
+ "data.json")
|
||||||
|
@InSequence(140)
|
||||||
|
public void isPermittedPublicUserGranted() {
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@UsingDataSet("datasets/org/libreccm/core/PermissionManagerTest/"
|
||||||
|
+ "data.json")
|
||||||
|
@InSequence(150)
|
||||||
|
public void isPermittedPublicUserDenied() {
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = UnauthorizedAcccessException.class)
|
||||||
|
@UsingDataSet("datasets/org/libreccm/core/PermissionManagerTest/"
|
||||||
|
+ "data.json")
|
||||||
|
@ShouldThrowException(UnauthorizedAcccessException.class)
|
||||||
|
@InSequence(210)
|
||||||
|
public void checkPermittedGrantedByAdminPrivilege() {
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = UnauthorizedAcccessException.class)
|
||||||
|
@UsingDataSet("datasets/org/libreccm/core/PermissionManagerTest/"
|
||||||
|
+ "data.json")
|
||||||
|
@ShouldThrowException(UnauthorizedAcccessException.class)
|
||||||
|
@InSequence(220)
|
||||||
|
public void checkPermittedGrantedByDirectPermission() {
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = UnauthorizedAcccessException.class)
|
||||||
|
@UsingDataSet("datasets/org/libreccm/core/PermissionManagerTest/"
|
||||||
|
+ "data.json")
|
||||||
|
@ShouldThrowException(UnauthorizedAcccessException.class)
|
||||||
|
@InSequence(230)
|
||||||
|
public void checkPermittedGrantedByGroup() {
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = UnauthorizedAcccessException.class)
|
||||||
|
@UsingDataSet("datasets/org/libreccm/core/PermissionManagerTest/"
|
||||||
|
+ "data.json")
|
||||||
|
@ShouldThrowException(UnauthorizedAcccessException.class)
|
||||||
|
@InSequence(240)
|
||||||
|
public void checkPermittedPublicUserGranted() {
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = UnauthorizedAcccessException.class)
|
||||||
|
@UsingDataSet("datasets/org/libreccm/core/PermissionManagerTest/"
|
||||||
|
+ "data.json")
|
||||||
|
@ShouldThrowException(UnauthorizedAcccessException.class)
|
||||||
|
@InSequence(250)
|
||||||
|
public void checkPermittedPublicUserDenied() {
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,306 @@
|
||||||
|
{
|
||||||
|
"ccm_objects":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"object_id": -10,
|
||||||
|
"display_name": "Test Object 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -20,
|
||||||
|
"display_name": "Test Object 2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -30,
|
||||||
|
"display_name": "Test Object 3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -40,
|
||||||
|
"display_name": "Test Object 4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -50,
|
||||||
|
"display_name": "Test Object 5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -60,
|
||||||
|
"display_name": "Test Object 6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -70,
|
||||||
|
"display_name": "Test Object 7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -80,
|
||||||
|
"display_name": "Test Object 8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ccm_privileges":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"privilege_id": -10,
|
||||||
|
"label": "admin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"privilege_id": -20,
|
||||||
|
"label": "read"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"privilege_id": -30,
|
||||||
|
"label": "write"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subjects":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"subject_id": -1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"subject_id": -2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"subject_id": -10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"subject_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"subject_id": -40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"subject_id": -50
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ccm_users":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"banned": false,
|
||||||
|
"hash_algorithm": "SHA-512",
|
||||||
|
"family_name": "webmaster",
|
||||||
|
"given_name": "webmaster",
|
||||||
|
"password": "C+o2w6mp+eLrbluMEgKMVSdP50A9BMethXN8R3yihtkbzt7WfWsde2nmq/t5gq6im3J8i3jw4Y3YrKHou8JQ2A==",
|
||||||
|
"salt": "Fu8FPgqAal4GZp1hDjkOB+t6ITRCcO7HBoN5Xqf29UnVj5NUdUFZRTyKYMBEx6JmZGmHcMDG9OGVCKcEM9oyScSRreJs4B51wM44NM6KeRwbCf+VhBn14DkBrl40ygraNf+AJacKpMyCpFI0O/Am7mMDWL4flskBsylkxaQn3vKfzgN5MVG2szW//I6Q6YEH9AuL8LauS6fKaVynMzzu3xzD8Hjqvvlnzym898eom2lqScPfg5g4e8Ww13HCHAYe6twupAW/BjUNax5HSioEisZN/P1UGrde8uFEj+hbbavrWYZuilPuEu25+/98jyXx6542agqrWN8j0SFYcIyOgA==",
|
||||||
|
"screen_name": "webmaster",
|
||||||
|
"subject_id": -1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"banned": false,
|
||||||
|
"hash_algorithm": "SHA-512",
|
||||||
|
"family_name": "public-user",
|
||||||
|
"given_name": "public-user",
|
||||||
|
"password": "C+o2w6mp+eLrbluMEgKMVSdP50A9BMethXN8R3yihtkbzt7WfWsde2nmq/t5gq6im3J8i3jw4Y3YrKHou8JQ2A==",
|
||||||
|
"salt": "Fu8FPgqAal4GZp1hDjkOB+t6ITRCcO7HBoN5Xqf29UnVj5NUdUFZRTyKYMBEx6JmZGmHcMDG9OGVCKcEM9oyScSRreJs4B51wM44NM6KeRwbCf+VhBn14DkBrl40ygraNf+AJacKpMyCpFI0O/Am7mMDWL4flskBsylkxaQn3vKfzgN5MVG2szW//I6Q6YEH9AuL8LauS6fKaVynMzzu3xzD8Hjqvvlnzym898eom2lqScPfg5g4e8Ww13HCHAYe6twupAW/BjUNax5HSioEisZN/P1UGrde8uFEj+hbbavrWYZuilPuEu25+/98jyXx6542agqrWN8j0SFYcIyOgA==",
|
||||||
|
"screen_name": "public-user",
|
||||||
|
"subject_id": -2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"banned": false,
|
||||||
|
"hash_algorithm": "SHA-512",
|
||||||
|
"family_name": "Doe",
|
||||||
|
"given_name": "John",
|
||||||
|
"password": "C+o2w6mp+eLrbluMEgKMVSdP50A9BMethXN8R3yihtkbzt7WfWsde2nmq/t5gq6im3J8i3jw4Y3YrKHou8JQ2A==",
|
||||||
|
"password_reset_required": false,
|
||||||
|
"salt": "Fu8FPgqAal4GZp1hDjkOB+t6ITRCcO7HBoN5Xqf29UnVj5NUdUFZRTyKYMBEx6JmZGmHcMDG9OGVCKcEM9oyScSRreJs4B51wM44NM6KeRwbCf+VhBn14DkBrl40ygraNf+AJacKpMyCpFI0O/Am7mMDWL4flskBsylkxaQn3vKfzgN5MVG2szW//I6Q6YEH9AuL8LauS6fKaVynMzzu3xzD8Hjqvvlnzym898eom2lqScPfg5g4e8Ww13HCHAYe6twupAW/BjUNax5HSioEisZN/P1UGrde8uFEj+hbbavrWYZuilPuEu25+/98jyXx6542agqrWN8j0SFYcIyOgA==",
|
||||||
|
"screen_name": "jdoe",
|
||||||
|
"subject_id": -10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"banned": false,
|
||||||
|
"hash_algorithm": "SHA-512",
|
||||||
|
"family_name": "Mustermann",
|
||||||
|
"given_name": "Max",
|
||||||
|
"password": "1c9626af429a6291766d15cbfb38689bd8d49450520765973de70aecaf644b7d4fda711266ba9ec8fb6df30c8ab391d40330829aa85adf371bcde6b4c9bc01e6",
|
||||||
|
"password_reset_required": false,
|
||||||
|
"salt": "fjiajhigafgapoa",
|
||||||
|
"screen_name": "mmuster",
|
||||||
|
"subject_id": -50
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ccm_groups":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "users",
|
||||||
|
"subject_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "authors",
|
||||||
|
"subject_id": -40
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"group_memberships":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"membership_id": -10,
|
||||||
|
"group_subject_id": -40,
|
||||||
|
"user_subject_id": -10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"membership_id": -20,
|
||||||
|
"group_subject_id": -40,
|
||||||
|
"user_subject_id": -50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"membership_id": -30,
|
||||||
|
"group_subject_id": -30,
|
||||||
|
"user_subject_id": -2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"membership_id": -40,
|
||||||
|
"group_subject_id": -30,
|
||||||
|
"user_subject_id": -10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"membership_id": -50,
|
||||||
|
"group_subject_id": -30,
|
||||||
|
"user_subject_id": -50
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"user_email_addresses":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"user_id": -10,
|
||||||
|
"email_address": "john.doe@example.com",
|
||||||
|
"bouncing": false,
|
||||||
|
"verified": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_id": -50,
|
||||||
|
"email_address": "max.mustermann@example.com",
|
||||||
|
"bouncing": false,
|
||||||
|
"verified": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"permissions":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"permission_id": -10,
|
||||||
|
"grantee_id": -1,
|
||||||
|
"granted_privilege_id": -10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -20,
|
||||||
|
"grantee_id": -2,
|
||||||
|
"object_id": -50,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -30,
|
||||||
|
"grantee_id": -10,
|
||||||
|
"object_id": -50,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -40,
|
||||||
|
"grantee_id": -50,
|
||||||
|
"object_id": -50,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -50,
|
||||||
|
"grantee_id": -50,
|
||||||
|
"object_id": -50,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -60,
|
||||||
|
"grantee_id": -50,
|
||||||
|
"object_id": -60,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -70,
|
||||||
|
"grantee_id": -50,
|
||||||
|
"object_id": -60,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -80,
|
||||||
|
"grantee_id": -30,
|
||||||
|
"object_id": -10,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -90,
|
||||||
|
"grantee_id": -30,
|
||||||
|
"object_id": -20,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -100,
|
||||||
|
"grantee_id": -30,
|
||||||
|
"object_id": -30,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -110,
|
||||||
|
"grantee_id": -30,
|
||||||
|
"object_id": -40,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -120,
|
||||||
|
"grantee_id": -30,
|
||||||
|
"object_id": -80,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -130,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -10,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -140,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -20,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -150,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -30,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -160,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -40,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -170,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -80,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -180,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -10,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -190,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -20,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -200,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -30,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -220,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -40,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -230,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -80,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,324 @@
|
||||||
|
{
|
||||||
|
"ccm_objects":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"object_id": -10,
|
||||||
|
"display_name": "Test Object 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -20,
|
||||||
|
"display_name": "Test Object 2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -30,
|
||||||
|
"display_name": "Test Object 3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -40,
|
||||||
|
"display_name": "Test Object 4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -50,
|
||||||
|
"display_name": "Test Object 5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -60,
|
||||||
|
"display_name": "Test Object 6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -70,
|
||||||
|
"display_name": "Test Object 7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -80,
|
||||||
|
"display_name": "Test Object 8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ccm_privileges":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"privilege_id": -10,
|
||||||
|
"label": "admin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"privilege_id": -20,
|
||||||
|
"label": "read"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"privilege_id": -30,
|
||||||
|
"label": "write"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subjects":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"subject_id": -1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"subject_id": -2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"subject_id": -10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"subject_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"subject_id": -40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"subject_id": -50
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ccm_users":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"banned": false,
|
||||||
|
"hash_algorithm": "SHA-512",
|
||||||
|
"family_name": "webmaster",
|
||||||
|
"given_name": "webmaster",
|
||||||
|
"password": "C+o2w6mp+eLrbluMEgKMVSdP50A9BMethXN8R3yihtkbzt7WfWsde2nmq/t5gq6im3J8i3jw4Y3YrKHou8JQ2A==",
|
||||||
|
"salt": "Fu8FPgqAal4GZp1hDjkOB+t6ITRCcO7HBoN5Xqf29UnVj5NUdUFZRTyKYMBEx6JmZGmHcMDG9OGVCKcEM9oyScSRreJs4B51wM44NM6KeRwbCf+VhBn14DkBrl40ygraNf+AJacKpMyCpFI0O/Am7mMDWL4flskBsylkxaQn3vKfzgN5MVG2szW//I6Q6YEH9AuL8LauS6fKaVynMzzu3xzD8Hjqvvlnzym898eom2lqScPfg5g4e8Ww13HCHAYe6twupAW/BjUNax5HSioEisZN/P1UGrde8uFEj+hbbavrWYZuilPuEu25+/98jyXx6542agqrWN8j0SFYcIyOgA==",
|
||||||
|
"screen_name": "webmaster",
|
||||||
|
"subject_id": -1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"banned": false,
|
||||||
|
"hash_algorithm": "SHA-512",
|
||||||
|
"family_name": "public-user",
|
||||||
|
"given_name": "public-user",
|
||||||
|
"password": "C+o2w6mp+eLrbluMEgKMVSdP50A9BMethXN8R3yihtkbzt7WfWsde2nmq/t5gq6im3J8i3jw4Y3YrKHou8JQ2A==",
|
||||||
|
"salt": "Fu8FPgqAal4GZp1hDjkOB+t6ITRCcO7HBoN5Xqf29UnVj5NUdUFZRTyKYMBEx6JmZGmHcMDG9OGVCKcEM9oyScSRreJs4B51wM44NM6KeRwbCf+VhBn14DkBrl40ygraNf+AJacKpMyCpFI0O/Am7mMDWL4flskBsylkxaQn3vKfzgN5MVG2szW//I6Q6YEH9AuL8LauS6fKaVynMzzu3xzD8Hjqvvlnzym898eom2lqScPfg5g4e8Ww13HCHAYe6twupAW/BjUNax5HSioEisZN/P1UGrde8uFEj+hbbavrWYZuilPuEu25+/98jyXx6542agqrWN8j0SFYcIyOgA==",
|
||||||
|
"screen_name": "public-user",
|
||||||
|
"subject_id": -2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"banned": false,
|
||||||
|
"hash_algorithm": "SHA-512",
|
||||||
|
"family_name": "Doe",
|
||||||
|
"given_name": "John",
|
||||||
|
"password": "C+o2w6mp+eLrbluMEgKMVSdP50A9BMethXN8R3yihtkbzt7WfWsde2nmq/t5gq6im3J8i3jw4Y3YrKHou8JQ2A==",
|
||||||
|
"password_reset_required": false,
|
||||||
|
"salt": "Fu8FPgqAal4GZp1hDjkOB+t6ITRCcO7HBoN5Xqf29UnVj5NUdUFZRTyKYMBEx6JmZGmHcMDG9OGVCKcEM9oyScSRreJs4B51wM44NM6KeRwbCf+VhBn14DkBrl40ygraNf+AJacKpMyCpFI0O/Am7mMDWL4flskBsylkxaQn3vKfzgN5MVG2szW//I6Q6YEH9AuL8LauS6fKaVynMzzu3xzD8Hjqvvlnzym898eom2lqScPfg5g4e8Ww13HCHAYe6twupAW/BjUNax5HSioEisZN/P1UGrde8uFEj+hbbavrWYZuilPuEu25+/98jyXx6542agqrWN8j0SFYcIyOgA==",
|
||||||
|
"screen_name": "jdoe",
|
||||||
|
"subject_id": -10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"banned": false,
|
||||||
|
"hash_algorithm": "SHA-512",
|
||||||
|
"family_name": "Mustermann",
|
||||||
|
"given_name": "Max",
|
||||||
|
"password": "1c9626af429a6291766d15cbfb38689bd8d49450520765973de70aecaf644b7d4fda711266ba9ec8fb6df30c8ab391d40330829aa85adf371bcde6b4c9bc01e6",
|
||||||
|
"password_reset_required": false,
|
||||||
|
"salt": "fjiajhigafgapoa",
|
||||||
|
"screen_name": "mmuster",
|
||||||
|
"subject_id": -50
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ccm_groups":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "users",
|
||||||
|
"subject_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "authors",
|
||||||
|
"subject_id": -40
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"group_memberships":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"membership_id": -10,
|
||||||
|
"group_subject_id": -40,
|
||||||
|
"user_subject_id": -10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"membership_id": -20,
|
||||||
|
"group_subject_id": -40,
|
||||||
|
"user_subject_id": -50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"membership_id": -30,
|
||||||
|
"group_subject_id": -30,
|
||||||
|
"user_subject_id": -2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"membership_id": -40,
|
||||||
|
"group_subject_id": -30,
|
||||||
|
"user_subject_id": -10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"membership_id": -50,
|
||||||
|
"group_subject_id": -30,
|
||||||
|
"user_subject_id": -50
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"user_email_addresses":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"user_id": -10,
|
||||||
|
"email_address": "john.doe@example.com",
|
||||||
|
"bouncing": false,
|
||||||
|
"verified": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_id": -50,
|
||||||
|
"email_address": "max.mustermann@example.com",
|
||||||
|
"bouncing": false,
|
||||||
|
"verified": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"permissions":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"permission_id": -10,
|
||||||
|
"grantee_id": -1,
|
||||||
|
"granted_privilege_id": -10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -20,
|
||||||
|
"grantee_id": -2,
|
||||||
|
"object_id": -50,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -30,
|
||||||
|
"grantee_id": -10,
|
||||||
|
"object_id": -50,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -40,
|
||||||
|
"grantee_id": -50,
|
||||||
|
"object_id": -50,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -50,
|
||||||
|
"grantee_id": -50,
|
||||||
|
"object_id": -50,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -60,
|
||||||
|
"grantee_id": -50,
|
||||||
|
"object_id": -60,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -70,
|
||||||
|
"grantee_id": -50,
|
||||||
|
"object_id": -60,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -80,
|
||||||
|
"grantee_id": -30,
|
||||||
|
"object_id": -10,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -90,
|
||||||
|
"grantee_id": -30,
|
||||||
|
"object_id": -20,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -100,
|
||||||
|
"grantee_id": -30,
|
||||||
|
"object_id": -30,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -110,
|
||||||
|
"grantee_id": -30,
|
||||||
|
"object_id": -40,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -120,
|
||||||
|
"grantee_id": -30,
|
||||||
|
"object_id": -80,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -130,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -10,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -140,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -20,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -150,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -30,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -160,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -40,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -170,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -80,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -180,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -10,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -190,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -20,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -200,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -30,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -220,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -40,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -230,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -80,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -240,
|
||||||
|
"grantee_id": -10,
|
||||||
|
"object_id": -60,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -250,
|
||||||
|
"grantee_id": -50,
|
||||||
|
"object_id": -70,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -260,
|
||||||
|
"grantee_id": -50,
|
||||||
|
"object_id": -70,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,312 @@
|
||||||
|
{
|
||||||
|
"ccm_objects":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"object_id": -10,
|
||||||
|
"display_name": "Test Object 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -20,
|
||||||
|
"display_name": "Test Object 2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -30,
|
||||||
|
"display_name": "Test Object 3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -40,
|
||||||
|
"display_name": "Test Object 4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -50,
|
||||||
|
"display_name": "Test Object 5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -60,
|
||||||
|
"display_name": "Test Object 6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -70,
|
||||||
|
"display_name": "Test Object 7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object_id": -80,
|
||||||
|
"display_name": "Test Object 8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ccm_privileges":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"privilege_id": -10,
|
||||||
|
"label": "admin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"privilege_id": -20,
|
||||||
|
"label": "read"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"privilege_id": -30,
|
||||||
|
"label": "write"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subjects":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"subject_id": -1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"subject_id": -2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"subject_id": -10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"subject_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"subject_id": -40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"subject_id": -50
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ccm_users":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"banned": false,
|
||||||
|
"hash_algorithm": "SHA-512",
|
||||||
|
"family_name": "webmaster",
|
||||||
|
"given_name": "webmaster",
|
||||||
|
"password": "C+o2w6mp+eLrbluMEgKMVSdP50A9BMethXN8R3yihtkbzt7WfWsde2nmq/t5gq6im3J8i3jw4Y3YrKHou8JQ2A==",
|
||||||
|
"salt": "Fu8FPgqAal4GZp1hDjkOB+t6ITRCcO7HBoN5Xqf29UnVj5NUdUFZRTyKYMBEx6JmZGmHcMDG9OGVCKcEM9oyScSRreJs4B51wM44NM6KeRwbCf+VhBn14DkBrl40ygraNf+AJacKpMyCpFI0O/Am7mMDWL4flskBsylkxaQn3vKfzgN5MVG2szW//I6Q6YEH9AuL8LauS6fKaVynMzzu3xzD8Hjqvvlnzym898eom2lqScPfg5g4e8Ww13HCHAYe6twupAW/BjUNax5HSioEisZN/P1UGrde8uFEj+hbbavrWYZuilPuEu25+/98jyXx6542agqrWN8j0SFYcIyOgA==",
|
||||||
|
"screen_name": "webmaster",
|
||||||
|
"subject_id": -1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"banned": false,
|
||||||
|
"hash_algorithm": "SHA-512",
|
||||||
|
"family_name": "public-user",
|
||||||
|
"given_name": "public-user",
|
||||||
|
"password": "C+o2w6mp+eLrbluMEgKMVSdP50A9BMethXN8R3yihtkbzt7WfWsde2nmq/t5gq6im3J8i3jw4Y3YrKHou8JQ2A==",
|
||||||
|
"salt": "Fu8FPgqAal4GZp1hDjkOB+t6ITRCcO7HBoN5Xqf29UnVj5NUdUFZRTyKYMBEx6JmZGmHcMDG9OGVCKcEM9oyScSRreJs4B51wM44NM6KeRwbCf+VhBn14DkBrl40ygraNf+AJacKpMyCpFI0O/Am7mMDWL4flskBsylkxaQn3vKfzgN5MVG2szW//I6Q6YEH9AuL8LauS6fKaVynMzzu3xzD8Hjqvvlnzym898eom2lqScPfg5g4e8Ww13HCHAYe6twupAW/BjUNax5HSioEisZN/P1UGrde8uFEj+hbbavrWYZuilPuEu25+/98jyXx6542agqrWN8j0SFYcIyOgA==",
|
||||||
|
"screen_name": "public-user",
|
||||||
|
"subject_id": -2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"banned": false,
|
||||||
|
"hash_algorithm": "SHA-512",
|
||||||
|
"family_name": "Doe",
|
||||||
|
"given_name": "John",
|
||||||
|
"password": "C+o2w6mp+eLrbluMEgKMVSdP50A9BMethXN8R3yihtkbzt7WfWsde2nmq/t5gq6im3J8i3jw4Y3YrKHou8JQ2A==",
|
||||||
|
"password_reset_required": false,
|
||||||
|
"salt": "Fu8FPgqAal4GZp1hDjkOB+t6ITRCcO7HBoN5Xqf29UnVj5NUdUFZRTyKYMBEx6JmZGmHcMDG9OGVCKcEM9oyScSRreJs4B51wM44NM6KeRwbCf+VhBn14DkBrl40ygraNf+AJacKpMyCpFI0O/Am7mMDWL4flskBsylkxaQn3vKfzgN5MVG2szW//I6Q6YEH9AuL8LauS6fKaVynMzzu3xzD8Hjqvvlnzym898eom2lqScPfg5g4e8Ww13HCHAYe6twupAW/BjUNax5HSioEisZN/P1UGrde8uFEj+hbbavrWYZuilPuEu25+/98jyXx6542agqrWN8j0SFYcIyOgA==",
|
||||||
|
"screen_name": "jdoe",
|
||||||
|
"subject_id": -10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"banned": false,
|
||||||
|
"hash_algorithm": "SHA-512",
|
||||||
|
"family_name": "Mustermann",
|
||||||
|
"given_name": "Max",
|
||||||
|
"password": "1c9626af429a6291766d15cbfb38689bd8d49450520765973de70aecaf644b7d4fda711266ba9ec8fb6df30c8ab391d40330829aa85adf371bcde6b4c9bc01e6",
|
||||||
|
"password_reset_required": false,
|
||||||
|
"salt": "fjiajhigafgapoa",
|
||||||
|
"screen_name": "mmuster",
|
||||||
|
"subject_id": -50
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ccm_groups":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "users",
|
||||||
|
"subject_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "authors",
|
||||||
|
"subject_id": -40
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"group_memberships":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"membership_id": -10,
|
||||||
|
"group_subject_id": -40,
|
||||||
|
"user_subject_id": -10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"membership_id": -20,
|
||||||
|
"group_subject_id": -40,
|
||||||
|
"user_subject_id": -50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"membership_id": -30,
|
||||||
|
"group_subject_id": -30,
|
||||||
|
"user_subject_id": -2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"membership_id": -40,
|
||||||
|
"group_subject_id": -30,
|
||||||
|
"user_subject_id": -10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"membership_id": -50,
|
||||||
|
"group_subject_id": -30,
|
||||||
|
"user_subject_id": -50
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"user_email_addresses":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"user_id": -10,
|
||||||
|
"email_address": "john.doe@example.com",
|
||||||
|
"bouncing": false,
|
||||||
|
"verified": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_id": -50,
|
||||||
|
"email_address": "max.mustermann@example.com",
|
||||||
|
"bouncing": false,
|
||||||
|
"verified": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"permissions":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"permission_id": -10,
|
||||||
|
"grantee_id": -1,
|
||||||
|
"granted_privilege_id": -10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -20,
|
||||||
|
"grantee_id": -2,
|
||||||
|
"object_id": -50,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -30,
|
||||||
|
"grantee_id": -10,
|
||||||
|
"object_id": -50,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -40,
|
||||||
|
"grantee_id": -50,
|
||||||
|
"object_id": -50,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -50,
|
||||||
|
"grantee_id": -50,
|
||||||
|
"object_id": -50,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -60,
|
||||||
|
"grantee_id": -50,
|
||||||
|
"object_id": -60,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -80,
|
||||||
|
"grantee_id": -30,
|
||||||
|
"object_id": -10,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -90,
|
||||||
|
"grantee_id": -30,
|
||||||
|
"object_id": -20,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -100,
|
||||||
|
"grantee_id": -30,
|
||||||
|
"object_id": -30,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -110,
|
||||||
|
"grantee_id": -30,
|
||||||
|
"object_id": -40,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -120,
|
||||||
|
"grantee_id": -30,
|
||||||
|
"object_id": -80,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -130,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -10,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -140,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -20,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -150,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -30,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -160,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -40,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -170,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -80,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -180,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -10,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -190,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -20,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -200,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -30,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -220,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -40,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -230,
|
||||||
|
"grantee_id": -40,
|
||||||
|
"object_id": -80,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -250,
|
||||||
|
"grantee_id": -50,
|
||||||
|
"object_id": -70,
|
||||||
|
"granted_privilege_id": -20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"permission_id": -260,
|
||||||
|
"grantee_id": -50,
|
||||||
|
"object_id": -70,
|
||||||
|
"granted_privilege_id": -30
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue