Archived
More debugging for add new user, update home dir script
This commit is contained in:
1 parent
20d04c9915
commit
5331dff8ef
4 files changed
+20
-14
No files matched your search
+11
-6
@@ -47,6 +47,7 @@ def create_ldap_user(user, dry_run=False):
|
||||
|
||||
def _get_next_uid():
|
||||
# Get user ids between min and max, and order desc by id
|
||||
logger.debug('Getting next available UID')
|
||||
users = LdapUser.objects.filter(id__gte=settings.LDAP_UID_MIN, id__lte=settings.LDAP_UID_MAX)
|
||||
users = users.order_by('-id').values_list('id', flat=True)
|
||||
|
||||
@@ -59,6 +60,7 @@ def create_ldap_user(user, dry_run=False):
|
||||
return users[0] + 1
|
||||
|
||||
def _get_next_user_gid():
|
||||
logger.debug('Getting next available GID for user group')
|
||||
# Get user group ids between min and max, and order desc by id
|
||||
user_groups = LdapGroup.objects.filter(gid__gte=settings.LDAP_USER_GID_MIN, gid__lte=settings.LDAP_USER_GID_MAX)
|
||||
user_groups = user_groups.order_by('-gid').values_list('gid', flat=True)
|
||||
@@ -104,24 +106,27 @@ def create_ldap_user(user, dry_run=False):
|
||||
pprint.pformat(user_data),
|
||||
pwd_type))
|
||||
else:
|
||||
logger.debug('Saving user with data: {} and password type \'{}\'.'.format(
|
||||
pprint.pformat(user_data),
|
||||
pwd_type))
|
||||
ldap_user.save()
|
||||
|
||||
# Add user group
|
||||
ldap_user_group = LdapGroup(name=user['username'], gid=user_data['group'], members=[user['username']])
|
||||
if not dry_run:
|
||||
ldap_user_group.save()
|
||||
else:
|
||||
if dry_run:
|
||||
logger.debug('User group {} created'.format(user['username']))
|
||||
else:
|
||||
ldap_user_group.save()
|
||||
|
||||
# Add groups
|
||||
ldap_groups = LdapGroup.objects.filter(name__in=user['groups'])
|
||||
for g in ldap_groups:
|
||||
if user['username'] not in g.members:
|
||||
g.members.append(user['username'])
|
||||
if not dry_run:
|
||||
g.save()
|
||||
else:
|
||||
if dry_run:
|
||||
logger.debug('User {} added to group {}'.format(user['username'], g.name))
|
||||
else:
|
||||
g.save()
|
||||
|
||||
# Finito!
|
||||
return True
|
||||
|
||||
@@ -23,6 +23,7 @@ def add_new_user(user):
|
||||
- Set RADIUS password
|
||||
"""
|
||||
if not create_ldap_user(user):
|
||||
logger.debug('Could not create user \'{}\'.'.format(user['username']))
|
||||
return
|
||||
|
||||
create_home_dir(user['username'])
|
||||
|
||||
@@ -124,7 +124,7 @@ class AddNewUserView(View):
|
||||
return JsonResponse({'errors': form.errors})
|
||||
|
||||
user = form.cleaned_data
|
||||
|
||||
logger.debug('Adding user \'{}\'.'.format(user['username']))
|
||||
add_new_user(user)
|
||||
|
||||
return JsonResponse({'results': 'success'})
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
# Usage: ./create_home_directory.sh <path> <username>
|
||||
# Usage: $0 <path_to_home_dirs> <username>
|
||||
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "This script must be run as root." 1>&2
|
||||
@@ -7,11 +7,11 @@ if [[ $EUID -ne 0 ]]; then
|
||||
fi
|
||||
|
||||
if [ $# -ne 2 ] ; then
|
||||
echo "USAGE $0 <path> <username>"
|
||||
echo "USAGE $0 <path_to_home_dirs> <username>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
HOME_DIR_PATH=$1
|
||||
HOME_DIRS_PATH=$1
|
||||
USERNAME=$2
|
||||
|
||||
if ! id -u $USERNAME; then
|
||||
@@ -19,11 +19,11 @@ if ! id -u $USERNAME; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -d "${HOME_DIR_PATH}${USERNAME}" ] ; then
|
||||
if [ -d "${HOME_DIRS_PATH}$/{USERNAME}" ] ; then
|
||||
echo "Cannot create home directory, it already exists..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp -r /etc/skel ${HOME_DIR_PATH}${USERNAME}
|
||||
chown -R ${USERNAME}:${USERNAME} ${HOME_DIR_PATH}${USERNAME}
|
||||
chmod -R 751 ${HOME_DIR_PATH}${USERNAME}
|
||||
cp -r /etc/skel "${HOME_DIRS_PATH}/${USERNAME}"
|
||||
chown -R ${USERNAME}:${USERNAME} "${HOME_DIRS_PATH}/${USERNAME}"
|
||||
chmod -R 751 "${HOME_DIRS_PATH}/${USERNAME}"
|
||||
Reference in new issue
Block a user