include ROLES collection in bug4006 test set-up

This commit is contained in:
Axel Uhl
2019-12-03 10:04:32 +01:00
parent 49c335cc60
commit 7cb5062e31
10 changed files with 31 additions and 11 deletions
Regular → Executable
+4 -1
View File
@@ -13,10 +13,13 @@ buildscript {
}
}
dependencies {
classpath "com.android.tools.build:gradle:3.3.2"
classpath 'com.android.tools.build:gradle:3.5.1'
classpath "com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.3"
classpath "org.ajoberstar:grgit:2.3.0"
}
repositories {
google()
}
}
allprojects {
if (project.hasProperty("xmake")) {
+2 -2
View File
@@ -1,6 +1,6 @@
#Mon Mar 25 11:05:18 CET 2019
#Tue Dec 03 09:29:43 CET 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.3-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
@@ -59,7 +59,7 @@ public class TestSimpleUserAndPreferenceMerge {
private void fill(final String variant, final MongoDatabase db) throws IOException {
for (final CollectionNames collectionName : new CollectionNames[] { CollectionNames.USERS,
CollectionNames.USER_GROUPS, CollectionNames.OWNERSHIPS, CollectionNames.ACCESS_CONTROL_LISTS,
CollectionNames.PREFERENCES }) {
CollectionNames.PREFERENCES, CollectionNames.ROLES }) {
fill(collectionName, variant, db);
}
}
@@ -159,6 +159,10 @@ public class TestSimpleUserAndPreferenceMerge {
assertEquals(3, Util.size(targetUserStore.getUserGroupByName("uhl-tenant").getUsers()));
assertTrue(Util.contains(targetUserStore.getUserGroupByName("uhl-tenant").getUsers(), targetUserStore.getUserByName("uhl")));
assertTrue(Util.contains(targetUserStore.getUserGroupByName("uhl-tenant").getUsers(), targetUserStore.getUserByName("uhl3")));
assertTrue(Util.contains(targetUserStore.getUserGroupByName("uhl-tenant").getUsers(), targetUserStore.getUserByName("uhl4")));
final UserGroup testTenantGroupInTarget = targetUserStore.getUserGroup(UUID.fromString("fbfc1d06-ef0c-40c7-a056-355c68a31162"));
assertSame(testTenantGroupInTarget, targetAccessControlStore.getOwnership(testTenantGroupInTarget.getIdentifier()));
final User uhl4InTarget = targetUserStore.getUserByName("uhl4");
assertTrue(Util.contains(targetUserStore.getUserGroupByName("uhl-tenant").getUsers(), uhl4InTarget));
assertSame(uhl4InTarget, targetAccessControlStore.getOwnership(uhl4InTarget.getIdentifier()).getAnnotation().getUserOwner());
}
}
@@ -0,0 +1,6 @@
{"_id":{"$oid":"5de620e6c5d3cd1156696ff4"},"ID":"dc77e3d1-d405-435e-8699-ce7245f6fd7a","NAME":"admin","PERMISSIONS":["*"]}
{"_id":{"$oid":"5de620e6c5d3cd1156696ff7"},"ID":"ad1d5148-b13d-4464-90c4-7c396e4d4e2e","NAME":"user","PERMISSIONS":["*:CHANGE_ACL,CHANGE_OWNERSHIP,CREATE,DELETE,READ,READ_PUBLIC,UPDATE"]}
{"_id":{"$oid":"5de620e6c5d3cd1156696ffa"},"ID":"244cb84c-2b8a-4557-b175-db963072cfbc","NAME":"spectator","PERMISSIONS":[]}
{"_id":{"$oid":"5de620e6c5d3cd1156696ffd"},"ID":"91c88a11-c977-4c24-b0a6-15bac0525764","NAME":"moderator","PERMISSIONS":["TRACKED_RACE:CAN_REPLAY_DURING_LIVE_RACES,DETAIL_TIMER"]}
{"_id":{"$oid":"5de620e6c5d3cd1156697000"},"ID":"2e22583b-c9c1-4ee4-8231-e8e320a8a411","NAME":"mediaeditor","PERMISSIONS":["MEDIA_TRACK:*"]}
{"_id":{"$oid":"5de620f7c5d3cd1156697010"},"ID":"c42948df-517b-45cb-9fa9-d1e79f18e115","NAME":"sailing_viewer","PERMISSIONS":["EVENT,LEADERBOARD,LEADERBOARD_GROUP,MEDIA_TRACK,REGATTA,SIMULATOR,TRACKED_RACE:READ","BOAT,COMPETITOR:READ_PUBLIC"]}
@@ -0,0 +1,6 @@
{"_id":{"$oid":"5de620e6c5d3cd1156696ff4"},"ID":"dc77e3d1-d405-435e-8699-ce7245f6fd7a","NAME":"admin","PERMISSIONS":["*"]}
{"_id":{"$oid":"5de620e6c5d3cd1156696ff7"},"ID":"ad1d5148-b13d-4464-90c4-7c396e4d4e2e","NAME":"user","PERMISSIONS":["*:CHANGE_ACL,CHANGE_OWNERSHIP,CREATE,DELETE,READ,READ_PUBLIC,UPDATE"]}
{"_id":{"$oid":"5de620e6c5d3cd1156696ffa"},"ID":"244cb84c-2b8a-4557-b175-db963072cfbc","NAME":"spectator","PERMISSIONS":[]}
{"_id":{"$oid":"5de620e6c5d3cd1156696ffd"},"ID":"91c88a11-c977-4c24-b0a6-15bac0525764","NAME":"moderator","PERMISSIONS":["TRACKED_RACE:CAN_REPLAY_DURING_LIVE_RACES,DETAIL_TIMER"]}
{"_id":{"$oid":"5de620e6c5d3cd1156697000"},"ID":"2e22583b-c9c1-4ee4-8231-e8e320a8a411","NAME":"mediaeditor","PERMISSIONS":["MEDIA_TRACK:*"]}
{"_id":{"$oid":"5de620f7c5d3cd1156697010"},"ID":"c42948df-517b-45cb-9fa9-d1e79f18e115","NAME":"sailing_viewer","PERMISSIONS":["EVENT,LEADERBOARD,LEADERBOARD_GROUP,MEDIA_TRACK,REGATTA,SIMULATOR,TRACKED_RACE:READ","BOAT,COMPETITOR:READ_PUBLIC"]}
@@ -1,4 +1,4 @@
{"_id":{"$oid":"5ddfe8a5c0825924ce5d3372"},"NAME":"admin","EMAIL":"nobody@sapsailing.com","FULLNAME":null,"COMPANY":null,"LOCALE":"en","EMAIL_VALIDATED":false,"PASSWORD_RESET_SECRET":null,"VALIDATION_SECRET":"gQk1gJ0RflR1kH9mFURUCit8zkSxPgHBJLH0xQyxh9U=","ACCOUNTS":{"USERNAME_PASSWORD":{"NAME":"admin","SALTED_PW":"kJHG4alnTQQ7qf9g0FImGjX6amL7qvjeBAaK8amy8m4=","SALT":{"$binary":"8ez9IK8a1/IhaORnDOQjQg==","$type":"00"}}},"ROLE_IDS":[{"ID":{"$binary":"XkMF1NHjd9x6/fZFcs6Zhg==","$type":"03"},"NAME":"admin","QUALIFYING_TENANT_ID":null,"QUALIFYING_TENANT_NAME":null,"QUALIFYING_USERNAME":null},{"ID":{"$binary":"ZEQ9sUhRHa0uTk1uOXzEkA==","$type":"03"},"NAME":"user","QUALIFYING_TENANT_ID":null,"QUALIFYING_TENANT_NAME":null,"QUALIFYING_USERNAME":"admin"},{"ID":{"$binary":"ZEQ9sUhRHa0uTk1uOXzEkA==","$type":"03"},"NAME":"user","QUALIFYING_TENANT_ID":{"$binary":"qUeT6Zd7VNQQlZrKA/wyug==","$type":"03"},"QUALIFYING_TENANT_NAME":"admin-tenant","QUALIFYING_USERNAME":null}],"PERMISSIONS":[],"DEFAULT_TENANT_IDS":[{"DEFAULT_TENANT_SERVER":"unknown server name","DEFAULT_TENANT_GROUP":{"$binary":"x0AM7wYd/PtiEaNoXDVWoA==","$type":"03"}}]}
{"_id":{"$oid":"5ddfe8a5c0825924ce5d3372"},"NAME":"admin","EMAIL":"nobody@sapsailing.com","FULLNAME":null,"COMPANY":null,"LOCALE":"en","EMAIL_VALIDATED":false,"PASSWORD_RESET_SECRET":null,"VALIDATION_SECRET":"gQk1gJ0RflR1kH9mFURUCit8zkSxPgHBJLH0xQyxh9U=","ACCOUNTS":{"USERNAME_PASSWORD":{"NAME":"admin","SALTED_PW":"kJHG4alnTQQ7qf9g0FImGjX6amL7qvjeBAaK8amy8m4=","SALT":{"$binary":"8ez9IK8a1/IhaORnDOQjQg==","$type":"00"}}},"ROLE_IDS":[{"ID":{"$binary":"XkMF1NHjd9x6/fZFcs6Zhg==","$type":"03"},"NAME":"admin","QUALIFYING_TENANT_ID":null,"QUALIFYING_TENANT_NAME":null,"QUALIFYING_USERNAME":null},{"ID":{"$binary":"ZEQ9sUhRHa0uTk1uOXzEkA==","$type":"03"},"NAME":"user","QUALIFYING_TENANT_ID":null,"QUALIFYING_TENANT_NAME":null,"QUALIFYING_USERNAME":"admin"},{"ID":{"$binary":"ZEQ9sUhRHa0uTk1uOXzEkA==","$type":"03"},"NAME":"user","QUALIFYING_TENANT_ID":{"$binary":"qUeT6Zd7VNQQlZrKA/wyug==","$type":"03"},"QUALIFYING_TENANT_NAME":"admin-tenant","QUALIFYING_USERNAME":null}],"PERMISSIONS":[],"DEFAULT_TENANT_IDS":[{"DEFAULT_TENANT_SERVER":"test","DEFAULT_TENANT_GROUP":{"$binary":"x0AM7wYd/PtiEaNoXDVWoA==","$type":"03"}}]}
{"_id":{"$oid":"5ddfe8a5c0825924ce5d3399"},"NAME":"\u003call\u003e","EMAIL":null,"FULLNAME":null,"COMPANY":null,"LOCALE":null,"EMAIL_VALIDATED":false,"PASSWORD_RESET_SECRET":null,"VALIDATION_SECRET":null,"ACCOUNTS":{},"ROLE_IDS":[],"PERMISSIONS":["USER:CREATE"],"DEFAULT_TENANT_IDS":[]}
{"_id":{"$oid":"5ddfe8dbc0825924ce5d3727"},"NAME":"uhl","EMAIL":"axel.uhl@sap.com","FULLNAME":null,"COMPANY":null,"LOCALE":null,"EMAIL_VALIDATED":false,"PASSWORD_RESET_SECRET":null,"VALIDATION_SECRET":null,"ACCOUNTS":{"USERNAME_PASSWORD":{"NAME":"uhl","SALTED_PW":"lBLxVQfjWe0BSZ5rtKLIBd1FeUD3swQ1YU5707bOWEo=","SALT":{"$binary":"I8IjhQXpaisTxKCB27xViw==","$type":"00"}}},"ROLE_IDS":[{"ID":{"$binary":"ZEQ9sUhRHa0uTk1uOXzEkA==","$type":"03"},"NAME":"user","QUALIFYING_TENANT_ID":null,"QUALIFYING_TENANT_NAME":null,"QUALIFYING_USERNAME":"uhl"},{"ID":{"$binary":"ZEQ9sUhRHa0uTk1uOXzEkA==","$type":"03"},"NAME":"user","QUALIFYING_TENANT_ID":{"$binary":"I0GFS4Jm0TchSMp0SluUnQ==","$type":"03"},"QUALIFYING_TENANT_NAME":"uhl-tenant","QUALIFYING_USERNAME":null}],"PERMISSIONS":[],"DEFAULT_TENANT_IDS":[{"DEFAULT_TENANT_SERVER":"unknown server name","DEFAULT_TENANT_GROUP":{"$binary":"I0GFS4Jm0TchSMp0SluUnQ==","$type":"03"}}]}
{"_id":{"$oid":"5ddfe8ebc0825924ce5d374b"},"NAME":"uhl3","EMAIL":"axel.uhl@sap.com","FULLNAME":null,"COMPANY":null,"LOCALE":null,"EMAIL_VALIDATED":false,"PASSWORD_RESET_SECRET":null,"VALIDATION_SECRET":null,"ACCOUNTS":{"USERNAME_PASSWORD":{"NAME":"uhl3","SALTED_PW":"07vtuiUbOZF3b9DvqnkKPu7jXOhNpOWba90y9R8BFZk=","SALT":{"$binary":"cokHTYjlShneyh8GtPYICA==","$type":"00"}}},"ROLE_IDS":[{"ID":{"$binary":"ZEQ9sUhRHa0uTk1uOXzEkA==","$type":"03"},"NAME":"user","QUALIFYING_TENANT_ID":null,"QUALIFYING_TENANT_NAME":null,"QUALIFYING_USERNAME":"uhl3"},{"ID":{"$binary":"ZEQ9sUhRHa0uTk1uOXzEkA==","$type":"03"},"NAME":"user","QUALIFYING_TENANT_ID":{"$binary":"jUctEl255OAdcqbVAQ39iQ==","$type":"03"},"QUALIFYING_TENANT_NAME":"uhl3-tenant","QUALIFYING_USERNAME":null}],"PERMISSIONS":[],"DEFAULT_TENANT_IDS":[{"DEFAULT_TENANT_SERVER":"unknown server name","DEFAULT_TENANT_GROUP":{"$binary":"jUctEl255OAdcqbVAQ39iQ==","$type":"03"}}]}
@@ -1,4 +1,4 @@
{"_id":{"$oid":"5ddfe8a5c0825924ce5d3369"},"ID":{"$binary":"x0AM7wYd/PtiEaNoXDVWoA==","$type":"03"},"NAME":"unknown server name-server","USERNAMES":["admin"],"ROLE_DEFINITION_MAP":[{"ROLE_DEFINITION_MAP_ROLE_ID":{"$binary":"y0V7Ud9IKcQV4Rif59Gpnw==","$type":"03"},"ROLE_DEFINITION_MAP_FOR_ALL":true}]}
{"_id":{"$oid":"5ddfe8a5c0825924ce5d3369"},"ID":{"$binary":"x0AM7wYd/PtiEaNoXDVWoA==","$type":"03"},"NAME":"test-server","USERNAMES":["admin"],"ROLE_DEFINITION_MAP":[{"ROLE_DEFINITION_MAP_ROLE_ID":{"$binary":"y0V7Ud9IKcQV4Rif59Gpnw==","$type":"03"},"ROLE_DEFINITION_MAP_FOR_ALL":true}]}
{"_id":{"$oid":"5ddfe8a5c0825924ce5d337a"},"ID":{"$binary":"qUeT6Zd7VNQQlZrKA/wyug==","$type":"03"},"NAME":"admin-tenant","USERNAMES":["admin"],"ROLE_DEFINITION_MAP":[]}
{"_id":{"$oid":"5ddfe8dbc0825924ce5d372f"},"ID":{"$binary":"I0GFS4Jm0TchSMp0SluUnQ==","$type":"03"},"NAME":"uhl-tenant","USERNAMES":["uhl","uhl4","uhl3"],"ROLE_DEFINITION_MAP":[]}
{"_id":{"$oid":"5ddfe8ebc0825924ce5d3753"},"ID":{"$binary":"jUctEl255OAdcqbVAQ39iQ==","$type":"03"},"NAME":"uhl3-tenant","USERNAMES":["uhl3"],"ROLE_DEFINITION_MAP":[]}
@@ -2,7 +2,7 @@
variant=$1
dbname=$2
export PATH="${PATH}:/cygdrive/c/Program Files/MongoDB/Server/3.6/bin"
COLLECTIONS="USERS USER_GROUPS OWNERSHIPS ACCESS_CONTROL_LISTS PREFERENCES"
COLLECTIONS="USERS USER_GROUPS OWNERSHIPS ACCESS_CONTROL_LISTS PREFERENCES ROLES"
for c in $COLLECTIONS; do
mongoexport -d $dbname -c $c >${c}_${variant}.json
done
@@ -2,7 +2,7 @@
variant=$1
dbname=$2
export PATH="${PATH}:/cygdrive/c/Program Files/MongoDB/Server/3.6/bin"
COLLECTIONS="USERS USER_GROUPS OWNERSHIPS ACCESS_CONTROL_LISTS PREFERENCES"
COLLECTIONS="USERS USER_GROUPS OWNERSHIPS ACCESS_CONTROL_LISTS PREFERENCES ROLES"
for c in $COLLECTIONS; do
mongoimport --drop -d $dbname -c $c ${c}_${variant}.json
done
@@ -200,7 +200,7 @@ public class SecurityStoreMerger {
if (qualifiedForGroup != null) {
groupQualifierInTarget = userGroupMap.get(qualifiedForGroup);
if (groupQualifierInTarget == null) {
logger.severe("Group qualifying role "+role+" for user "+sourceUser+" will be dropped. Dropping role.");
logger.severe("Group qualifying role "+role+" for user "+sourceUser.getName()+" will be dropped. Dropping role.");
rolesToRemoveBecauseOfLostOrMissingQualifier.add(role);
}
} else {
@@ -208,7 +208,7 @@ public class SecurityStoreMerger {
}
if (!rolesToRemoveBecauseOfLostOrMissingQualifier.contains(role) &&
(qualifiedForUser != userQualifierInTarget || qualifiedForGroup != groupQualifierInTarget)) {
logger.info("Qualifying user/group for role "+role+" on user "+sourceUser+
logger.info("Qualifying user/group for role "+role+" on user "+sourceUser.getName()+
" merged to target. Updating role");
rolesToReplaceDueToChangingQualifierObject.put(role,
new Role(targetRoleDefinition, groupQualifierInTarget, userQualifierInTarget));
@@ -256,6 +256,7 @@ public class SecurityStoreMerger {
final User userOwnership = sourceOwnership.getAnnotation().getUserOwner();
final UserGroup targetGroupOwnership = userGroupMap.get(groupOwnership);
final User targetUserOwnership = userMap.get(userOwnership);
// FIXME && seems wrong; should be || instead
if (targetGroupOwnership != null && targetUserOwnership != null) {
if (targetGroupOwnership != groupOwnership || targetUserOwnership != userOwnership) {
// something changed, and at least one ownership component is not null; create new annotation: