Ébauche de prise en charge dans la fiche enseignant dans l’EAD
This commit is contained in:
@@ -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:
|
||||||
|
Reference in New Issue
Block a user