diff --git management/univention-directory-manager-modules/modules/univention/admin/handlers/__init__.py management/univention-directory-manager-modules/modules/univention/admin/handlers/__init__.py index f36716c9da..d1b6902258 100644 --- management/univention-directory-manager-modules/modules/univention/admin/handlers/__init__.py +++ management/univention-directory-manager-modules/modules/univention/admin/handlers/__init__.py @@ -1298,7 +1298,7 @@ class simpleLdap(object): ocs = set() # type: Set[str] for prop in getattr(m, 'extended_udm_attributes', []): ud.debug(ud.ADMIN, ud.INFO, 'simpleLdap._create: info[%s]:%r = %r' % (prop.name, self.has_property(prop.name), self.info.get(prop.name))) - if prop.syntax == 'boolean' and self.info.get(prop.name) == u'0': + if prop.syntax == 'boolean' and self.info.get(prop.name) == u'0' and self.module != 'settings/usertemplate': continue if self.has_property(prop.name) and self.info.get(prop.name): ocs.add(prop.objClass) diff --git management/univention-management-console-module-udm/umc/js/udm/DetailPage.js management/univention-management-console-module-udm/umc/js/udm/DetailPage.js index 5994dca11f..f53dfe0ec8 100644 --- management/univention-management-console-module-udm/umc/js/udm/DetailPage.js +++ management/univention-management-console-module-udm/umc/js/udm/DetailPage.js @@ -254,7 +254,7 @@ define([ // when the commands have been finished, create the detail page all(commands).then(lang.hitch(this, function(results) { - var template = lang.getObject('template.result', false, results) || null; + var template = lang.clone(results.template && results.template.result && results.template.result[0]) || null; var layout = lang.clone(results.layout); var policies = lang.clone(results.policies); var properties = lang.clone(results.properties); @@ -1243,11 +1243,6 @@ define([ } })); - if (template && template.length > 0) { - template = template[0]; - } else { - template = null; - } // create detail page this._tabs = new StackContainer({ region: 'main' diff --git management/univention-management-console-module-udm/umc/python/udm/__init__.py management/univention-management-console-module-udm/umc/python/udm/__init__.py index 176c7f1d40..994e6ce36f 100644 --- management/univention-management-console-module-udm/umc/python/udm/__init__.py +++ management/univention-management-console-module-udm/umc/python/udm/__init__.py @@ -543,6 +543,8 @@ class Instance(Base, ProgressMixin): props['$dn$'] = obj.dn props['$options$'] = {} for opt in module.get_options(udm_object=obj): + if module.name == 'settings/usertemplate' and opt['value']: + props['_options'].append(opt['id']) props['$options$'][opt['id']] = opt['value'] props['$policies$'] = {} for policy in obj.policies: diff --git management/univention-management-console-module-udm/umc/python/udm/udm_ldap.py management/univention-management-console-module-udm/umc/python/udm/udm_ldap.py index b02a976929..c8f09bcaae 100644 --- management/univention-management-console-module-udm/umc/python/udm/udm_ldap.py +++ management/univention-management-console-module-udm/umc/python/udm/udm_ldap.py @@ -153,6 +153,9 @@ class AppAttributes(object): def data_for_module(cls, module): if cls._cache is None: cls.reload_cache(module) + if module == 'settings/usertemplate' and module not in cls._cache: + module = 'users/user' + cls.reload_cache(module) return cls._cache.get(module, {}) @classmethod