Add brackets in KeychainProvider

This commit is contained in:
Dominik Schürmann
2015-06-29 09:24:34 +02:00
parent 5b320d01d0
commit 99c06b085b

View File

@@ -520,7 +520,6 @@ public class KeychainProvider extends ContentProvider {
} }
break; break;
} }
case KEY_RINGS_PUBLIC: case KEY_RINGS_PUBLIC:
@@ -607,23 +606,26 @@ public class KeychainProvider extends ContentProvider {
break; break;
} }
case API_APPS: case API_APPS: {
qb.setTables(Tables.API_APPS); qb.setTables(Tables.API_APPS);
break; break;
case API_APPS_BY_PACKAGE_NAME: }
case API_APPS_BY_PACKAGE_NAME: {
qb.setTables(Tables.API_APPS); qb.setTables(Tables.API_APPS);
qb.appendWhere(ApiApps.PACKAGE_NAME + " = "); qb.appendWhere(ApiApps.PACKAGE_NAME + " = ");
qb.appendWhereEscapeString(uri.getLastPathSegment()); qb.appendWhereEscapeString(uri.getLastPathSegment());
break; break;
case API_ACCOUNTS: }
case API_ACCOUNTS: {
qb.setTables(Tables.API_ACCOUNTS); qb.setTables(Tables.API_ACCOUNTS);
qb.appendWhere(Tables.API_ACCOUNTS + "." + ApiAccounts.PACKAGE_NAME + " = "); qb.appendWhere(Tables.API_ACCOUNTS + "." + ApiAccounts.PACKAGE_NAME + " = ");
qb.appendWhereEscapeString(uri.getPathSegments().get(1)); qb.appendWhereEscapeString(uri.getPathSegments().get(1));
break; break;
case API_ACCOUNTS_BY_ACCOUNT_NAME: }
case API_ACCOUNTS_BY_ACCOUNT_NAME: {
qb.setTables(Tables.API_ACCOUNTS); qb.setTables(Tables.API_ACCOUNTS);
qb.appendWhere(Tables.API_ACCOUNTS + "." + ApiAccounts.PACKAGE_NAME + " = "); qb.appendWhere(Tables.API_ACCOUNTS + "." + ApiAccounts.PACKAGE_NAME + " = ");
qb.appendWhereEscapeString(uri.getPathSegments().get(1)); qb.appendWhereEscapeString(uri.getPathSegments().get(1));
@@ -632,14 +634,17 @@ public class KeychainProvider extends ContentProvider {
qb.appendWhereEscapeString(uri.getLastPathSegment()); qb.appendWhereEscapeString(uri.getLastPathSegment());
break; break;
case API_ALLOWED_KEYS: }
case API_ALLOWED_KEYS: {
qb.setTables(Tables.API_ALLOWED_KEYS); qb.setTables(Tables.API_ALLOWED_KEYS);
qb.appendWhere(Tables.API_ALLOWED_KEYS + "." + ApiAccounts.PACKAGE_NAME + " = "); qb.appendWhere(Tables.API_ALLOWED_KEYS + "." + ApiAccounts.PACKAGE_NAME + " = ");
qb.appendWhereEscapeString(uri.getPathSegments().get(1)); qb.appendWhereEscapeString(uri.getPathSegments().get(1));
break; break;
default: }
default: {
throw new IllegalArgumentException("Unknown URI " + uri + " (" + match + ")"); throw new IllegalArgumentException("Unknown URI " + uri + " (" + match + ")");
}
} }
@@ -684,47 +689,47 @@ public class KeychainProvider extends ContentProvider {
final int match = mUriMatcher.match(uri); final int match = mUriMatcher.match(uri);
switch (match) { switch (match) {
case KEY_RING_PUBLIC: case KEY_RING_PUBLIC: {
db.insertOrThrow(Tables.KEY_RINGS_PUBLIC, null, values); db.insertOrThrow(Tables.KEY_RINGS_PUBLIC, null, values);
keyId = values.getAsLong(KeyRings.MASTER_KEY_ID); keyId = values.getAsLong(KeyRings.MASTER_KEY_ID);
break; break;
}
case KEY_RING_SECRET: case KEY_RING_SECRET: {
db.insertOrThrow(Tables.KEY_RINGS_SECRET, null, values); db.insertOrThrow(Tables.KEY_RINGS_SECRET, null, values);
keyId = values.getAsLong(KeyRings.MASTER_KEY_ID); keyId = values.getAsLong(KeyRings.MASTER_KEY_ID);
break; break;
}
case KEY_RING_KEYS: case KEY_RING_KEYS: {
db.insertOrThrow(Tables.KEYS, null, values); db.insertOrThrow(Tables.KEYS, null, values);
keyId = values.getAsLong(Keys.MASTER_KEY_ID); keyId = values.getAsLong(Keys.MASTER_KEY_ID);
break; break;
}
case KEY_RING_USER_IDS: case KEY_RING_USER_IDS: {
// iff TYPE is null, user_id MUST be null as well // iff TYPE is null, user_id MUST be null as well
if ( ! (values.get(UserPacketsColumns.TYPE) == null if (!(values.get(UserPacketsColumns.TYPE) == null
? (values.get(UserPacketsColumns.USER_ID) != null && values.get(UserPacketsColumns.ATTRIBUTE_DATA) == null) ? (values.get(UserPacketsColumns.USER_ID) != null && values.get(UserPacketsColumns.ATTRIBUTE_DATA) == null)
: (values.get(UserPacketsColumns.ATTRIBUTE_DATA) != null && values.get(UserPacketsColumns.USER_ID) == null) : (values.get(UserPacketsColumns.ATTRIBUTE_DATA) != null && values.get(UserPacketsColumns.USER_ID) == null)
)) { )) {
throw new AssertionError("Incorrect type for user packet! This is a bug!"); throw new AssertionError("Incorrect type for user packet! This is a bug!");
} }
if (((Number)values.get(UserPacketsColumns.RANK)).intValue() == 0 && values.get(UserPacketsColumns.USER_ID) == null) { if (((Number) values.get(UserPacketsColumns.RANK)).intValue() == 0 && values.get(UserPacketsColumns.USER_ID) == null) {
throw new AssertionError("Rank 0 user packet must be a user id!"); throw new AssertionError("Rank 0 user packet must be a user id!");
} }
db.insertOrThrow(Tables.USER_PACKETS, null, values); db.insertOrThrow(Tables.USER_PACKETS, null, values);
keyId = values.getAsLong(UserPackets.MASTER_KEY_ID); keyId = values.getAsLong(UserPackets.MASTER_KEY_ID);
break; break;
}
case KEY_RING_CERTS: case KEY_RING_CERTS: {
// we replace here, keeping only the latest signature // we replace here, keeping only the latest signature
// TODO this would be better handled in savePublicKeyRing directly! // TODO this would be better handled in savePublicKeyRing directly!
db.replaceOrThrow(Tables.CERTS, null, values); db.replaceOrThrow(Tables.CERTS, null, values);
keyId = values.getAsLong(Certs.MASTER_KEY_ID); keyId = values.getAsLong(Certs.MASTER_KEY_ID);
break; break;
}
case API_APPS: case API_APPS: {
db.insertOrThrow(Tables.API_APPS, null, values); db.insertOrThrow(Tables.API_APPS, null, values);
break; break;
}
case API_ACCOUNTS: { case API_ACCOUNTS: {
// set foreign key automatically based on given uri // set foreign key automatically based on given uri
// e.g., api_apps/com.example.app/accounts/ // e.g., api_apps/com.example.app/accounts/
@@ -743,8 +748,9 @@ public class KeychainProvider extends ContentProvider {
db.insertOrThrow(Tables.API_ALLOWED_KEYS, null, values); db.insertOrThrow(Tables.API_ALLOWED_KEYS, null, values);
break; break;
} }
default: default: {
throw new UnsupportedOperationException("Unknown uri: " + uri); throw new UnsupportedOperationException("Unknown uri: " + uri);
}
} }
if (keyId != null) { if (keyId != null) {
@@ -802,20 +808,24 @@ public class KeychainProvider extends ContentProvider {
break; break;
} }
case API_APPS_BY_PACKAGE_NAME: case API_APPS_BY_PACKAGE_NAME: {
count = db.delete(Tables.API_APPS, buildDefaultApiAppsSelection(uri, additionalSelection), count = db.delete(Tables.API_APPS, buildDefaultApiAppsSelection(uri, additionalSelection),
selectionArgs); selectionArgs);
break; break;
case API_ACCOUNTS_BY_ACCOUNT_NAME: }
case API_ACCOUNTS_BY_ACCOUNT_NAME: {
count = db.delete(Tables.API_ACCOUNTS, buildDefaultApiAccountsSelection(uri, additionalSelection), count = db.delete(Tables.API_ACCOUNTS, buildDefaultApiAccountsSelection(uri, additionalSelection),
selectionArgs); selectionArgs);
break; break;
case API_ALLOWED_KEYS: }
case API_ALLOWED_KEYS: {
count = db.delete(Tables.API_ALLOWED_KEYS, buildDefaultApiAllowedKeysSelection(uri, additionalSelection), count = db.delete(Tables.API_ALLOWED_KEYS, buildDefaultApiAllowedKeysSelection(uri, additionalSelection),
selectionArgs); selectionArgs);
break; break;
default: }
default: {
throw new UnsupportedOperationException("Unknown uri: " + uri); throw new UnsupportedOperationException("Unknown uri: " + uri);
}
} }
// notify of changes in db // notify of changes in db
@@ -851,16 +861,19 @@ public class KeychainProvider extends ContentProvider {
count = db.update(Tables.KEYS, values, actualSelection, selectionArgs); count = db.update(Tables.KEYS, values, actualSelection, selectionArgs);
break; break;
} }
case API_APPS_BY_PACKAGE_NAME: case API_APPS_BY_PACKAGE_NAME: {
count = db.update(Tables.API_APPS, values, count = db.update(Tables.API_APPS, values,
buildDefaultApiAppsSelection(uri, selection), selectionArgs); buildDefaultApiAppsSelection(uri, selection), selectionArgs);
break; break;
case API_ACCOUNTS_BY_ACCOUNT_NAME: }
case API_ACCOUNTS_BY_ACCOUNT_NAME: {
count = db.update(Tables.API_ACCOUNTS, values, count = db.update(Tables.API_ACCOUNTS, values,
buildDefaultApiAccountsSelection(uri, selection), selectionArgs); buildDefaultApiAccountsSelection(uri, selection), selectionArgs);
break; break;
default: }
default: {
throw new UnsupportedOperationException("Unknown uri: " + uri); throw new UnsupportedOperationException("Unknown uri: " + uri);
}
} }
// notify of changes in db // notify of changes in db