*** session_orig.py 2018-09-13 12:35:00.000000000 +0200 --- session.py 2018-09-20 12:09:03.732659665 +0200 *************** *** 343,348 **** --- 343,361 ---- 'keywords': list(set(module.keywords + [self.i18n._(keyword, translationId) for keyword in module.keywords])), 'version': module.version, }) + + vmod = self._get_user_visible_modules() + if vmod is not None: + vmod_array = vmod.split(',') + CORE.info('Reducing modules to %s' % vmod_array) + temp_modules = [] + for m in modules: + if '%s:%s' % (m.get('id'),m.get('flavor')) in vmod_array: + temp_modules.append(m) + elif m.get('id') in vmod_array: + temp_modules.append(m) + modules = temp_modules + CORE.info('Modules: %s' % (modules,)) res = Response(request) res.body['modules'] = modules *************** *** 354,359 **** --- 367,380 ---- favorites = self._get_user_preferences(self.get_user_ldap_connection()).setdefault('favorites', ucr.get('umc/web/favorites/default', '')).strip() return set(favorites.split(',')) + def _get_user_visible_modules(self): + """ only if present: the list of modules to be shown in UMC overview """ + if self._user_dn: + prefs = self._get_user_preferences(self.get_user_ldap_connection()) + if prefs is not None: + return prefs.get('modules',None) + return None + def handle_request_get_categories(self, request): categoryManager.load() ucr.load()