Idem
This commit is contained in:
@ -73,10 +73,66 @@ 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..a5db6da 100644
|
||||
index 69f3411..244a7af 100644
|
||||
--- usr/lib/python3/dist-packages/scribe/enseignants.py
|
||||
+++ usr/lib/python3/dist-packages/scribe/enseignants.py
|
||||
@@ -145,45 +145,37 @@ class Enseignant(User):
|
||||
@@ -12,21 +12,21 @@
|
||||
from os import system, makedirs
|
||||
from os.path import join, isdir
|
||||
from ldap import MOD_REPLACE, modlist
|
||||
from datetime import datetime
|
||||
import time
|
||||
from fichier.quota import set_quota
|
||||
from fichier.acl import set_owner, clear_acl, set_user_acl, copy_default_acl
|
||||
from scribe.ldapconf import SMB_SERVEUR, HOME_PATH, MAIL_DOMAIN, PROF_FILTER, \
|
||||
AD_HOME_PATH, ADMIN_GROUPS, USER_FILTER, num_etab, BRANCHE_GROUP_ETAB
|
||||
from scribe.eoletools import fixdate, create_ad_home, \
|
||||
-to_list, not_empty, format_current_date, replace_cars, format_old_date
|
||||
+to_list, not_empty, format_current_date, replace_cars, format_old_date, launch_smbldap_tool
|
||||
from scribe.eoleuser import User, gen_common_attrs, send_first_mail, \
|
||||
gen_profil, gen_common_devdir, gen_radius_attrs
|
||||
|
||||
|
||||
class Enseignant(User):
|
||||
"""
|
||||
classe pour la gestion des enseignants Scribe
|
||||
"""
|
||||
_type = 'personnels'
|
||||
profil = 'enseignant'
|
||||
@@ -124,20 +124,32 @@ class Enseignant(User):
|
||||
datas.append((MOD_REPLACE, 'FederationKey',
|
||||
args['mail_acad'].lower()))
|
||||
if not_empty(args, 'disciplines') and args['disciplines'] != []:
|
||||
datas.append((MOD_REPLACE, 'ENTAuxEnsCategoDiscipline',
|
||||
args['disciplines']))
|
||||
# FIXME : remplissage d'autres attributs provenant de ENTAuxEnseignant
|
||||
self.ldap_admin._modify(user_dn, datas)
|
||||
if maildir != '':
|
||||
send_first_mail(mail)
|
||||
|
||||
+ def exec_smbldap_useradd(self, user_add_args, login):
|
||||
+ """
|
||||
+ exécute smbldap-useradd
|
||||
+ """
|
||||
+ cmd = ["/usr/sbin/smbldap-useradd"]
|
||||
+ cmd.extend(self.user_add_params)
|
||||
+ cmd.extend(user_add_args)
|
||||
+ etab = self.get_etab(login)
|
||||
+ force_dn = {'usersdn="ou=utilisateurs,${etab},${suffix}"': 'usersdn="ou=utilisateurs,${specific},${suffix}"',
|
||||
+ 'groupsdn="ou=local,ou=Groupes,${etab},${suffix}"': 'groupsdn="${suffix}"'}
|
||||
+ launch_smbldap_tool(cmd, num_etab, etab, force_dn=force_dn)
|
||||
+
|
||||
def _add_perso(self, login, **args):
|
||||
"""
|
||||
Crée les différents répertoires de l'utilisateur
|
||||
"""
|
||||
abc = join(HOME_PATH, login[0])
|
||||
rep = join(abc, login)
|
||||
perso = join(rep, 'perso')
|
||||
# Eole-AD
|
||||
create_ad_home(login, rep)
|
||||
if not isdir(perso):
|
||||
@@ -145,45 +157,37 @@ class Enseignant(User):
|
||||
rep = join(AD_HOME_PATH, login)
|
||||
# répertoire supérieur
|
||||
clear_acl(rep)
|
||||
@ -125,7 +181,7 @@ index 69f3411..a5db6da 100644
|
||||
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):
|
||||
@@ -196,21 +200,21 @@ class Enseignant(User):
|
||||
datas.append((MOD_REPLACE, 'ENTAuxEnsCategoDiscipline', args['disciplines']))
|
||||
datas.append((MOD_REPLACE, 'sn', args['nom']))
|
||||
datas.append((MOD_REPLACE, 'givenName', args['prenom']))
|
||||
@ -148,7 +204,7 @@ index 69f3411..a5db6da 100644
|
||||
"""
|
||||
Mise à niveau d'un compte enseignant
|
||||
"""
|
||||
@@ -326,10 +318,14 @@ class Enseignant(User):
|
||||
@@ -326,10 +330,14 @@ class Enseignant(User):
|
||||
return res
|
||||
|
||||
def _is_enseignant(self, uid):
|
||||
@ -226,33 +282,37 @@ index 45ec338..9a67c6d 100644
|
||||
users = []
|
||||
res = self.ldap_admin._search("(&%s%s)" % (USER_FILTER, filtre), attrs)
|
||||
for user in res:
|
||||
diff --git usr/lib/python3/dist-packages/scribe/eoletools.py usr/lib/python3/dist-packages/scribe/eoletools.py
|
||||
index a469716..0ceffc2 100644
|
||||
--- usr/lib/python3/dist-packages/scribe/eoletools.py
|
||||
+++ usr/lib/python3/dist-packages/scribe/eoletools.py
|
||||
@@ -617,21 +617,21 @@ def move_share_datas(filepath):
|
||||
def launch_smbldap_tool(cmd, ref_etab, etab, force_dn={}):
|
||||
tempfile = None
|
||||
if etab != None and ref_etab != etab:
|
||||
filename = '%s/etc/smbldap-tools/smbldap.conf' % conteneurs.get('container_path_fichier', '')
|
||||
confdir = '/etc/smbldap-tools/'
|
||||
fd, tempfile = mkstemp(suffix='.temp', dir='%s%s' % (conteneurs.get('container_path_fichier', ''), confdir))
|
||||
container_file = '%s%s' % (confdir, basename(tempfile))
|
||||
fh = open(filename, 'r')
|
||||
filecontent = fh.read()
|
||||
fh.close()
|
||||
- newcontent = filecontent.replace('num_etab="{0}"'.format(ref_etab), 'num_etab="{0}"'.format(etab))
|
||||
+ newcontent = filecontent #filecontent.replace('num_etab="{0}"'.format(ref_etab), 'num_etab="{0}"'.format(etab))
|
||||
for old, new in list(force_dn.items()):
|
||||
newcontent = newcontent.replace(old, new)
|
||||
fh = open(tempfile, 'w')
|
||||
fh.write(newcontent)
|
||||
fh.close()
|
||||
env = {'SMBLDAP_CONF': container_file}
|
||||
else:
|
||||
env = None
|
||||
res = system_out(cmd, container=CONTAINER_NAME, env=env)
|
||||
if tempfile is not None:
|
||||
diff --git usr/lib/python3/dist-packages/scribe/eoleuser.py usr/lib/python3/dist-packages/scribe/eoleuser.py
|
||||
index 05569fd..b4e24e5 100644
|
||||
index 05569fd..c092698 100644
|
||||
--- usr/lib/python3/dist-packages/scribe/eoleuser.py
|
||||
+++ usr/lib/python3/dist-packages/scribe/eoleuser.py
|
||||
@@ -329,21 +329,21 @@ class User(LdapEntry):
|
||||
"""
|
||||
return {}
|
||||
|
||||
def exec_smbldap_useradd(self, user_add_args, login):
|
||||
"""
|
||||
exécute smbldap-useradd
|
||||
"""
|
||||
cmd = ["/usr/sbin/smbldap-useradd"]
|
||||
cmd.extend(self.user_add_params)
|
||||
cmd.extend(user_add_args)
|
||||
- etab = self.get_etab(login)
|
||||
+ etab = self.get_etab(login, multi_etab=SUPPORT_ETAB)
|
||||
force_dn = {'groupsdn="ou=local,ou=Groupes,${etab},${suffix}"': 'groupsdn="${suffix}"'}
|
||||
tool.launch_smbldap_tool(cmd, num_etab, etab, force_dn=force_dn)
|
||||
|
||||
def _add_perso(self, login, **args):
|
||||
"""
|
||||
Crée les différents répertoires de l'utilisateur
|
||||
"""
|
||||
pass
|
||||
|
||||
def _add_scribe_user(self, login, **args):
|
||||
@@ -410,20 +410,25 @@ class User(LdapEntry):
|
||||
grp = Group()
|
||||
grp.ldap_admin = self.ldap_admin
|
||||
|
Reference in New Issue
Block a user