Lines 275-281
def get_default_values(self, property_name):
|
Link Here
|
---|
|
275 |
if key == property_name: |
275 |
if key == property_name: |
276 |
value = default_value(prop.syntax) |
276 |
value = default_value(prop.syntax) |
277 |
if isinstance(value, (list, tuple)): |
277 |
if isinstance(value, (list, tuple)): |
278 |
value = read_syntax_choices(prop.syntax.name) |
278 |
value = read_syntax_choices(prop.syntax) |
279 |
return value |
279 |
return value |
280 |
|
280 |
|
281 |
def _map_properties(self, obj, properties): |
281 |
def _map_properties(self, obj, properties): |
Lines 1126-1141
def _get_syntax(syntax_name):
|
Link Here
|
---|
|
1126 |
return udm_syntax.__dict__[syntax_name]() |
1126 |
return udm_syntax.__dict__[syntax_name]() |
1127 |
|
1127 |
|
1128 |
|
1128 |
|
1129 |
def search_syntax_choices_by_key(syntax_name, key): |
1129 |
def search_syntax_choices_by_key(syn, key): |
1130 |
syn = _get_syntax(syntax_name) |
|
|
1131 |
if syn is None: |
1132 |
return None |
1133 |
|
1134 |
if issubclass(syn.__class__, udm_syntax.UDM_Objects): |
1130 |
if issubclass(syn.__class__, udm_syntax.UDM_Objects): |
1135 |
if syn.key == 'dn': |
1131 |
if syn.key == 'dn': |
1136 |
module_search_options = {'scope': 'base', 'container': key} |
1132 |
module_search_options = {'scope': 'base', 'container': key} |
1137 |
try: |
1133 |
try: |
1138 |
return read_syntax_choices(syntax_name, {}, module_search_options) |
1134 |
return read_syntax_choices(syn, {}, module_search_options) |
1139 |
except udm_errors.base: # TODO: which exception is raised here exactly? |
1135 |
except udm_errors.base: # TODO: which exception is raised here exactly? |
1140 |
# invalid DN |
1136 |
# invalid DN |
1141 |
return [] |
1137 |
return [] |
Lines 1144-1162
def search_syntax_choices_by_key(syntax_name, key):
|
Link Here
|
---|
|
1144 |
if match: |
1140 |
if match: |
1145 |
attr = match.groups()[0] |
1141 |
attr = match.groups()[0] |
1146 |
options = {'objectProperty': attr, 'objectPropertyValue': key} |
1142 |
options = {'objectProperty': attr, 'objectPropertyValue': key} |
1147 |
return read_syntax_choices(syntax_name, options) |
1143 |
return read_syntax_choices(syn, options) |
1148 |
|
1144 |
|
1149 |
MODULE.warn('Syntax "%s": No fast search function' % syntax_name) |
1145 |
MODULE.warn('Syntax %r: No fast search function' % syn.name) |
1150 |
# return them all, as there is no reason to filter after everything has loaded |
1146 |
# return them all, as there is no reason to filter after everything has loaded |
1151 |
# frontend will cache it. |
1147 |
# frontend will cache it. |
1152 |
return read_syntax_choices(syntax_name) |
1148 |
return read_syntax_choices(syn) |
1153 |
|
|
|
1154 |
|
1149 |
|
1155 |
def info_syntax_choices(syntax_name, options={}): |
|
|
1156 |
syn = _get_syntax(syntax_name) |
1157 |
if syn is None: |
1158 |
return None |
1159 |
|
1150 |
|
|
|
1151 |
def info_syntax_choices(syn, options={}): |
1160 |
if issubclass(syn.__class__, udm_syntax.UDM_Objects): |
1152 |
if issubclass(syn.__class__, udm_syntax.UDM_Objects): |
1161 |
size = 0 |
1153 |
size = 0 |
1162 |
if syn.static_values is not None: |
1154 |
if syn.static_values is not None: |
Lines 1176-1185
def info_syntax_choices(syntax_name, options={}):
|
Link Here
|
---|
|
1176 |
|
1168 |
|
1177 |
|
1169 |
|
1178 |
@LDAP_Connection |
1170 |
@LDAP_Connection |
1179 |
def read_syntax_choices(syntax_name, options={}, module_search_options={}, ldap_connection=None, ldap_position=None): |
1171 |
def read_syntax_choices(syn, options={}, module_search_options={}, ldap_connection=None, ldap_position=None): |
1180 |
syn = _get_syntax(syntax_name) |
1172 |
syntax_name = syn.name |
1181 |
if syn is None: |
|
|
1182 |
return None |
1183 |
|
1173 |
|
1184 |
if issubclass(syn.__class__, udm_syntax.UDM_Objects): |
1174 |
if issubclass(syn.__class__, udm_syntax.UDM_Objects): |
1185 |
syn.choices = [] |
1175 |
syn.choices = [] |
Lines 1350-1356
def map_choice(obj):
|
Link Here
|
---|
|
1350 |
syn.choices.append((dn, dn_list[0].split('=', 1)[1])) |
1340 |
syn.choices.append((dn, dn_list[0].split('=', 1)[1])) |
1351 |
elif issubclass(syn.__class__, udm_syntax.LDAP_Search): |
1341 |
elif issubclass(syn.__class__, udm_syntax.LDAP_Search): |
1352 |
options = options.get('options', {}) |
1342 |
options = options.get('options', {}) |
1353 |
syntax = udm_syntax.LDAP_Search(options['syntax'], options['filter'], options['attributes'], options['base'], options['value'], options['viewonly'], options['empty'], options['empty_end']) |
1343 |
try: |
|
|
1344 |
syntax = udm_syntax.LDAP_Search(options['syntax'], options['filter'], options['attributes'], options['base'], options['value'], options['viewonly'], options['empty'], options['empty_end']) |
1345 |
except KeyError: |
1346 |
syntax = syn |
1354 |
|
1347 |
|
1355 |
if '$dn$' in options: |
1348 |
if '$dn$' in options: |
1356 |
filter_mod = get_module(None, options['$dn$']) |
1349 |
filter_mod = get_module(None, options['$dn$']) |
Lines 1391-1397
def map_choice(obj):
|
Link Here
|
---|
|
1391 |
id = obj.oldattr[store][0] |
1384 |
id = obj.oldattr[store][0] |
1392 |
else: |
1385 |
else: |
1393 |
# no valid store object, ignore |
1386 |
# no valid store object, ignore |
1394 |
MODULE.warn('LDAP_Search syntax "%s": "%s" is no valid property for object "%s" - ignoring entry.' % (options['syntax'], store, dn)) |
1387 |
MODULE.warn('LDAP_Search syntax %r: %r is no valid property for object %r - ignoring entry.' % (syntax.name, store, dn)) |
1395 |
continue |
1388 |
continue |
1396 |
|
1389 |
|
1397 |
# find the value to display |
1390 |
# find the value to display |