Bug 53807 - TypeError: 'in <string>' requires string as left operand, not int
TypeError: 'in <string>' requires string as left operand, not int
Status: NEW
Product: UCS
Classification: Unclassified
Component: UMC - Users
UCS 5.0
Other Linux
: P5 normal (vote)
: ---
Assigned To: UMC maintainers
UMC maintainers
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2021-09-17 17:50 CEST by Florian Best
Modified: 2022-07-27 15:49 CEST (History)
0 users

See Also:
What kind of report is it?: Development Internal
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:
best: Patch_Available+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Florian Best univentionstaff 2021-09-17 17:50:18 CEST
Searching for 'sambaLogonHours' via UMC raises:

Request: udm/nav/object/query (navigation)

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/notifier/threads.py", line 80, in _run
    result = self._function()
  File "/usr/lib/python3/dist-packages/notifier/__init__.py", line 105, in __call__
    return self._function(*tmp, **self._kwargs)
  File "/usr/lib/python3/dist-packages/univention/management/console/modules/udm/__init__.py", line 607, in _thread
    result = module.search(container, objectProperty, objectPropertyValue, superordinate, scope=scope, hidden=hidden)
  File "/usr/lib/python3/dist-packages/univention/management/console/modules/udm/udm_ldap.py", line 685, in search
    result = self.module.lookup(None, ldap_connection, filter_s, base=container, superordinate=superordinate, scope=scope, sizelimit=sizelimit, **kwargs)
  File "/usr/lib/python3/dist-packages/univention/admin/handlers/__init__.py", line 1773, in lookup
    filter_s = cls.lookup_filter(filter_s, lo)
  File "/usr/lib/python3/dist-packages/univention/admin/handlers/__init__.py", line 1804, in lookup_filter
    filter_p.append_unmapped_filter_string(filter_s, cls.rewrite_filter, module.mapping)
  File "/usr/lib/python3/dist-packages/univention/admin/filter.py", line 124, in append_unmapped_filter_string
    walk(filter_p, rewrite_function, arg=mapping)
  File "/usr/lib/python3/dist-packages/univention/admin/filter.py", line 308, in walk
    walk(e, expression_walk_function, conjunction_walk_function, arg)
  File "/usr/lib/python3/dist-packages/univention/admin/filter.py", line 313, in walk
    expression_walk_function(filter_p, arg)
  File "/usr/lib/python3/dist-packages/univention/admin/handlers/users/user.py", line 2348, in rewrite_filter
    super(object, cls).rewrite_filter(filter, mapping)
  File "/usr/lib/python3/dist-packages/univention/admin/handlers/__init__.py", line 1867, in rewrite_filter
    filter.value = mapping.mapValueDecoded(key, filter.value)
  File "/usr/lib/python3/dist-packages/univention/admin/mapping.py", line 559, in mapValueDecoded
    value = self.mapValue(map_name, value)
  File "/usr/lib/python3/dist-packages/univention/admin/mapping.py", line 553, in mapValue
    value = map_value(value, **kwargs)
  File "/usr/lib/python3/dist-packages/univention/admin/handlers/users/user.py", line 895, in logonHoursMap
    bitstring = ''.join(map(lambda x: x in logontimes and '1' or '0', range(168)))
  File "/usr/lib/python3/dist-packages/univention/admin/handlers/users/user.py", line 895, in <lambda>
    bitstring = ''.join(map(lambda x: x in logontimes and '1' or '0', range(168)))
TypeError: 'in <string>' requires string as left operand, not int

Internal issue, as the property is flagged as "dontsearch".
Comment 1 Florian Best univentionstaff 2021-09-17 18:07:45 CEST
CLI:
udm users/user list --filter=sambaLogonHours=131

Traceback (most recent call last):
  File "/usr/share/univention-directory-manager-tools/univention-cli-server", line 213, in doit
    output = univention.admincli.admin.doit(arglist)
  File "/usr/lib/python3/dist-packages/univention/admincli/admin.py", line 380, in doit
    out = _doit(arglist)
  File "/usr/lib/python3/dist-packages/univention/admincli/admin.py", line 657, in _doit
    out.extend(cli.list(list_policies, filter, superordinate_dn, policyOptions, policies_with_DN))
  File "/usr/lib/python3/dist-packages/univention/admincli/admin.py", line 689, in list
    return self._list(self.module_name, self.module, self.dn, self.lo, self.position, self.superordinate, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/univention/admincli/admin.py", line 951, in _list
    for object in univention.admin.modules.lookup(module, None, lo, scope='sub', superordinate=superordinate, base=position.getDn(), filter=filter):
  File "/usr/lib/python3/dist-packages/univention/admin/modules.py", line 953, in lookup
    tmpres = module.lookup(co, lo, filter, base=base, superordinate=superordinate, scope=scope, unique=unique, required=required, timeout=timeout, sizelimit=sizelimit)
  File "/usr/lib/python3/dist-packages/univention/admin/handlers/__init__.py", line 1773, in lookup
    filter_s = cls.lookup_filter(filter_s, lo)
  File "/usr/lib/python3/dist-packages/univention/admin/handlers/__init__.py", line 1804, in lookup_filter
    filter_p.append_unmapped_filter_string(filter_s, cls.rewrite_filter, module.mapping)
  File "/usr/lib/python3/dist-packages/univention/admin/filter.py", line 124, in append_unmapped_filter_string
    walk(filter_p, rewrite_function, arg=mapping)
  File "/usr/lib/python3/dist-packages/univention/admin/filter.py", line 313, in walk
    expression_walk_function(filter_p, arg)
  File "/usr/lib/python3/dist-packages/univention/admin/handlers/users/user.py", line 2348, in rewrite_filter
    super(object, cls).rewrite_filter(filter, mapping)
  File "/usr/lib/python3/dist-packages/univention/admin/handlers/__init__.py", line 1867, in rewrite_filter
    filter.value = mapping.mapValueDecoded(key, filter.value)
  File "/usr/lib/python3/dist-packages/univention/admin/mapping.py", line 559, in mapValueDecoded
    value = self.mapValue(map_name, value)
  File "/usr/lib/python3/dist-packages/univention/admin/mapping.py", line 553, in mapValue
    value = map_value(value, **kwargs)
  File "/usr/lib/python3/dist-packages/univention/admin/handlers/users/user.py", line 895, in logonHoursMap
    bitstring = ''.join(map(lambda x: x in logontimes and '1' or '0', range(168)))
  File "/usr/lib/python3/dist-packages/univention/admin/handlers/users/user.py", line 895, in <lambda>
    bitstring = ''.join(map(lambda x: x in logontimes and '1' or '0', range(168)))
TypeError: 'in <string>' requires string as left operand, not int