diff --git a/actions/users b/actions/users index acfc4df99..bbc26b136 100755 --- a/actions/users +++ b/actions/users @@ -5,6 +5,7 @@ Configuration helper for the LDAP user directory """ import argparse +import logging import os import re import shutil @@ -12,6 +13,7 @@ import subprocess import sys import augeas + from plinth import action_utils ACCESS_CONF = '/etc/security/access.conf' @@ -200,8 +202,8 @@ def configure_ldapscripts(): # modify a copy of the config file shutil.copy('/etc/ldapscripts/ldapscripts.conf', LDAPSCRIPTS_CONF) - aug = augeas.Augeas( - flags=augeas.Augeas.NO_LOAD + augeas.Augeas.NO_MODL_AUTOLOAD) + aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD + + augeas.Augeas.NO_MODL_AUTOLOAD) aug.set('/augeas/load/Shellvars/lens', 'Shellvars.lns') aug.set('/augeas/load/Shellvars/incl[last() + 1]', LDAPSCRIPTS_CONF) aug.load() @@ -325,13 +327,20 @@ def get_user_groups(username): output = process.stdout.decode().strip() if output: groups_part = output.split(' ')[2] - groups = groups_part.split('=')[1] + try: + groups = groups_part.split('=')[1] + except IndexError: + logging.warning('Could not read groups for user %s: \n%s', + username, output) + return [] + group_names = [ user.strip('()') for user in re.findall(r'\(.*?\)', groups) ] group_names.remove('users') return group_names + logging.warning('User %s not found in LDAP', username) return []