show synced LDAP users with verbosity > 2 (#33870)

This commit is contained in:
Benjamin Dauvergne 2019-06-12 13:30:03 +02:00
parent 66b96a1236
commit 407f4c8c22
2 changed files with 14 additions and 3 deletions

View File

@ -14,6 +14,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from __future__ import print_function
try:
import ldap
from ldap.filter import filter_format # noqa: F401
@ -27,4 +28,9 @@ from authentic2.backends.ldap_backend import LDAPBackend
class Command(BaseCommand):
def handle(self, *args, **kwargs):
list(LDAPBackend.get_users())
verbosity = int(kwargs['verbosity'])
if verbosity > 1:
print('Updated users :')
for user in LDAPBackend.get_users():
if getattr(user, '_changed', False) and verbosity > 1:
print(' -', user.uuid, user.get_username(), user.get_full_name())

View File

@ -781,7 +781,7 @@ def test_ou_selector_default_ou(slapd, settings, app, ou1):
assert '_auth_user_id' in app.session
def test_sync_ldap_users(slapd, settings, app, db):
def test_sync_ldap_users(slapd, settings, app, db, capsys):
settings.LDAP_AUTH_SETTINGS = [{
'url': [slapd.ldap_url],
'basedn': u'o=ôrga',
@ -806,7 +806,9 @@ def test_sync_ldap_users(slapd, settings, app, db):
multiple=False)
assert User.objects.count() == 0
management.call_command('sync-ldap-users')
capsys.readouterr()
management.call_command('sync-ldap-users', verbosity=2)
assert len(capsys.readouterr().out.splitlines()) == 7
assert User.objects.count() == 6
assert all(user.first_name == u'Étienne' for user in User.objects.all())
assert all(user.attributes.first_name == u'Étienne' for user in User.objects.all())
@ -817,6 +819,9 @@ def test_sync_ldap_users(slapd, settings, app, db):
assert all([user.userexternalid_set.first().external_id
== urlparse.quote(user.username.split('@')[0].encode('utf-8'))
for user in User.objects.all()])
capsys.readouterr()
management.call_command('sync-ldap-users', verbosity=2)
assert len(capsys.readouterr().out.splitlines()) == 1
def test_alert_on_wrong_user_filter(slapd, settings, client, db, caplog):