Ébauche de prise en charge dans la fiche enseignant dans l’EAD

This commit is contained in:
2025-08-27 16:24:15 +02:00
parent 033cf00d8e
commit e5bd1249d4

View File

@@ -200,7 +200,7 @@ index 69f3411..19ba7a1 100644
Mise à niveau d'un compte enseignant Mise à niveau d'un compte enseignant
""" """
diff --git usr/lib/python3/dist-packages/scribe/eoleldap.py usr/lib/python3/dist-packages/scribe/eoleldap.py diff --git usr/lib/python3/dist-packages/scribe/eoleldap.py usr/lib/python3/dist-packages/scribe/eoleldap.py
index 45ec338..c3c6bfe 100644 index 45ec338..0ec3129 100644
--- usr/lib/python3/dist-packages/scribe/eoleldap.py --- usr/lib/python3/dist-packages/scribe/eoleldap.py
+++ usr/lib/python3/dist-packages/scribe/eoleldap.py +++ usr/lib/python3/dist-packages/scribe/eoleldap.py
@@ -8,21 +8,21 @@ @@ -8,21 +8,21 @@
@@ -281,7 +281,7 @@ index 45ec338..c3c6bfe 100644
+ if _type == 'login': + if _type == 'login':
+ etab = [cn[1]['cn'][0] for cn in self.ldap_admin._search(f'(&(objectClass=eolegroupe)(type=Etablissement)(memberUid={name}))', ['cn'])] + etab = [cn[1]['cn'][0] for cn in self.ldap_admin._search(f'(&(objectClass=eolegroupe)(type=Etablissement)(memberUid={name}))', ['cn'])]
+ else: + else:
+ etab = result[1]['cn'] + etab = [result[0].split(',ou=')[-3]]
+ if not multi_etabs: + if not multi_etabs:
+ etab = etab[0] + etab = etab[0]
+ except: + except:
@@ -298,10 +298,37 @@ index 45ec338..c3c6bfe 100644
else: else:
raise Exception('Unknown mode') raise Exception('Unknown mode')
diff --git usr/lib/python3/dist-packages/scribe/eoleuser.py usr/lib/python3/dist-packages/scribe/eoleuser.py diff --git usr/lib/python3/dist-packages/scribe/eoleuser.py usr/lib/python3/dist-packages/scribe/eoleuser.py
index 05569fd..74d9485 100644 index 05569fd..3cafe9f 100644
--- usr/lib/python3/dist-packages/scribe/eoleuser.py --- usr/lib/python3/dist-packages/scribe/eoleuser.py
+++ usr/lib/python3/dist-packages/scribe/eoleuser.py +++ usr/lib/python3/dist-packages/scribe/eoleuser.py
@@ -410,20 +410,25 @@ class User(LdapEntry): @@ -361,23 +361,25 @@ class User(LdapEntry):
def _inscription(self, login, groupe, sync=True, etab=None, check_etab=True, touch=True):
"""
Inscription d'un utilisateur à un groupe
"""
etabgroup = None
if SUPPORT_ETAB:
etabgroup = self.get_etab_from_group(groupe)
if check_etab:
# vérification de la cohérence
if etab is None:
- etabuser = self.get_etab(login)
+ etabuser = self.get_etab(login, multi_etabs=True)
else:
#on force l'établissement de l'utilisateur (#4827)
+ if not isinstance(etab, list):
+ etab = [etab]
etabuser = etab
if etabgroup != etabuser:
raise Exception("L'utilisateur {0} ne fait pas partie du même établissement que le groupe {1} : {2} - {3}".format(login, groupe, etabuser, etabgroup))
if not self.has_ftp:
return True
grp = Group()
grp.ldap_admin = self.ldap_admin
gtype = grp.c_get_group_type(groupe)
if self.profil != 'eleve' and gtype in ['Classe', 'Niveau', 'Option']:
# groupes réservés élèves
@@ -410,20 +412,25 @@ class User(LdapEntry):
grp = Group() grp = Group()
grp.ldap_admin = self.ldap_admin grp.ldap_admin = self.ldap_admin
if touch: if touch:
@@ -327,7 +354,7 @@ index 05569fd..74d9485 100644
rmtree(ftpdir) rmtree(ftpdir)
makedirs(ftpdir, 0o500) makedirs(ftpdir, 0o500)
system('/bin/chown %s %s' % (login, ftpdir)) system('/bin/chown %s %s' % (login, ftpdir))
@@ -594,27 +599,27 @@ class User(LdapEntry): @@ -594,27 +601,27 @@ class User(LdapEntry):
authldap = Ldap(binddn=user_dn, authldap = Ldap(binddn=user_dn,
passwd=password) passwd=password)
try: try: