@@ -213,7 +213,8 @@ - (void)updateEnvironmentWithDictionary:(NSDictionary *)dict {
213213 NSArray *regFilters = [self filtersFromDictArray: missingAndStandardFilters[@" standard" ]
214214 usingFields: [dict objectForKey: @" fields" ]];
215215
216- NSArray *missingFilters = [self missingFiltersFromDictArray: missingAndStandardFilters[@" missing" ]];
216+ NSArray *missingFilters = [self missingFiltersFromDictArray: missingAndStandardFilters[@" missing" ]
217+ usingFields: [dict objectForKey: @" fields" ]];
217218
218219 self.filters = [regFilters arrayByAddingObjectsFromArray: missingFilters];
219220
@@ -260,12 +261,16 @@ - (void)updateEnvironmentWithDictionary:(NSDictionary *)dict {
260261 * All missing filters are boolean filters with "existenceFilter"
261262 * set to true.
262263 */
263- - (NSArray *)missingFiltersFromDictArray : (NSArray *)filterlist {
264+ - (NSArray *)missingFiltersFromDictArray : (NSArray *)filterlist usingFields : ( NSDictionary *) fieldDict {
264265 NSMutableArray *filterArray = [NSMutableArray array ];
265266
266267 [filterlist enumerateObjectsUsingBlock: ^(NSDictionary *filter, NSUInteger idx, BOOL *stop) {
267268 NSString *fieldKey = filter[@" identifier" ];
268269 NSString *fieldName = filter[@" label" ];
270+
271+ if ([fieldDict objectForKey: fieldKey] == nil ) {
272+ return ; // Skip field because user lacks read permission
273+ }
269274
270275 OTMFilter *afilter = [[OTMBoolFilter alloc ] initWithName: fieldName
271276 key: fieldKey
@@ -287,6 +292,10 @@ - (NSArray *)filtersFromDictArray:(NSArray *)filterlist usingFields:(NSDictionar
287292 NSString *fieldName = filter[@" label" ];
288293 NSString *filterType = filter[@" search_type" ];
289294
295+ if ([fDict objectForKey: fieldKey] == nil ) {
296+ return ; // Skip field because user lacks read permission
297+ }
298+
290299 OTMFilter *afilter = nil ;
291300
292301 if ([filterType isEqualToString: @" CHOICE" ] || [filterType isEqualToString: @" MULTICHOICE" ]) {
0 commit comments