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 account_manager.models import LdapGroup, LdapUser
|
||||
from account_helper.models import DeletedUser
|
||||
from django.utils import timezone
|
||||
from django.core import serializers
|
||||
@ -32,6 +34,16 @@ class Command(BaseCommand):
|
||||
|
||||
if options['delete']:
|
||||
for user in deletables:
|
||||
# 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']:
|
||||
output += '\nSuccessfully deleted all listed users'
|
||||
|
||||
@ -11,6 +11,7 @@ from ldap import NO_SUCH_OBJECT, ALREADY_EXISTS
|
||||
from ldapdb.models import fields as ldap_fields
|
||||
from ldapdb.models.base import Model
|
||||
|
||||
from account_manager.utils.dbldap import get_filterstr
|
||||
from account_manager.utils.mail_utils import send_welcome_mail
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@ -130,6 +131,20 @@ class LdapGroup(Model):
|
||||
LdapGroup.base_dn = group_base_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):
|
||||
return self.name
|
||||
|
||||
|
||||
@ -418,7 +418,7 @@ def realm_user_group_update_delete(request, realm_id, user_dn):
|
||||
for group_name in group_names:
|
||||
groups.append(LdapGroup.objects.get(name=group_name))
|
||||
try:
|
||||
ldap_remove_user_from_groups(user_dn, groups)
|
||||
LdapGroup.remove_user_from_groups(user_dn, groups)
|
||||
except OBJECT_CLASS_VIOLATION as err:
|
||||
ldap_user, realm_groups_available, user_groups = get_available_given_groups(realm, user_dn)
|
||||
return render(request, 'user/realm_user_update_groups.jinja2',
|
||||
@ -472,12 +472,6 @@ def user_delete_controller(ldap_user, realm):
|
||||
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):
|
||||
for group in user_groups:
|
||||
group.members.append(ldap_user)
|
||||
|
||||
@ -217,12 +217,16 @@ LOGGING = {
|
||||
'level': 'DEBUG',
|
||||
},
|
||||
'django_auth_ldap': {
|
||||
'level': 'WARNING',
|
||||
'level': 'DEBUG',
|
||||
'handlers': ['console'],
|
||||
},
|
||||
'django': {
|
||||
'django_ldapdb': {
|
||||
'level': 'DEBUG',
|
||||
'handlers': ['console'],
|
||||
'level': 'WARNING',
|
||||
},
|
||||
'*': {
|
||||
'handlers': ['console'],
|
||||
'level': 'DEBUG',
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user