hackspace/mhackspace/ldapsync/management/commands/ldapsync.py

36 lines
1.3 KiB
Python

from django.contrib.auth.models import Group
from django.core.management.base import BaseCommand
from mhackspace.users.models import User
from mhackspace.ldapsync.tasks import (
ldap_add_user, ldap_add_group, ldap_add_organizational_unit, conn)
class Command(BaseCommand):
help = 'Sync database directory'
def handle(self, *args, **options):
self.stdout.write(self.style.NOTICE('Loading Organizational unit.....'))
ldap_add_organizational_unit(conn, 'users')
ldap_add_organizational_unit(conn, 'groups')
self.stdout.write(self.style.NOTICE('Loading Users.....'))
for user in User.objects.all():
result = ldap_add_user(
conn,
username=user.username,
password=user.password)
if result.get('message'):
self.stdout.write(result.get('message'))
self.stdout.write(self.style.NOTICE('\ttest %s' % user.username))
self.stdout.write(self.style.NOTICE('Loading Groups.....'))
for group in Group.objects.all():
result = ldap_add_group(conn, group.name, ['admin', ])
if result.get('message'):
self.stdout.write(result.get('message'))
self.stdout.write(self.style.NOTICE('\ttest %s' % group.name))