CCM NG:
- Excluded some of the old com.arsdigita classes from FindBugs and PMD to keep the reports clear so that we can focus on the
new org.libreccm classes and the important com.arsdigita classes
- PermisssionRepository and tests. PermissionRepository will provided some maybe offer more queries.
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3537 8810af33-2d31-482b-a856-94f89814c4df
pull/2/head
parent
e02af14df1
commit
f3a443a6ab
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FindBugsFilter>
|
||||
<Match>
|
||||
<Class name="com.arsdigita.util.parameter.CSVParameterReader" />
|
||||
</Match>
|
||||
<Match>
|
||||
<Class name="com.arsdigita.util.parameter.ResourceParameter" />
|
||||
</Match>
|
||||
<Match>
|
||||
<Class name="com.arsdigita.xml.Document" />
|
||||
</Match>
|
||||
<Match>
|
||||
<Class name="com.arsdigita.xml.Element" />
|
||||
</Match>
|
||||
<Match>
|
||||
<Class name="com.arsdigita.xml.formatters.DateFormatter" />
|
||||
</Match>
|
||||
<Match>
|
||||
<Class name="com.arsdigita.xml.formatters.FullDateFormatter" />
|
||||
</Match>
|
||||
</FindBugsFilter>
|
||||
|
|
@ -341,6 +341,9 @@
|
|||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>findbugs-maven-plugin</artifactId>
|
||||
<version>3.0.1</version>
|
||||
<configuration>
|
||||
<excludeFilterFile>findbugs-exclude.xml</excludeFilterFile>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
|
|
@ -370,6 +373,54 @@
|
|||
<ruleset>/rulesets/java/unnecessary.xml</ruleset>
|
||||
<ruleset>/rulesets/java/unusedcode.xml</ruleset>
|
||||
</rulesets>
|
||||
<excludeRoots>
|
||||
<excludeRoot>src/main/java/com/arsdigita</excludeRoot>
|
||||
</excludeRoots>
|
||||
<excludes>
|
||||
<exclude>**/AbstractConfig.java</exclude>
|
||||
<exclude>**/AbstractParameter.java</exclude>
|
||||
<exclude>**/AbstractParameterContext</exclude>
|
||||
<exclude>**/Assert.java</exclude>
|
||||
<exclude>**/Classes.java</exclude>
|
||||
<exclude>**/CCMApplicationContextListener.java</exclude>
|
||||
<exclude>**/CCMResourceManager.java</exclude>
|
||||
<exclude>**/ClassParameterReader.java</exclude>
|
||||
<exclude>**/CompoundParameterReader.java</exclude>
|
||||
<exclude>**/ConfigError.java</exclude>
|
||||
<exclude>**/ConfigRegistry.java</exclude>
|
||||
<exclude>**/Converters.java</exclude>
|
||||
<exclude>**/CSVParameterReader.java</exclude>
|
||||
<exclude>**/DateFormatter.java</exclude>
|
||||
<exclude>**/DataFormatterConfig.java</exclude>
|
||||
<exclude>**/DateTimeFormatter</exclude>
|
||||
<exclude>**/Document.java</exclude>
|
||||
<exclude>**/Element.java</exclude>
|
||||
<exclude>**/EmailParameter.java</exclude>
|
||||
<exclude>**/EnumerationParameter.java</exclude>
|
||||
<exclude>**/ErrorList.java</exclude>
|
||||
<exclude>**/ExceptionUnwrapper.java</exclude>
|
||||
<exclude>**/Exceptions.java</exclude>
|
||||
<exclude>**/FileParameter.java</exclude>
|
||||
<exclude>**/FullDateFormatter.java</exclude>
|
||||
<exclude>**/IntegerParameter.java</exclude>
|
||||
<exclude>**/JavaPropertyReader.java</exclude>
|
||||
<exclude>**/JavaPropertyWriter.java</exclude>
|
||||
<exclude>**/KernelConfig.java</exclude>
|
||||
<exclude>**/LockableImpl.java</exclude>
|
||||
<exclude>**/MapParameter.java</exclude>
|
||||
<exclude>**/Parameter.java</exclude>
|
||||
<exclude>**/ParameterError.java</exclude>
|
||||
<exclude>**/ParameterException.java</exclude>
|
||||
<exclude>**/RegistryConfig.java</exclude>
|
||||
<exclude>**/ResourceParameter.java</exclude>
|
||||
<exclude>**/SecurityConfig.java</exclude>
|
||||
<exclude>**/SecurityHelper.java</exclude>
|
||||
<exclude>**/SingletonParameter.java</exclude>
|
||||
<exclude>**/StringParameter.java</exclude>
|
||||
<exclude>**/TimeFormatter.java</exclude>
|
||||
<exclude>**/UncheckedWrapperException</exclude>
|
||||
<exclude>**/XML.java</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,21 @@ import javax.xml.bind.annotation.XmlRootElement;
|
|||
+ " FROM Group g JOIN g.members m"
|
||||
+ " WHERE m.user = :user)"),
|
||||
@NamedQuery(name = "findPermissionsForCcmObject",
|
||||
query = "SELECT p FROM Permission p WHERE p.object = :object")
|
||||
query = "SELECT p FROM Permission p WHERE p.object = :object"),
|
||||
@NamedQuery(name = "findPermissionsByUserObjectAndPrivilege",
|
||||
query = "SELECT p FROM Permission p "
|
||||
+ "WHERE (p.grantee = :user"
|
||||
+ " OR p.grantee IN (SELECT g "
|
||||
+ " FROM Group g JOIN g.members m"
|
||||
+ " WHERE m.user = :user))"
|
||||
+ " AND p.grantedPrivilege = :privilege"
|
||||
+ " AND p.object = :object"),
|
||||
@NamedQuery(name = "findPermissionsBySubjectObjectAndPrivilege",
|
||||
query = "SELECT p FROM Permission p "
|
||||
+ "WHERE p.grantee = :subject"
|
||||
+ " AND p.grantedPrivilege = :privilege"
|
||||
+ " AND p.object = :object")
|
||||
|
||||
})
|
||||
//Can't reduce complexity yet
|
||||
@SuppressWarnings({"PMD.CyclomaticComplexity",
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import javax.persistence.EntityManager;
|
|||
import javax.persistence.TypedQuery;
|
||||
|
||||
/**
|
||||
* Repository class for retrieving, storing and deleting permissions.
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
|
|
@ -34,22 +35,44 @@ public class PermissionRepository
|
|||
extends AbstractEntityRepository<Long, Permission> {
|
||||
|
||||
@Inject
|
||||
private EntityManager entityManager;
|
||||
private transient EntityManager entityManager;
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @return {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Class<Permission> getEntityClass() {
|
||||
return Permission.class;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc }
|
||||
*
|
||||
* @param entity {@inheritDoc }
|
||||
* @return {@inheritDoc }
|
||||
*/
|
||||
@Override
|
||||
public boolean isNew(final Permission entity) {
|
||||
if (entity == null) {
|
||||
throw new UnsupportedOperationException(
|
||||
"Entity to save can't be null");
|
||||
throw new IllegalArgumentException("Entity to save can't be null");
|
||||
}
|
||||
return entity.getPermissionId() == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds all permissions granted to a specific subject (either a user or
|
||||
* group).
|
||||
*
|
||||
* Please note that this method does <strong>not</strong> find permissions
|
||||
* granted to a user by the groups a user is member of. To get these
|
||||
* permissions also use the
|
||||
* {@link #findPermissionsForUser(org.libreccm.core.User)} method instead.
|
||||
*
|
||||
* @param subject The subject.
|
||||
* @return All permissions granted to the provided subject.
|
||||
*/
|
||||
public List<Permission> findPermissionsForSubject(final Subject subject) {
|
||||
if (subject == null) {
|
||||
throw new IllegalArgumentException(
|
||||
|
|
@ -63,6 +86,17 @@ public class PermissionRepository
|
|||
return query.getResultList();
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds a permissions granted to a user and to the groups the user is
|
||||
* member of.
|
||||
*
|
||||
* If you only need the permissions assigned to the user itself use the
|
||||
* {@link #findPermissionsForSubject(org.libreccm.core.Subject)} method.
|
||||
*
|
||||
* @param user The user.
|
||||
* @return All permissions granted to the user or the groups the user is
|
||||
* member of.
|
||||
*/
|
||||
public List<Permission> findPermissionsForUser(final User user) {
|
||||
if (user == null) {
|
||||
throw new IllegalArgumentException(
|
||||
|
|
@ -76,6 +110,12 @@ public class PermissionRepository
|
|||
return query.getResultList();
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds all permissions granted on a object.
|
||||
*
|
||||
* @param object The object.
|
||||
* @return All permissions granted on the object.
|
||||
*/
|
||||
public List<Permission> findPermissionsForCcmObject(final CcmObject object) {
|
||||
if (object == null) {
|
||||
throw new IllegalArgumentException(
|
||||
|
|
@ -89,4 +129,22 @@ public class PermissionRepository
|
|||
return query.getResultList();
|
||||
}
|
||||
|
||||
// public List<Permission> findPermissionForUserPrivilegeAndObject(
|
||||
// final User user,
|
||||
// final Privilege privilege,
|
||||
// final CcmObject object) {
|
||||
// if (user == null) {
|
||||
// throw new IllegalArgumentException(
|
||||
// "Illegal value 'null' provided for parameter user");
|
||||
// }
|
||||
//
|
||||
// if (privilege == null) {
|
||||
// throw new IllegalArgumentException(
|
||||
// "Illegal value 'null' provided for parameter privilege");
|
||||
// }
|
||||
//
|
||||
// final TypedQuery<Permission> query = entityManager.createNamedQuery(
|
||||
// "findPermissionsForUserPrivilegeAndObject", Permission.class);
|
||||
//
|
||||
// }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,6 +54,9 @@ public class DatasetsTest extends DatasetsVerifier {
|
|||
"/datasets/org/libreccm/core/GroupRepositoryTest/after-delete.json",
|
||||
"/datasets/org/libreccm/core/GroupRepositoryTest/after-save-changed.json",
|
||||
"/datasets/org/libreccm/core/GroupRepositoryTest/after-save-new.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-delete.json",
|
||||
"/datasets/org/libreccm/core/PermissionRepositoryTest/data.json",
|
||||
"/datasets/org/libreccm/core/RoleRepositoryTest/data.json",
|
||||
"/datasets/org/libreccm/core/RoleRepositoryTest/after-delete.json",
|
||||
|
|
|
|||
|
|
@ -51,6 +51,10 @@ import java.util.List;
|
|||
import java.util.Set;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.TypedQuery;
|
||||
import org.jboss.arquillian.container.test.api.ShouldThrowException;
|
||||
import org.jboss.arquillian.persistence.ShouldMatchDataSet;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -74,6 +78,9 @@ public class PermissionRepositoryTest {
|
|||
@Inject
|
||||
private transient CcmObjectRepository ccmObjectRepository;
|
||||
|
||||
@Inject
|
||||
private transient EntityManager entityManager;
|
||||
|
||||
public PermissionRepositoryTest() {
|
||||
}
|
||||
|
||||
|
|
@ -190,6 +197,15 @@ public class PermissionRepositoryTest {
|
|||
assertThat(privileges, hasItem("write"));
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@UsingDataSet(
|
||||
"datasets/org/libreccm/core/PermissionRepositoryTest/data.json")
|
||||
@ShouldThrowException(IllegalArgumentException.class)
|
||||
@InSequence(11)
|
||||
public void findPermissionsForNullSubject() {
|
||||
permissionRepository.findPermissionsForSubject(null);
|
||||
}
|
||||
|
||||
@Test
|
||||
@UsingDataSet(
|
||||
"datasets/org/libreccm/core/PermissionRepositoryTest/data.json")
|
||||
|
|
@ -221,7 +237,8 @@ public class PermissionRepositoryTest {
|
|||
|
||||
if (result == 0) {
|
||||
return permission1.getGrantee().getClass().getName()
|
||||
.compareTo(permission2.getGrantee().getClass().getName());
|
||||
.compareTo(permission2.getGrantee().getClass().
|
||||
getName());
|
||||
} else {
|
||||
return result;
|
||||
}
|
||||
|
|
@ -256,6 +273,15 @@ public class PermissionRepositoryTest {
|
|||
assertThat(mmusterPermissions.get(0).getObject(), is(nullValue()));
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@UsingDataSet(
|
||||
"datasets/org/libreccm/core/PermissionRepositoryTest/data.json")
|
||||
@ShouldThrowException(IllegalArgumentException.class)
|
||||
@InSequence(21)
|
||||
public void findPermissionsForNullUser() {
|
||||
permissionRepository.findPermissionsForUser(null);
|
||||
}
|
||||
|
||||
@Test
|
||||
@UsingDataSet(
|
||||
"datasets/org/libreccm/core/PermissionRepositoryTest/data.json")
|
||||
|
|
@ -317,4 +343,99 @@ public class PermissionRepositoryTest {
|
|||
assertThat(object3Permissions, is(empty()));
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@UsingDataSet(
|
||||
"datasets/org/libreccm/core/PermissionRepositoryTest/data.json")
|
||||
@ShouldThrowException(IllegalArgumentException.class)
|
||||
@InSequence(31)
|
||||
public void findPermissionsForNullObject() {
|
||||
permissionRepository.findPermissionsForCcmObject(null);
|
||||
}
|
||||
|
||||
@Test
|
||||
@UsingDataSet(
|
||||
"datasets/org/libreccm/core/PermissionRepositoryTest/data.json")
|
||||
@ShouldMatchDataSet(value = "datasets/org/libreccm/core/"
|
||||
+ "PermissionRepositoryTest/after-save-new.json",
|
||||
excludeColumns = {"permission_id"})
|
||||
@InSequence(40)
|
||||
public void saveNewPermission() {
|
||||
final User mmuster = userRepository.findByScreenName("mmuster");
|
||||
|
||||
final TypedQuery<Privilege> query1 = entityManager.createQuery(
|
||||
"SELECT p FROM Privilege p WHERE p.privilege = 'read'",
|
||||
Privilege.class);
|
||||
final TypedQuery<Privilege> query2 = entityManager.createQuery(
|
||||
"SELECT p FROM Privilege p WHERE p.privilege = 'write'",
|
||||
Privilege.class);
|
||||
|
||||
final CcmObject object = ccmObjectRepository.findById(-40L);
|
||||
|
||||
final Privilege read = query1.getSingleResult();
|
||||
final Privilege write = query2.getSingleResult();
|
||||
|
||||
assertThat(mmuster, is(not(nullValue())));
|
||||
assertThat(read, is(not(nullValue())));
|
||||
assertThat(write, is(not(nullValue())));
|
||||
assertThat(object, is(not(nullValue())));
|
||||
|
||||
final Permission permission1 = new Permission();
|
||||
permission1.setGrantee(mmuster);
|
||||
permission1.setGrantedPrivilege(read);
|
||||
permission1.setObject(object);
|
||||
|
||||
final Permission permission2 = new Permission();
|
||||
permission2.setGrantee(mmuster);
|
||||
permission2.setGrantedPrivilege(write);
|
||||
permission2.setObject(object);
|
||||
|
||||
permissionRepository.save(permission1);
|
||||
permissionRepository.save(permission2);
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@ShouldThrowException(IllegalArgumentException.class)
|
||||
@InSequence(41)
|
||||
public void saveNullPermission() {
|
||||
permissionRepository.save(null);
|
||||
}
|
||||
|
||||
@Test
|
||||
@UsingDataSet(
|
||||
"datasets/org/libreccm/core/PermissionRepositoryTest/data.json")
|
||||
@ShouldMatchDataSet(value = "datasets/org/libreccm/core/"
|
||||
+ "PermissionRepositoryTest/after-save-changed.json",
|
||||
excludeColumns = {"permission_id"})
|
||||
@InSequence(50)
|
||||
public void saveChangedPermission() {
|
||||
final Permission permission = entityManager.find(Permission.class, -40L);
|
||||
final Group users = groupRepository.findByGroupName("users");
|
||||
|
||||
assertThat(permission, is(not(nullValue())));
|
||||
assertThat(users, is(not(nullValue())));
|
||||
|
||||
permission.setGrantee(users);
|
||||
|
||||
permissionRepository.save(permission);
|
||||
}
|
||||
|
||||
@Test
|
||||
@UsingDataSet(
|
||||
"datasets/org/libreccm/core/PermissionRepositoryTest/data.json")
|
||||
@ShouldMatchDataSet(value = "datasets/org/libreccm/core/"
|
||||
+ "PermissionRepositoryTest/after-delete.json",
|
||||
excludeColumns = {"permission_id"})
|
||||
@InSequence(60)
|
||||
public void deletePermission() {
|
||||
final Permission permission = entityManager.find(Permission.class, -35L);
|
||||
|
||||
permissionRepository.delete(permission);
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@ShouldThrowException(IllegalArgumentException.class)
|
||||
@InSequence(61)
|
||||
public void deleteNullPermission() {
|
||||
permissionRepository.delete(null);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,158 @@
|
|||
{
|
||||
"subjects":
|
||||
[
|
||||
{
|
||||
"subject_id": -10
|
||||
},
|
||||
{
|
||||
"subject_id": -20
|
||||
},
|
||||
{
|
||||
"subject_id": -30
|
||||
},
|
||||
{
|
||||
"subject_id": -40
|
||||
},
|
||||
{
|
||||
"subject_id": -50
|
||||
}
|
||||
],
|
||||
"ccm_users":
|
||||
[
|
||||
{
|
||||
"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": "admins",
|
||||
"subject_id": -20
|
||||
},
|
||||
{
|
||||
"name": "users",
|
||||
"subject_id": -30
|
||||
},
|
||||
{
|
||||
"name": "authors",
|
||||
"subject_id": -40
|
||||
}
|
||||
],
|
||||
"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
|
||||
}
|
||||
],
|
||||
"group_memberships":
|
||||
[
|
||||
{
|
||||
"membership_id": -10,
|
||||
"group_subject_id": -30,
|
||||
"user_subject_id": -10
|
||||
},
|
||||
{
|
||||
"membership_id": -20,
|
||||
"group_subject_id": -40,
|
||||
"user_subject_id": -10
|
||||
},
|
||||
{
|
||||
"membership_id": -30,
|
||||
"group_subject_id": -20,
|
||||
"user_subject_id": -50
|
||||
}
|
||||
],
|
||||
"ccm_privileges":
|
||||
[
|
||||
{
|
||||
"privilege_id": -10,
|
||||
"privilege": "admin"
|
||||
},
|
||||
{
|
||||
"privilege_id": -20,
|
||||
"privilege": "read"
|
||||
},
|
||||
{
|
||||
"privilege_id": -30,
|
||||
"privilege": "write"
|
||||
}
|
||||
],
|
||||
"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"
|
||||
}
|
||||
],
|
||||
"permissions":
|
||||
[
|
||||
{
|
||||
"permission_id": -10,
|
||||
"creation_date": "2015-07-29 14:32:46",
|
||||
"granted_privilege_id": -10,
|
||||
"grantee_id": -20
|
||||
},
|
||||
{
|
||||
"permission_id": -20,
|
||||
"creation_date": "2015-07-29 14:34:30",
|
||||
"granted_privilege_id": -20,
|
||||
"grantee_id": -30,
|
||||
"object_id": -10
|
||||
},
|
||||
{
|
||||
"permission_id": -30,
|
||||
"creation_date": "2015-07-29 14:36:05",
|
||||
"granted_privilege_id": -30,
|
||||
"grantee_id": -40,
|
||||
"object_id": -10
|
||||
},
|
||||
{
|
||||
"permission_id": -40,
|
||||
"creation_date": "2015-07-29 14:37:22",
|
||||
"granted_privilege_id": -20,
|
||||
"grantee_id": -10,
|
||||
"object_id": -20
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,165 @@
|
|||
{
|
||||
"subjects":
|
||||
[
|
||||
{
|
||||
"subject_id": -10
|
||||
},
|
||||
{
|
||||
"subject_id": -20
|
||||
},
|
||||
{
|
||||
"subject_id": -30
|
||||
},
|
||||
{
|
||||
"subject_id": -40
|
||||
},
|
||||
{
|
||||
"subject_id": -50
|
||||
}
|
||||
],
|
||||
"ccm_users":
|
||||
[
|
||||
{
|
||||
"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": "admins",
|
||||
"subject_id": -20
|
||||
},
|
||||
{
|
||||
"name": "users",
|
||||
"subject_id": -30
|
||||
},
|
||||
{
|
||||
"name": "authors",
|
||||
"subject_id": -40
|
||||
}
|
||||
],
|
||||
"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
|
||||
}
|
||||
],
|
||||
"group_memberships":
|
||||
[
|
||||
{
|
||||
"membership_id": -10,
|
||||
"group_subject_id": -30,
|
||||
"user_subject_id": -10
|
||||
},
|
||||
{
|
||||
"membership_id": -20,
|
||||
"group_subject_id": -40,
|
||||
"user_subject_id": -10
|
||||
},
|
||||
{
|
||||
"membership_id": -30,
|
||||
"group_subject_id": -20,
|
||||
"user_subject_id": -50
|
||||
}
|
||||
],
|
||||
"ccm_privileges":
|
||||
[
|
||||
{
|
||||
"privilege_id": -10,
|
||||
"privilege": "admin"
|
||||
},
|
||||
{
|
||||
"privilege_id": -20,
|
||||
"privilege": "read"
|
||||
},
|
||||
{
|
||||
"privilege_id": -30,
|
||||
"privilege": "write"
|
||||
}
|
||||
],
|
||||
"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"
|
||||
}
|
||||
],
|
||||
"permissions":
|
||||
[
|
||||
{
|
||||
"permission_id": -10,
|
||||
"creation_date": "2015-07-29 14:32:46",
|
||||
"granted_privilege_id": -10,
|
||||
"grantee_id": -20
|
||||
},
|
||||
{
|
||||
"permission_id": -20,
|
||||
"creation_date": "2015-07-29 14:34:30",
|
||||
"granted_privilege_id": -20,
|
||||
"grantee_id": -30,
|
||||
"object_id": -10
|
||||
},
|
||||
{
|
||||
"permission_id": -30,
|
||||
"creation_date": "2015-07-29 14:36:05",
|
||||
"granted_privilege_id": -30,
|
||||
"grantee_id": -40,
|
||||
"object_id": -10
|
||||
},
|
||||
{
|
||||
"permission_id": -35,
|
||||
"creation_date": "2015-07-29 14:57:55",
|
||||
"granted_privilege_id": -20,
|
||||
"grantee_id": -40,
|
||||
"object_id": -10
|
||||
},
|
||||
{
|
||||
"permission_id": -40,
|
||||
"creation_date": "2015-07-29 14:37:22",
|
||||
"granted_privilege_id": -20,
|
||||
"grantee_id": -30,
|
||||
"object_id": -20
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,177 @@
|
|||
{
|
||||
"subjects":
|
||||
[
|
||||
{
|
||||
"subject_id": -10
|
||||
},
|
||||
{
|
||||
"subject_id": -20
|
||||
},
|
||||
{
|
||||
"subject_id": -30
|
||||
},
|
||||
{
|
||||
"subject_id": -40
|
||||
},
|
||||
{
|
||||
"subject_id": -50
|
||||
}
|
||||
],
|
||||
"ccm_users":
|
||||
[
|
||||
{
|
||||
"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": "admins",
|
||||
"subject_id": -20
|
||||
},
|
||||
{
|
||||
"name": "users",
|
||||
"subject_id": -30
|
||||
},
|
||||
{
|
||||
"name": "authors",
|
||||
"subject_id": -40
|
||||
}
|
||||
],
|
||||
"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
|
||||
}
|
||||
],
|
||||
"group_memberships":
|
||||
[
|
||||
{
|
||||
"membership_id": -10,
|
||||
"group_subject_id": -30,
|
||||
"user_subject_id": -10
|
||||
},
|
||||
{
|
||||
"membership_id": -20,
|
||||
"group_subject_id": -40,
|
||||
"user_subject_id": -10
|
||||
},
|
||||
{
|
||||
"membership_id": -30,
|
||||
"group_subject_id": -20,
|
||||
"user_subject_id": -50
|
||||
}
|
||||
],
|
||||
"ccm_privileges":
|
||||
[
|
||||
{
|
||||
"privilege_id": -10,
|
||||
"privilege": "admin"
|
||||
},
|
||||
{
|
||||
"privilege_id": -20,
|
||||
"privilege": "read"
|
||||
},
|
||||
{
|
||||
"privilege_id": -30,
|
||||
"privilege": "write"
|
||||
}
|
||||
],
|
||||
"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"
|
||||
}
|
||||
],
|
||||
"permissions":
|
||||
[
|
||||
{
|
||||
"permission_id": -10,
|
||||
"creation_date": "2015-07-29 14:32:46",
|
||||
"granted_privilege_id": -10,
|
||||
"grantee_id": -20
|
||||
},
|
||||
{
|
||||
"permission_id": -20,
|
||||
"creation_date": "2015-07-29 14:34:30",
|
||||
"granted_privilege_id": -20,
|
||||
"grantee_id": -30,
|
||||
"object_id": -10
|
||||
},
|
||||
{
|
||||
"permission_id": -30,
|
||||
"creation_date": "2015-07-29 14:36:05",
|
||||
"granted_privilege_id": -30,
|
||||
"grantee_id": -40,
|
||||
"object_id": -10
|
||||
},
|
||||
{
|
||||
"permission_id": -35,
|
||||
"creation_date": "2015-07-29 14:57:55",
|
||||
"granted_privilege_id": -20,
|
||||
"grantee_id": -40,
|
||||
"object_id": -10
|
||||
},
|
||||
{
|
||||
"permission_id": -40,
|
||||
"creation_date": "2015-07-29 14:37:22",
|
||||
"granted_privilege_id": -20,
|
||||
"grantee_id": -10,
|
||||
"object_id": -20
|
||||
},
|
||||
{
|
||||
"permission_id": -50,
|
||||
"granted_privilege_id": -20,
|
||||
"grantee_id": -50,
|
||||
"object_id": -40
|
||||
},
|
||||
{
|
||||
"permission_id": -50,
|
||||
"granted_privilege_id": -30,
|
||||
"grantee_id": -50,
|
||||
"object_id": -40
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue