diff --git a/patches.d/scribe-backend.patch b/patches.d/scribe-backend.patch index c966fc5..6e881c4 100644 --- a/patches.d/scribe-backend.patch +++ b/patches.d/scribe-backend.patch @@ -73,10 +73,10 @@ index 0db4982..47f5c80 100755 nscd_start() log.del_lock() diff --git usr/lib/python3/dist-packages/scribe/enseignants.py usr/lib/python3/dist-packages/scribe/enseignants.py -index 69f3411..e8c39d5 100644 +index 69f3411..97bf905 100644 --- usr/lib/python3/dist-packages/scribe/enseignants.py +++ usr/lib/python3/dist-packages/scribe/enseignants.py -@@ -145,38 +145,30 @@ class Enseignant(User): +@@ -145,45 +145,37 @@ class Enseignant(User): rep = join(AD_HOME_PATH, login) # répertoire supérieur clear_acl(rep) @@ -111,11 +111,20 @@ index 69f3411..e8c39d5 100644 """ Mise à niveau Enseignant via l'extraction """ - if 'etab' in args: - user_dn = self.get_user_dn(login, force_etab=args.get('etab')) #USER_DN % dict(uid=login, _type=self._type) +- if 'etab' in args: +- user_dn = self.get_user_dn(login, force_etab=args.get('etab')) #USER_DN % dict(uid=login, _type=self._type) ++ if 'etab' in args: # cas multi-étab => enseignant dans une UO spécifique ++ user_dn = self.get_user_dn(login, force_etab='00000000') #USER_DN % dict(uid=login, _type=self._type) else: user_dn = self.get_user_dn(login) #USER_DN % dict(uid=login, _type=self._type) datas = [] + if not_empty(args, 'mail_acad'): + datas.append((MOD_REPLACE, 'FederationKey', + args['mail_acad'].lower())) + if not_empty(args, 'int_id'): + datas.append((MOD_REPLACE, 'intid', args['int_id'] )) + if not_empty(args, 'entpersonjointure'): + datas.append((MOD_REPLACE, 'ENTPersonJointure', args['entpersonjointure'])) @@ -196,21 +188,21 @@ class Enseignant(User): datas.append((MOD_REPLACE, 'ENTAuxEnsCategoDiscipline', args['disciplines'])) datas.append((MOD_REPLACE, 'sn', args['nom'])) @@ -263,9 +272,32 @@ index 05569fd..c092698 100644 def _get_ead_type(self, login): diff --git usr/lib/python3/dist-packages/scribe/importation/writer.py usr/lib/python3/dist-packages/scribe/importation/writer.py -index 34ce0fb..d4a2f27 100644 +index 34ce0fb..626143b 100644 --- usr/lib/python3/dist-packages/scribe/importation/writer.py +++ usr/lib/python3/dist-packages/scribe/importation/writer.py +@@ -810,21 +810,21 @@ def _new_enseignant(enseignant, user, prefs, etab=None, new_passwords=[]): + 'classe':classe, + 'groups':groups, + 'entlogin':False, + 'disciplines':eval(enseignant.disciplines), + 'entpersonjointure':str(enseignant.entpersonjointure), + # préférences générales + 'quota':prefs.get_default('quota'), + 'profil':prefs.get_default('profil'), + 'shell':prefs.get_default('shell') == 'oui', + 'change_pwd':prefs.get_default('change_pwd') == 'oui' if FORCED_PASSWORD_MODIFICATION_ALLOWED else False, +- 'etab': etab, ++ 'etab': etab if etab is None else '00000000', + 'syncpassword': not EOLE_AD, + } + # création de l'enseignant + user._add(**my_enseignant) + info = "%(nom)s;%(prenom)s;%(login)s;%(password)s" + log.write_info(info % my_enseignant, config.ENS_INFO) + if EOLE_AD: + new_passwords.append((login, password)) + return login + @@ -832,25 +832,26 @@ def _maj_enseignant(enseignant, user, login, etab, administratif=False): """ traitement d'un enseignant existant (mise à jour)