36 lines
1.3 KiB
Python
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))
|