Bug 50833 - univentionBirthday can't be set initially via Self Service without write access to objectClass
univentionBirthday can't be set initially via Self Service without write acce...
Status: NEW
Product: UCS
Classification: Unclassified
Component: Self Service
UCS 5.0
Other Linux
: P5 normal with 2 votes (vote)
: ---
Assigned To: UMC maintainers
UMC maintainers
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2020-02-18 10:15 CET by Valentin Heidelberger
Modified: 2024-03-11 17:32 CET (History)
5 users (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?: Yes
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number: 2024022621000346
Bug group (optional): Security
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Valentin Heidelberger univentionstaff 2020-02-18 10:15:02 CET
If "univentionBirthday" is specified as an editable LDAP attribute in self-service/ldap_attributes it triggers a permissionDenied error because changing the birthday also adds the objectClass "univentionPerson". So admins would have to allow the users to change their own objectClasses to make it work or set it to a default value for all users. That gets even more difficult because "univentionBirthday" can't be added to user templates for some reason.

If there's no technical reason we need "univentionPerson" as an objectClass for "univentionBirthday", I propose the removal of "univentionBirthday" from the objectClass definition.

If there's a technical reason why "univentionBirthday" needs "univentionPerson" or vice versa, there should still be a way to allow changing "univentionBirthday" via the Self Service without giving users write access to their objectClasses.
Comment 1 Ingo Steuwer univentionstaff 2020-02-18 10:34:26 CET
(In reply to Valentin Heidelberger from comment #0)
> If "univentionBirthday" is specified as an editable LDAP attribute in
> self-service/ldap_attributes it triggers a permissionDenied error because
> changing the birthday also adds the objectClass "univentionPerson". So
> admins would have to allow the users to change their own objectClasses to
> make it work or set it to a default value for all users. That gets even more
> difficult because "univentionBirthday" can't be added to user templates for
> some reason.

can you file a separate Bug for the user template issue?

> If there's no technical reason we need "univentionPerson" as an objectClass
> for "univentionBirthday", I propose the removal of "univentionBirthday" from
> the objectClass definition.

I assume that univentionBirthday is only availble in univentionPerson and based on that assumption I don't see a way to solve it differently.


> If there's a technical reason why "univentionBirthday" needs
> "univentionPerson" or vice versa, there should still be a way to allow
> changing "univentionBirthday" via the Self Service without giving users
> write access to their objectClasses.

Potential workarounds:

- consider to allow writing to the objectClass attribute in the self service (this should be possible with the existing UCR configuration)
- identify an other attribute of univentionPerson and define a usefull default, so that new accounts will have this objectClass (currently attributes are quotablocksoft $ quotablockhard $ quotafilesoft $ quotafilehard $              temporary $ virtual $ univentionBirthday $ univentionUMCProperty )
Comment 2 Christina Scheinig univentionstaff 2024-02-27 13:08:31 CET
We have an other customer, but using a different attribute to be added, getting access-denied error.
The customer uses Self-Service, tab "Your Profile", to have the LDAP attribute "univentionPasswordSelfServiceMobile" filled in by the user.
Saving shows access-denied.
The reason for this is the objectClass "univentionPasswordSelfService", which is set for users who add either a self-service telephone number or a self-service e-mail address.
If the e-mail address is stored, not via the "Your profile" tab but via "Protect account access", the objectClass can be added.
Adding the "objectClass" to the UCR variable in "self-service/ldap_attributes" is not a good workaround and also a security vulnerability
Comment 3 Ingo Steuwer univentionstaff 2024-03-11 17:32:06 CET
We will "fix" this once the Self Service is migrated to use Guardian instead of LDAP ACLs to enforce access control. As Guardian is pure attribute based and is separated from the LDAP access, the problems here won't occure.

Until then, I don't see additional options than the workarounds listed in comment 1.

Unfortunately I can't give a timeline for the guardian integration yet.