Bug 52440 - Already existing mobile attribute is rejected
Already existing mobile attribute is rejected
Status: RESOLVED INVALID
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: 2020-11-30 11:10 CET by Christina Scheinig
Modified: 2023-01-04 13:48 CET (History)
1 user (show)

See Also:
What kind of report is it?: Bug Report
What type of bug is this?: 4: Minor Usability: Impairs usability in secondary scenarios
Who will be affected by this bug?: 2: Will only affect a few installed domains
How will those affected feel about the bug?: 2: A Pain – users won’t like this once they notice it
User Pain: 0.091
Enterprise Customer affected?: Yes
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number: 2020111321000717, 2022122221000196
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christina Scheinig univentionstaff 2020-11-30 11:10:09 CET
The mobile attribute is rejected. It exists on both sides ldap and samba.

16.11.2020 15:13:30.911 LDAP        (PROCESS): sync to ucs:   [          user] [    modify] u'uid=würt,cn=users,dc=dc-schein,dc=de'
16.11.2020 15:13:30.987 LDAP        (ERROR  ): Unknown Exception during sync_to_ucs
16.11.2020 15:13:30.987 LDAP        (ERROR  ): Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/univention/s4connector/__init__.py", line 1558, in sync_to_ucs
    result = self.modify_in_ucs(property_type, object, module, position)
  File "/usr/lib/python2.7/dist-packages/univention/s4connector/__init__.py", line 1299, in modify_in_ucs
    res = ucs_object.modify(serverctrls=serverctrls, response=response)
  File "/usr/lib/python2.7/dist-packages/univention/admin/handlers/users/user.py", line 1405, in modify
    return super(object, self).modify(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/univention/admin/handlers/__init__.py", line 650, in modify
    dn = self._modify(modify_childs, ignore_license=ignore_license, response=response)
  File "/usr/lib/python2.7/dist-packages/univention/admin/handlers/__init__.py", line 1330, in _modify
    self.dn = self.lo.modify(self.dn, ml, ignore_license=ignore_license, serverctrls=serverctrls, response=response)
  File "/usr/lib/python2.7/dist-packages/univention/admin/uldap.py", line 902, in modify
    raise univention.admin.uexceptions.ldapError(_err2str(msg), original_exception=msg)
ldapError: Type or value exists: modify/add: mobile: value #0 already exists



We solved the reject by deleting the reject and retriggering the object from ldap.
This may cause the loss of an object change.

UCS-Version is 4.4-6 errata803
Comment 1 Christina Scheinig univentionstaff 2022-12-22 09:24:47 CET
The reject was not sustainable solved. It comes back, if the user gets a extended Attribute for mobile set in openLdap.
Comment 2 Florian Best univentionstaff 2023-01-04 13:37:09 CET
The problem lies in UDM users/user itself:

# udm users/user modify --dn 'uid=lillycat,cn=users,dc=schein,dc=ig' --set mobileTelephoneNumber=388
LDAP Error: Type or value exists: modify/add: mobile: value #0 already exists


(Pdb) dn
'uid=lillycat,cn=users,dc=schein,dc=ig'
(Pdb) changes
[('mobile', b'', [b'388'])]
(Pdb) self.lo.get(dn)['mobile']
[b'388']
---
(Pdb) self.oldattr['mobile']
[b'388']
(Pdb) self.info['mobileTelephoneNumber']
['388']
(Pdb) self.oldinfo['mobileTelephoneNumber']
*** KeyError: 'mobileTelephoneNumber'
(Pdb) self.hasChanged('mobileTelephoneNumber')
True
(Pdb) self.diff()
[('mobileTelephoneNumber', [], ['388'])]
Comment 3 Florian Best univentionstaff 2023-01-04 13:48:31 CET
This was caused by an extended attribute.
Closing as INVALID:

DN: cn=pdiMobile,cn=custom attributes,cn=univention,dc=schein,dc=ig
  CLIName: pdiMobile
  copyable: 0
  default: None
  deleteObjectClass: 0
  disableUDMWeb: 0
  doNotSearch: 0
  fullWidth: 0
  groupName: Geschäftlich
  groupPosition: 2
  hook: None
  ldapMapping: mobile
  longDescription: Mobiltelefonnummer
  mayChange: 1
  module: users/user
  multivalue: 1
  name: pdiMobile
  notEditable: 0
  objectClass: inetOrgPerson
  overwritePosition: None
  overwriteTab: 0
  shortDescription: Mobiltelefonnummer
  syntax: phone
  tabAdvanced: 0
  tabName: contact
  tabPosition: 2
  translationGroupName: de_DE: Geschäftlich
  translationGroupName: en_US: Business
  translationLongDescription: de_DE: Mobiltelefonnummer
  translationShortDescription: de_DE: Mobiltelefonnummer
  translationTabName: de_DE: Geschäftlich
  translationTabName: en_US: Business
  valueRequired: 0
  version: 2