Limiter le test d’existence à l’établissement
This commit is contained in:
@ -72,7 +72,7 @@ index 0db4982..290d66e 100755
|
|||||||
nscd_start()
|
nscd_start()
|
||||||
log.del_lock()
|
log.del_lock()
|
||||||
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..9b80f82 100644
|
index 45ec338..dd819eb 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 @@
|
||||||
@ -98,7 +98,7 @@ index 45ec338..9b80f82 100644
|
|||||||
def is_system_user(user):
|
def is_system_user(user):
|
||||||
"""
|
"""
|
||||||
indique si le login proposé est déjà un utilisateur système
|
indique si le login proposé est déjà un utilisateur système
|
||||||
@@ -120,60 +120,68 @@ class _Ldap(object):
|
@@ -120,75 +120,83 @@ class _Ldap(object):
|
||||||
class _LdapEntry(object):
|
class _LdapEntry(object):
|
||||||
"""
|
"""
|
||||||
classe de base pour gérer les entrées ldap
|
classe de base pour gérer les entrées ldap
|
||||||
@ -169,15 +169,62 @@ index 45ec338..9b80f82 100644
|
|||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def _test_available_name(self, name):
|
- def _test_available_name(self, name):
|
||||||
|
+ def _test_available_name(self, name, etab=None):
|
||||||
"""
|
"""
|
||||||
Test la disponibilité d'un nom
|
Test la disponibilité d'un nom
|
||||||
raise une exception si pas disponible
|
raise une exception si pas disponible
|
||||||
"""
|
"""
|
||||||
|
- if self._is_group(name):
|
||||||
|
+ if self._is_group(name, etab=etab):
|
||||||
|
raise LdapExistingGroup
|
||||||
|
- elif self._is_user(name):
|
||||||
|
+ elif self._is_user(name, etab=etab):
|
||||||
|
raise LdapExistingUser
|
||||||
|
- elif is_system_user(name):
|
||||||
|
+ elif is_system_user(name, etab=etab):
|
||||||
|
raise SystemExistingUser
|
||||||
|
return True
|
||||||
|
|
||||||
|
def get_niveau(self, classe):
|
||||||
|
"""
|
||||||
|
Retourne le niveau associé à la classe
|
||||||
|
"""
|
||||||
|
self.ldap_admin.connect()
|
||||||
|
res = self._get_niveau(classe)
|
||||||
|
self.ldap_admin.close()
|
||||||
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..7a8d46c 100644
|
index 05569fd..b4a4fb8 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
|
||||||
|
@@ -259,26 +259,26 @@ class User(LdapEntry):
|
||||||
|
Ajoute un utilisateur
|
||||||
|
**args
|
||||||
|
"""
|
||||||
|
self.filter_must_args(args)
|
||||||
|
self.filter_may_args(args)
|
||||||
|
#force login in lower case #33178
|
||||||
|
login = args['login'].lower()
|
||||||
|
args['login'] = login
|
||||||
|
if match("^[a-zA-Z0-9.\-_]*$", login) is None:
|
||||||
|
raise BadLogin("Login \"%s\" invalide !" % login)
|
||||||
|
- self._test_available_name(login)
|
||||||
|
args.setdefault('etab', None)
|
||||||
|
if args['etab'] is None and 'classe' in args:
|
||||||
|
args['etab'] = self.get_etab_from_group(args['classe'])
|
||||||
|
if args['etab'] == num_etab:
|
||||||
|
args['etab'] = None
|
||||||
|
+ self._test_available_name(login, etab=args['etab'])
|
||||||
|
self.cache_etab['login'][login] = args['etab']
|
||||||
|
# FIXME : fixes #327 mais est-ce le bon endroit ?
|
||||||
|
if tool.not_empty(args, 'date'):
|
||||||
|
args['date'] = tool.deformate_date(args['date'])
|
||||||
|
if 'exp_date' in args: # Can be jj/mm/aaaa or empty string
|
||||||
|
if LDAP_MODE == 'openldap':
|
||||||
|
args['exp_unix_days'] = str(tool.get_days_from_epoch(args['exp_date'])) if args['exp_date'] else '-1'
|
||||||
|
else:
|
||||||
|
args['exp_nt_time'] = str(tool.get_nt_time_from_date(args['exp_date'])) if args['exp_date'] else '0'
|
||||||
|
args.pop('exp_date')
|
||||||
@@ -536,31 +536,32 @@ class User(LdapEntry):
|
@@ -536,31 +536,32 @@ class User(LdapEntry):
|
||||||
data = [((MOD_REPLACE, attribut, value))]
|
data = [((MOD_REPLACE, attribut, value))]
|
||||||
self.ldap_admin._modify(user_dn, data)
|
self.ldap_admin._modify(user_dn, data)
|
||||||
|
Reference in New Issue
Block a user