Bug 54888 - get_school_admin_groups() doesn't work for "mixed" school admins
get_school_admin_groups() doesn't work for "mixed" school admins
Status: NEW
Product: UCS@school
Classification: Unclassified
Component: Ucsschool-lib
UCS@school 5.0
Other Linux
: P5 normal (vote)
: ---
Assigned To: UCS@school maintainers
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2022-06-21 17:56 CEST by Oliver Friedrich
Modified: 2023-04-19 10:17 CEST (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?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
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 Oliver Friedrich univentionstaff 2022-06-21 17:56:26 CEST
There's an odd behavior with school_admin groups: When I add a teacher of one school as a school_admin to another school, `get_school_admin_groups()` of the underlying school.lib object contains the admin groups of both schools.

MWE

```
import univention.admin.uldap
from ucsschool.lib.models.user import User

lo = univention.admin.uldap.getAdminConnection()[0]

otl2_dn='uid=oli.testlehrer2,cn=lehrer,cn=users,ou=olistestschule2,dc=schulportal-sh,dc=intranet'
otl2_sobj = User.from_dn(otl2_dn, None, lo)

print(otl2_sobj.get_school_admin_groups())

['cn=admins-olistestschule1,cn=ouadmins,cn=groups,dc=schulportal-sh,dc=intranet',
 'cn=admins-olistestschule2,cn=ouadmins,cn=groups,dc=schulportal-sh,dc=intranet']
```
Note the TWO admin groups here


But in LDAP it looks like this:
```
univention-ldapsearch -LLL uid=oli.testlehrer2 memberof
dn: uid=oli.testlehrer2,cn=lehrer,cn=users,ou=olistestschule2,dc=schulportal-sh,dc=intranet
memberOf: cn=Domain Users olistestschule2,cn=groups,ou=olistestschule2,dc=schulportal-sh,dc=intranet
memberOf: cn=lehrer-olistestschule2,cn=groups,ou=olistestschule2,dc=schulportal-sh,dc=intranet
memberOf: cn=mfa-user-olistestschule2,cn=groups,ou=olistestschule2,dc=schulportal-sh,dc=intranet
memberOf: cn=admins-olistestschule1,cn=ouadmins,cn=groups,dc=schulportal-sh,dc=intranet
memberOf: cn=Domain Users OlisTestschule1,cn=groups,ou=OlisTestschule1,dc=schulportal-sh,dc=intranet
memberOf: cn=mfa-user-olistestschule1,cn=groups,ou=OlisTestschule1,dc=schulportal-sh,dc=intranet

univention-ldapsearch -LLL uid=oli.testlehrer2 | grep ucsschool
objectClass: ucsschoolTeacher
objectClass: ucsschoolType
ucsschoolSchool: OlisTestschule1
ucsschoolSchool: olistestschule2
ucsschoolRole: teacher:school:olistestschule2
ucsschoolRole: school_admin:school:OlisTestschule1
```
So the admin groups differ **when I use mixed teacher/schooladmin users**