Inint implementation init system
This commit is contained in:
parent
62ffd04fbd
commit
ab9052bcac
@ -1,4 +1,6 @@
|
|||||||
|
from django.core.exceptions import ObjectDoesNotExist
|
||||||
from django.core.management.base import BaseCommand, CommandError
|
from django.core.management.base import BaseCommand, CommandError
|
||||||
|
from account_manager.models import LdapGroup, LdapUser
|
||||||
from account_helper.models import DeletedUser
|
from account_helper.models import DeletedUser
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.core import serializers
|
from django.core import serializers
|
||||||
@ -32,7 +34,17 @@ class Command(BaseCommand):
|
|||||||
|
|
||||||
if options['delete']:
|
if options['delete']:
|
||||||
for user in deletables:
|
for user in deletables:
|
||||||
pass
|
# LdapGroup.base_dn = LdapGroup.ROOT_DN
|
||||||
|
# user_groups = LdapGroup.objects.filter(members__contains=user.ldap_dn)
|
||||||
|
LdapUser.base_dn = LdapUser.ROOT_DN
|
||||||
|
ldap_user = LdapUser.objects.get(dn=user.ldap_dn)
|
||||||
|
LdapGroup.remove_user_from_groups(ldap_user)
|
||||||
|
ldap_user.delete()
|
||||||
|
try:
|
||||||
|
user.user.delete()
|
||||||
|
user.delete()
|
||||||
|
except ObjectDoesNotExist:
|
||||||
|
pass
|
||||||
if not options['json']:
|
if not options['json']:
|
||||||
output += '\nSuccessfully deleted all listed users'
|
output += '\nSuccessfully deleted all listed users'
|
||||||
self.stdout.write(self.style.SUCCESS(output))
|
self.stdout.write(self.style.SUCCESS(output))
|
||||||
|
|||||||
@ -11,6 +11,7 @@ from ldap import NO_SUCH_OBJECT, ALREADY_EXISTS
|
|||||||
from ldapdb.models import fields as ldap_fields
|
from ldapdb.models import fields as ldap_fields
|
||||||
from ldapdb.models.base import Model
|
from ldapdb.models.base import Model
|
||||||
|
|
||||||
|
from account_manager.utils.dbldap import get_filterstr
|
||||||
from account_manager.utils.mail_utils import send_welcome_mail
|
from account_manager.utils.mail_utils import send_welcome_mail
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@ -130,6 +131,20 @@ class LdapGroup(Model):
|
|||||||
LdapGroup.base_dn = group_base_dn
|
LdapGroup.base_dn = group_base_dn
|
||||||
return LdapGroup.objects.filter(members=user.dn)
|
return LdapGroup.objects.filter(members=user.dn)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def remove_user_from_groups(ldap_user, user_groups=None):
|
||||||
|
if not user_groups:
|
||||||
|
LdapGroup.base_dn = LdapGroup.ROOT_DN
|
||||||
|
user_groups = LdapGroup.objects.filter(members__contains=ldap_user.dn)
|
||||||
|
for group in user_groups:
|
||||||
|
logger.info(group.members)
|
||||||
|
logger.info(ldap_user)
|
||||||
|
group.members.remove(ldap_user.dn)
|
||||||
|
logger.info(group)
|
||||||
|
# logger.info(get_filterstr(group))
|
||||||
|
# LdapGroup.base_dn = 'cn=uiuiui,ou=groups,ou=wiai,ou=fachschaften,dc=test,dc=de'
|
||||||
|
group.save()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|||||||
@ -418,7 +418,7 @@ def realm_user_group_update_delete(request, realm_id, user_dn):
|
|||||||
for group_name in group_names:
|
for group_name in group_names:
|
||||||
groups.append(LdapGroup.objects.get(name=group_name))
|
groups.append(LdapGroup.objects.get(name=group_name))
|
||||||
try:
|
try:
|
||||||
ldap_remove_user_from_groups(user_dn, groups)
|
LdapGroup.remove_user_from_groups(user_dn, groups)
|
||||||
except OBJECT_CLASS_VIOLATION as err:
|
except OBJECT_CLASS_VIOLATION as err:
|
||||||
ldap_user, realm_groups_available, user_groups = get_available_given_groups(realm, user_dn)
|
ldap_user, realm_groups_available, user_groups = get_available_given_groups(realm, user_dn)
|
||||||
return render(request, 'user/realm_user_update_groups.jinja2',
|
return render(request, 'user/realm_user_update_groups.jinja2',
|
||||||
@ -472,12 +472,6 @@ def user_delete_controller(ldap_user, realm):
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
def ldap_remove_user_from_groups(ldap_user, user_groups):
|
|
||||||
for group in user_groups:
|
|
||||||
group.members.remove(ldap_user)
|
|
||||||
group.save()
|
|
||||||
|
|
||||||
|
|
||||||
def ldap_add_user_to_groups(ldap_user, user_groups):
|
def ldap_add_user_to_groups(ldap_user, user_groups):
|
||||||
for group in user_groups:
|
for group in user_groups:
|
||||||
group.members.append(ldap_user)
|
group.members.append(ldap_user)
|
||||||
|
|||||||
@ -217,12 +217,16 @@ LOGGING = {
|
|||||||
'level': 'DEBUG',
|
'level': 'DEBUG',
|
||||||
},
|
},
|
||||||
'django_auth_ldap': {
|
'django_auth_ldap': {
|
||||||
'level': 'WARNING',
|
'level': 'DEBUG',
|
||||||
'handlers': ['console'],
|
'handlers': ['console'],
|
||||||
},
|
},
|
||||||
'django': {
|
'django_ldapdb': {
|
||||||
|
'level': 'DEBUG',
|
||||||
'handlers': ['console'],
|
'handlers': ['console'],
|
||||||
'level': 'WARNING',
|
},
|
||||||
|
'*': {
|
||||||
|
'handlers': ['console'],
|
||||||
|
'level': 'DEBUG',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user