diff --git a/OpenTreeMap/resources/MainStoryboard_iPhone.storyboard b/OpenTreeMap/resources/MainStoryboard_iPhone.storyboard
index d6407ae..b64901c 100644
--- a/OpenTreeMap/resources/MainStoryboard_iPhone.storyboard
+++ b/OpenTreeMap/resources/MainStoryboard_iPhone.storyboard
@@ -298,7 +298,7 @@
-
+
diff --git a/OpenTreeMap/src/OTM/OTMEnvironment.m b/OpenTreeMap/src/OTM/OTMEnvironment.m
index 997f9e3..ba159e9 100644
--- a/OpenTreeMap/src/OTM/OTMEnvironment.m
+++ b/OpenTreeMap/src/OTM/OTMEnvironment.m
@@ -213,7 +213,8 @@ - (void)updateEnvironmentWithDictionary:(NSDictionary *)dict {
NSArray *regFilters = [self filtersFromDictArray:missingAndStandardFilters[@"standard"]
usingFields:[dict objectForKey:@"fields"]];
- NSArray *missingFilters = [self missingFiltersFromDictArray:missingAndStandardFilters[@"missing"]];
+ NSArray *missingFilters = [self missingFiltersFromDictArray:missingAndStandardFilters[@"missing"]
+ usingFields:[dict objectForKey:@"fields"]];
self.filters = [regFilters arrayByAddingObjectsFromArray:missingFilters];
@@ -260,12 +261,16 @@ - (void)updateEnvironmentWithDictionary:(NSDictionary *)dict {
* All missing filters are boolean filters with "existenceFilter"
* set to true.
*/
-- (NSArray *)missingFiltersFromDictArray:(NSArray *)filterlist {
+- (NSArray *)missingFiltersFromDictArray:(NSArray *)filterlist usingFields:(NSDictionary *)fieldDict {
NSMutableArray *filterArray = [NSMutableArray array];
[filterlist enumerateObjectsUsingBlock:^(NSDictionary *filter, NSUInteger idx, BOOL *stop) {
NSString *fieldKey = filter[@"identifier"];
NSString *fieldName = filter[@"label"];
+
+ if ([fieldDict objectForKey:fieldKey] == nil) {
+ return; // Skip field because user lacks read permission
+ }
OTMFilter *afilter = [[OTMBoolFilter alloc] initWithName:fieldName
key:fieldKey
@@ -287,6 +292,10 @@ - (NSArray *)filtersFromDictArray:(NSArray *)filterlist usingFields:(NSDictionar
NSString *fieldName = filter[@"label"];
NSString *filterType = filter[@"search_type"];
+ if ([fDict objectForKey:fieldKey] == nil) {
+ return; // Skip field because user lacks read permission
+ }
+
OTMFilter *afilter = nil;
if ([filterType isEqualToString:@"CHOICE"] || [filterType isEqualToString:@"MULTICHOICE"]) {